Juniors y Seniors

Al principio puse el título de la entrada como «Juniors vs Senior» pero esto no se trata de una competición, es más, ambos son necesarios y complementarios e, irremediablemente, un senior en algún momento de su trayectoria profesional fue Junior.

La cara del senior no es por los años.
Es que ahora tiene hijos.

El motivo del artículo es porque he visto que con el tiempo, por lo menos en mi sector (SAP), la transición de Junior a Senior ha cambiado. Cuando yo empecé en esto (no soy tan viejo ¡eh!) había una gran demanda de profesionales SAP y poca oferta de profesionales. Esto hacía que te «promocionaran» rápidamente, ¡ojo!, tanto a nivel de responsabilidades al haber escasez de recursos, como a nivel retributivo por la necesidad de retener el talento.

Esta situación hacía que te enfrentases, como Junior, a situaciones de cierta responsabilidad de forma rápida, y tu curva de aprendizaje se acelerase. Además, si eras bueno en esto (pequeño detalle sin importancia), si querías salir al mercado laboral tenías muchos pretendientes. Yo, con solo 1 año de experiencia, me habían subido el sueldo 3 veces, ya actuaba como analista y llegué a tomarme un parón de 4 meses para viajar y, al volver, hice como 20 entrevistas consiguiendo subida sustancial de salario.

El tema es que ahora veo que hay varios tipos de juniors y seniors.


Juniors eternos

De unos años a esta parte veo algunos juniors que lo son, por lo menos en cuanto a responsabilidad y tareas, durante más de 2 años. Supongo que el salario habrá ido subiendo, pero no se le ha dado al profesional (o no lo ha solicitado) la responsabilidad y las tareas necesarias para progresar.

¿Y cómo se hace un pogüer point?

Juniors All Stars

Algunas consultoras grandes tienen programas de captación del talento joven desde universidades. Hacen una especie de draft de la NBA. Además una vez preseleccionados hacen una especie de Grand Prix del consultor con pruebas grupales e individuales para escoger la creme de la creme.

Solo quedarán en pie los mejores

El problema es que esta selección la suelen hacer en universidades privadas y, después de la gymkana que tienen que hacer para ser contratados y el plan de carrera que les ofrecen, llegan al MundoReal™ con ínfulas de jefe, no de Junior. Y claro, diles tú que se peine un Excel para ver errores de datos o que tomen notas en una reunión… Y no están programados para esas tareas mundanas.


Juniors hambrientos

Siguen existiendo, gente joven con ganas de aprender, trabajar, asumir retos y evolucionar. Gente con hambre. No necesariamente tienen que ser los mejor preparados. Yo siempre digo que lo importante es la actitud, no la aptitud.

La aptitud suma.
La actitud multiplica.

A una frase motivadora, le pones un fondo de una playa de arena blanca, y ya lo tienes.

Esto no aplica solo a juniors, de hecho es la actitud que hay que seguir teniendo, humildad, curiosidad, y hambre. Como dijo Steve Jobs «Stay hungry. Stay foolish»

Stay hungry, Stay foolish

Senior a la fuerza

La insoportable levedad del ser (consultor), el dejar pasar las olas y las horas y conseguir ser senior por años y no por méritos. Una especie de funcionario amigo del tiempo, arropado en un proyecto/cliente que no le pide más que estar allí y saber sus procesos (ni siquiera cambiarlos).

Y mañana, a cuadrar facturas de nuevo

Senioritos y Senioritas

Los hay también que al leer su firma de Senior Consultant se ponen juguetones, que se lo creen y todo. Da igual su nivel de conocimiento y/o experiencia, ahí pone «Senior» señoría. Y que les da por actuar de jefes, cuando todos hemos tenido juniors que nos adelantan por la izquierda en algo (alabados sean). Un poquito de humildad, de todo el mundo se puede aprender algo. Y cuando tratas a un Junior o Senior o Tornero fresador como un igual sacas oro de esa relación, tanto a nivel personal como profesional.

Vienes a mi escritorio el día de la boda de mi hija… y me pides que resuelva tu incidencia… por dinero.

El Principio de Peter

Esto no es exactamente sobre juniors y seniors, pero allá donde termina el horizonte del senior, aparece el de jefe (de equipo, de proyecto), manager, etc… En estos casos se suele cumplir el famoso Principio de Peter:

En una jerarquía, todo empleado tiende a ascender hasta su nivel de incompetencia: la nata sube hasta cortarse.

Laurence J. Peter

Quiero aprender Python (Enséñame ChatGPT)

Hoy vamos a ganar superpoderes, y esto lo vamos a hacer enseñando como la Inteligencia Artificial puede ayudarnos en nuestro trabajo, a derribar barreras de conocimiento y a enfrentarnos a lo que no sabemos con garantías.

Imagen generada con Stable Diffusion instalado en mi PC, con el modelo epiCRealism con el prompt «A male consultant dressed as Superman is programming using a laptop in an office«

ChatGPT enséñame a programar en Python

Resulta que un día, al principio de empezar a usar ChatGPT, se me ocurrió ver si podía preguntarle a GPT cómo programar en Python. Lenguaje que no sabía ni cómo, ni con qué, ni donde se programaba. Solo tenía conocimiento del nombre y de que se usaba sobre todo para BigData y IA. Por lo tanto le pregunté a ChatGPT-4:

Por lo que, con solamente una frase y una consulta me da varias opciones. Instalo Python en mi PC y, como entorno de desarrollo en este caso voy a usar el Visual Studio Code ya que los otros ni me suenan. Lo de instalar bibliotecas adicionales lo iré haciendo en base a lo que necesite usar. Y los recursos, teniendo GPT, paso de ellos por ahora.

Hola Mundo

Una vez instalado, quiero empezar como se empieza a programar en todos los lenguajes de programación, con un Hola Mundo. Así que continúo preguntándole:

Más guiado imposible. Sin saber nada de Python, ¡Ya tengo mi primer programa en Python!. Que sí, que es una chorrada de programa, pero ChatGPT me ha guiado en como llegar a instalar lo necesario y a crear mi primer programa. Pero claro, esto es muy sencillo, vamos a complicarlo un poco.

Leer un PDF e imprimir el texto por pantalla

Ahora quiero un programa que, tomado un PDF de mi PC, sepa leerlo e imprimir su contenido en texto por pantalla. Le pregunto a ChatGPT:

Esto ya es más complejo, un programa que, usando la librería PyPDF2, lee un PDF y imprime su contenido por pantalla. En este caso voy a usar el PDF SAP S/4HANA for Customer Management – Feature Scope Description que contiene las funcionalidades de la parte de CRM de SAP S/4HANA. Al intentar la librería PyPDF2 tal y como comenta ChatGPT, ¡ZAS! ¡Primer error!.

Pero, no nos preocupemos, tenemos el amigo listo de la oficina al que preguntar. Sin cortarnos ni un pelo le pegamos todo ese error a ChatGPT:

Uso la primera opción para instalar la librería, usando «python -m pip install PyPDF2» funcionando correctamente. Por lo tanto prosigo con mi nuevo programa:

¡Zas! ¿Otro error? Pues hagamos lo mismo:

Me dice que cambie cosas, con los ojos tapados copio y pego y ejecuto, pero…

ChatGPT, otro error, pero no me cuesta nada repetir el proceso hasta que esto funcione:

Vuelvo a cambiar el código, vuelvo a ejecutar y:

Seguimos con la iteración con ChatGPT. Por ahora solo estamos copiando y pegando.

Vuelvo a copiar/pegar el nuevo código en mi programa del Visual Studio Code y ahora:

Toooooooooooooooooooma!!! ¡Ya nos está leyendo el PDF!

Resumen del texto extraído

Ahora vamos a complicarlo aún más y añadir la inteligencia artificial para que nos resuma el contenido extraído. Para ello usaremos la API de GPT, que puede sacarse de https://platform.openai.com/. Eso sí, cuando te das de alta tienes, creo unos 18$ de uso gratuitos, luego es de pago, yo tengo plan de pago y es independiente de ChatGPT. Es decir, por un lado pagas ChatGPT Plus y por otro el uso de la API.

Pero veo que me manda ese código sin la parte anterior de extraer de PDF, Además quiero refinar mi consulta, porque veo que el PDF usado tiene páginas que prácticamente no contienen información y que son portada, índice o disclaimers. Por lo tanto le digo:

Copio/Pego el código que manda ChatGPT. La clave API de GPT hay que sacarla de tu cuenta en platform.openai.com.

Ejecuto el código y….

Vamooooooooooooos!

Esquema de resumen

Ahora quiero que, además del resumen, genere un esquema con los puntos del documento.

Pero quiero verlo por colores que si no me quedo ciego:

Instalo la librería termcolor, copio/pego/ejecuto (cambiando la clave API y el PDF) el código y:

¡Otro éxito!

Guardar el resumen y el esquema en un Word

Ahora quiero ese resumen y ese esquema en un documento Word, no solo por pantalla que eso no es práctico. Tal cual se lo pido a ChatGPT:

Instalo la librería python-docx. Copio/Pego/Ejecuto (cambiando la clave API y el PDF) el programa y:

Me estoy cansando de poner cosas debajo del niño este

Crear un MP3 con el Resumen y Esquema leído

Ahora no quiero leer el word, quiero que alguien me lo lea. Por lo tanto le pregunto a ChatGPT si puedo hacerlo y cómo:

El resultado es:

Audio del resumen
Audio del esquema
¡¡Madre mía!!

Los audios son demasiado simples y robóticos, podría pedirle a ChatGPT si hay alguna otra alternativa gratuita o de pago. Pero vamos a otra cosa, ¿Le pedimos más cosas? ¡Claro que sí!

Generar una presentación Power Point

Quiero generar un Power Point directamente con los datos del esquema, que cada punto del esquema sea una diapositiva. Pues allá que voy que se lo pido:

Pero veo que el código VBA que me genera no es correcto en el apartado de desarrollador del Power Point así que le pido que tenga cuidado con los saltos de línea.

El resultado es este código VBA es el siguiente:

Y pegándolo en la parte de desarrollador de un powerpoint vacío y ejecutandolo:

Y dandole un diseño preconfigurado tenemos:

Mi Power Point en bruto

Esto es un ejemplo. Tengo más que he usado en mi día a día con Python (pulsación de teclas automáticas, Conexión con las APIs de aparatos de SmartHome, Preparación de certificación preguntando dudas a ChatGPT, Cambio de formato para exportar e importar datos entre dos aplicaciones, etc.) El límite está en tu capacidad de usar esta herramienta. A mi, me ha dado superpoderes y ya me ha ayudado en varias labores importantes.

Pero, eso no es aprender Python

Obviamente, esto no es aprender Python, pero ¿Quién lo necesita? sé programar en otros lenguajes, con lo cual tengo la mente estructurada para entender los procesos y la forma de entender un programa. Esto a mi me vale para hacer cajas negras de funcionalidad y usarlas y combinarlas para hacer el proceso deseado. Me da superpoderes, me da confianza y me quita el miedo a lo desconocido.

¿Crees que esto se podría considerar Low Code?

¿Quieres saber más sobre Inteligencia Artificial?

SAP S/4 HANA ¿Qué es un Business Partner?

Una de las cosas que sorprenden a los consultores de SAP ECC cuando pasan a S/4 HANA es que ya no existen deudores ni acreedores, ahora todo son Business Partner.

Si vemos la nota 2265093 – S4TWL – Enfoque de interlocutor comercial o vemos el documento Simplification List for SAP S/4HANA 2022 en su apartado 3.19 S4TWL – Business Partner Approach dice:

In SAP S/4HANA, Business Partner is the leading object and single entry point to maintain Business Partner, Customer and Supplier (formerly known as Vendor) master
data. This is to ensure ease of maintenance of the above master data and to achieve
harmonization between them. Compared to classical ERP transactions, maintenance of
Customer and Supplier master data via Business Partner has multiple advantages. Some of them are as follows:

  • Business Partner allows maintenance of multiple addresses with
    corresponding address usages.
  • In classical transactions, one customer can only be associated to one account
    group. But in Business Partner, multiple roles can be associated to the same
    Business Partner.
  • Maximal data sharing and reuse of data which lead to an easier data consolidation.
  • General Data available for all different Business Partner roles, specific data is
    stored for each role.
  • Maintenance of multiple relationships to the same Business Partner.
  • Maintenance of Time Dependency at different sub-entities roles, address,
    relationship, bank data etc.
Simplification List for SAP S/4HANA 2022

Y no solo eso, sino que también comenta las transacciones clásicas de ECC que desaparecen o quedan obsoletas en S/4Hana:

Así que sí el shock de un consultor de ECC clásico es tremendo, ¿Dónde esta mi XD01, XK01, VD01? Todas estas transacciones serán redirigidas directamente a la transacción BP.

Consultor Senior ECC viendo como desaparecen los deudores y acreedores

Pero, Keep calm and relaxing cup of café con leche para todos, por favor. Desde la parte SAP CRM, que es mi especialidad, llevamos años (¿siempre?) usando los Business Partners (Interlocutores comerciales) como objeto de negocio sobre el que pivotan los documentos y procesos de negocio.

¿Qué es un Business Partner?

Pues voy a poner una definición formal, de la cual estoy 100% de acuerdo, y además una explicación que yo le daría a un compañero que necesita adquirir el concepto.

Un business partner (Interlocutor Comercial) es una persona, organización, grupo de personas u organizaciones con los que una empresa tiene un interés comercial. Cualquier transacción de negocio no se puede realizar con alguien que no esté definido como un business partner. Por lo tanto, los business partners son los partes interesadas que influyen en el desarrollo de una empresa. Los Business Partners pueden ser de diferentes tipos, como persona, organización, grupo, etc., y pueden desempeñar diferentes roles, como cliente, proveedor, contacto, etc.

Definición más o menos oficial
Business Partner
Haciendo Business con mis Partners

Pero ahora voy yo a contarte lo que llevo años usando. Un Business Partner es todo interlocutor, ya sea Persona, Empresa o Grupo, que se use en cualquier proceso comercial de preventas, ventas, postventa y, (a partir de ahora), de compras.

Estos Business Partner tienen varios atributos que los modelan y los definen, algunos atributos son obligatorios e iniciales, debes decidirlos al crear el BP (ojo a las siglas que es lo que se usa), otros pueden ser añadidos posteriormente. Algunos son únicos, otros múltiples. Vamos a desgranarlos:

  • Tipo de BP: Como se ha comentado en ambas definiciones se trata de definir si el BP es Persona, Organización o Grupo. Se trata de un atributo inicial, obligatorio y único. Un BP debe crearse bajo un tipo y solo uno, y este no puede ser cambiado. Por ejemplo,
    • Empleado: si queremos crear un empleado, será un BP de tipo Persona.
    • Cliente Persona: Si tenemos un cliente que es persona, lo crearemos como Persona.
    • Cliente Empresa: Si tenemos un cliente empresa, lo crearemos como Empresa.
    • Persona de Contacto: Claramente tendrá que ser Persona.
    • Proveedor: Normalmente serán empresas, lo crearemos como Empresa.
  • Rol de BP: Aquí es donde viene la magia y la potencia de los BPs. Se pueden establecer roles a los BPs para indicar cómo actúan dentro de nuestra relación con ellos. Con esto y con las relaciones entre BPs, podemos hacer un mapa de donde está ese BP, con qué otros BPs se relaciona y de qué forma. Un BP puede tener varios roles simultáneamente, los roles pueden ser dependientes del tiempo (tener fechas de validez), y sobre ellos se pueden establecer autorizaciones. (Tal grupo de usuarios solo puede ver los «Clientes Mayoristas» por ejemplo).
  • Relaciones entre BPs: Más o menos explicado en el punto anterior. Se pueden establecer relaciones (con dependencia temporal o no) entre dos BPs. El objetivo de estas relaciones es múltiple:
    • Tener un mapa de donde está ese BP tanto dentro de su organización como dentro de la nuestra. Con esto se pueden responder preguntas como «¿Quienes son sus superiores en su organización?», «¿Quien es su empleado responsable en la nuestra?», «¿Quien es su persona de contacto o de quien es persona de contacto?», etc.
    • Establecer autorizaciones de visibilidad en nuestro sistema. Por ejemplo, un empleado solo podrá ver los BPs de los que es él o su unidad organizativa responsable.
    • Determinación automática de BPs en documentos. Si creamos un documento, por ejemplo en ventas, con un cliente, podemos arrastrar de forma automática al documento su persona de contacto, empleado responsable, pagador, etc…
  • Posibilidad de que un BP tenga varias direcciones en su maestro. Cada una de ellas con atributos como, el tipo o uso de dirección, fechas de validez, notas de la dirección.
  • Hay más atributos, pero mayormente usados para procesos de preventa o marketing, como son el Ciclo de Vida del cliente, Atributos de Marketing, Gestión de duplicados y Data Cleansing, etc. Pero para hacerse una idea general sirve lo anterior.

Puedes profundizar un poco en la help de SAP «SAP S/4HANA for Customer Management->Master Data->Business Partners«.

Sí, has visto bien, pone 2002, este concepto es más viejo que el fuego

Hay más información que desgranar al respecto de los Business Partner en S/4HANA pero, por ahora, sirva este artículo de introducción y definición de lo que es un BP en S/4HANA.

Cambio de rumbo

Llegó el momento, mi cabeza me pedía un cambio y me lo han servido en bandeja. Dejo estabilidad y control. Dejo mi zona de confort, pero me voy a otro proyecto donde voy a evolucionar a nivel profesional. Opino que los cambios siempre son buenos, y que las oportunidades hay que identificarlas y perseguirlas.

La decisión la tenía tomada desde hace tiempo, a la espera de la oportunidad, pero salir de la zona de confort cuando lo tienes todo, es complicado. Me voy porque soy inquieto, porque no me gusta estar mucho tiempo en un sitio, porque en la vida hay que evolucionar y mejorar. Detrás dejo algo muy bueno, y lo quiero dejar de la mejor forma posible, ¿Quién sabe cuando tendré que llamar a esa puerta?

Salgo a dar una vuelta

La vida da muchas vueltas y las vueltas dan mucha vida. Y yo salgo a dar una vuelta. La oportunidad que me ha llegado es por una de esas puertas que dejé entreabierta hace años, que en un momento dado, te llama.

Espero dar lo mejor de mi y evolucionar mejorando mis habilidades y competencias. Posiblemente vaya a ser más complicado que mi posición actual, pero ya no le tengo miedo a nada. Sé quien soy y qué puedo ofrecer.

SAP BTP – Business Technology Platform

En un proceso de autoaprendizaje que estoy realizando, en el marco del estudio para la certificación de SAP Build Platform realicé el curso «Discovering SAP Business Technology Platform«.

Mira lo que me han dado hoy con el periódico

Donde te da una introducción de las características y posibilidades de SAP BTP.

BTP ya lo conocía anteriormente al ser el framework donde se configura la posibilidad de tener aplicaciones Fiori, la integration suite de CPI y la gestión de usuarios y roles. Pero el curso me ha parecido muy interesante y enriquecedor, además de que es ameno.


¿Qué es SAP BTP – Business Technology Platform?

SAP BTP es una plataforma integrada y basada en la nube que combina servicios de desarrollo de aplicaciones, automatización de procesos, Integración, Gestión de datos y analíticas e Inteligencia Artificial en un solo lugar.

Esto significa que BTP es el Framework de desarrollo de soluciones en la nube donde aglutinar ciertas configuraciones o autorizaciones para todas esas soluciones.


¿Cómo se organiza SAP BTP?

Pues tenemos varios nodos jerárquicos:

  • Global Account: Es la cuenta relevante al contrato que el cliente hace con SAP para otorgarle los servicios de SAP BTP.
  • Subaccounts: Las Subcuentas te permiten estructurar una Cuenta Global de acuerdo a los requisitos de tu organización y proyecto en términos de miembros, autorizaciones y derechos. Una Cuenta Global puede contener una o más Subcuentas en las que despliegas aplicaciones, utilizas servicios y gestionas tus suscripciones.
  • Directory: Los Directorios te permiten organizar y gestionar tus Subcuentas de acuerdo a tus necesidades técnicas y de negocio. Un Directorio puede contener Directorios y Subcuentas para crear una jerarquía. El uso de Directorios para agrupar otros Directorios y Subcuentas es opcional, aún puedes crear Subcuentas directamente bajo tu Cuenta Global.
  • Entitlements: Un Entitlement es tu derecho a aprovisionar y consumir un recurso. En otras palabras, los Entitlements son los planes de servicio a los que tienes derecho a usar.

¿Qué ofrece SAP BTP?

Todos estos servicios:

Este esquema de memoria, caerá en el examen

Resumen

Por resumir mucho, mucho, de lo que tenga que ver con Cloud en SAP va a pasar por BTP casi con seguridad. Y lo interesante es que es muy útil para organizar tecnológicamente la empresa a nivel de aplicaciones, permisos y autorizaciones.


SAP BTP Neo vs SAP BTP Cloud Foundry

En el momento en el que estamos cabe diferenciar dos versiones muy distintas de SAP BTP.

Por un lado está la versión Neo que es un BTP alojado en los servidores de SAP, con software propietario y en estado de ser discontinuada.

Por otro lado está la versión Cloud Foundry que es un BTP bajo los estándares Open Source de Cloud Foundry, que puede ser alojado en cualquier Hyperscaler (cómo AWS, Microsoft Azure, Google Cloud Platform o Alibaba Cloud) y se enmarca dentro de un estándar Open Source mucho más versátil, flexible y escalable.

No sé porqué ponen primero Cloud Foundry, cuando el orden es inverso, pero así está

Es posible que todavía veáis muchas implementaciones de SAP BTP Neo, que poco a poco irán migrando a Cloud Foundry (cosa que no es directa). Con la versión Cloud Foundry se permite, como podéis ver, tener aplicaciones en lenguajes tan interesantes como Python, Go, Ruby y usarlas para nuestros desarrollos.

Madre mía ¡Qué imagen! Esto, según SAP, esto hace de todo.

Quiero probar SAP BTP

Para probar SAP BTP podemos pedir un entorno Trial en Try and buy SAP Business Technology Platform dándole al apartado:

Acceso a el Trial de BTP de 90 días

Aquí tendremos que registrarnos y tendremos acceso a un sistema SAP BTP durante 90 días. Podemos logarnos con nuestro usuario SAP Universal ID.

Seleccionamos Región
Después de un tiempo tendremos nuestro BTP de pruebas configurado
Entramos en el BTP de Trial
Mensaje que nos informa que el sistema tendrá 90 días de validez
En el apartado de servicios podemos ver los servicios BTP que se pueden activar
En este caso he buscado SAP Build Apps y con darle a Create se activará el servicio en BTP

SAP BTP Tutoriales

Si vemos en el Trial tenemos a nuestra disposición una serie de tutoriales para demostrar las diversas funcionalidades que tiene SAP BTP.

Donde tenemos tutoriales tan interesantes como:

  • Use Machine Learning to Process Business Documents
  • SAP BTP ABAP Environment: Create and Expose a CDS-Based Data Model
  • Build an SAP Fiori App that Consumes Data from an On-Premise System
  • Build an iOS and MacOS App with One Code Line Using SAP BTP SDK for iOS
  • Build an SAP Fiori App Using the ABAP RESTful Application Programming Model [RAP100]
  • Build Your First Chatbot with SAP Conversational AI
  • Get Started with SAP BTP SDK for Android

Como hemos visto SAP BTP, si bien se pueden desarrollar directamente aplicaciones en él y puede tener su propia base de datos, su uso principal es como Framework de despliegue y desarrollo de aplicaciones (servicios). Creo que este camino es el correcto, por un lado hacer una plataforma open source donde se pueda desarrollar e implementar diversas soluciones de diversas tecnologías. Y por otro que SAP deje «jugar» con sus aplicaciones con versiones Trial y tutoriales y cursos gratuitos.