Tipos de archivos

En la entrada ‘¿Qué son los Servicios Web (Web Services)?‘ aparecieron muchos tipos de archivos (XML, JSON, WSDL…) dando por hecho que se conocen. Pero esto no tiene que ser así necesariamente, por lo que vamos a repasar los que, a mi juicio, son más interesantes, particulares y usados dentro del mundo de sistemas de información.

Antes de la digitalización de documentos la cosa no pintaba a bien

CSV (Valores Separados por Comas)

Los archivos CSV son fundamentales para el almacenamiento y la transferencia de datos tabulares. Su simplicidad y eficiencia los hacen ideales para el intercambio de grandes volúmenes de datos entre aplicaciones.

  • Características: Datos tabulares separados por comas, fácil de leer y escribir.
  • Usos: Intercambio de datos entre aplicaciones, manejo de grandes cantidades de datos.
  • Estructura: Filas con el mismo número de campos, separados por comas o punto y coma, líneas separadas por saltos de línea.
  • Ventajas: Simplicidad, bajo sobrecoste computacional.
  • Desventajas: Limitado en cuanto a tipos de datos, no es ideal para datos complejos.
  • Ejemplo:
nombre,edad,ciudad
Juan,30,Madrid

La forma más sencilla de crear archivos CSV es desde un fichero Excel (xlsx) ya que el propio Excel permite Guardar el archivo como un CSV separado por comas. Además la apertura de un CSV también es directa a Excel. Pero, cuidado, que esto conlleva sus riesgos, ya que el Excel quita los ceros a la izquierda de las celdas que considera números. En este caso hay que indicar siempre que todas las celdas son de tipo texto.


JSON (JavaScript Object Notation)

JSON se destaca por su facilidad de lectura y estructuración de datos en un formato de texto. Es ampliamente utilizado para la transmisión de datos en aplicaciones web.

  • Características: Texto legible, nombres y valores como indicadores.
  • Usos: Intercambio de información entre aplicaciones.
  • Estructura: Datos en formato de texto, incluyendo números, cadenas y fechas.
  • Ventajas: Fácil de leer, liviano y rápido.
  • Desventajas: No es tan adecuado para datos muy complejos.
  • Ejemplo:
{
  "estudiantes": [
    {
      "id": 1,
      "nombre": "Ana",
      "asignaturas": {
        "matematicas": 85,
        "ciencias": 90
      }
    },
    {
      "id": 2,
      "nombre": "Luis",
      "asignaturas": {
        "matematicas": 75,
        "ciencias": 80
      }
    }
  ]
}

Lo que yo recomiendo cuando tenemos un json y queremos poder verlo y entenderlo es usar o bien el Visual Studio o una web gratuita de JSON Viewer. Que se verá en jerárquico y pudiendo expandir o contraer nodos.


XML (Extensible Markup Language)

XML es un meta-lenguaje que permite definir lenguajes estructurados (WSDL, XHTML para páginas web, MathML para expresiones matemáticas, SVG para gráficos vectoriales y RSS para feeds web), utilizado en la representación de datos en la web y en el intercambio de información entre aplicaciones.

  • Características: Meta-lenguaje para definir otros lenguajes estructurados.
  • Usos: Representación de datos en la web, intercambio de datos, configuración. Es la base de los servicios web SOAP. Tanto para definición del WSDL y los XSD como para el. Intercambio de mensajes.
  • Estructura: Elementos y atributos, con reglas predefinidas.
  • Ventajas: Interoperabilidad, validación de documentos.
  • Desventajas: Puede ser verboso y complejo.
  • Ejemplo:
<estudiantes>
  <estudiante id="1">
    <nombre>Ana</nombre>
    <asignaturas>
      <matematicas>85</matematicas>
      <ciencias>90</ciencias>
    </asignaturas>
  </estudiante>
  <estudiante id="2">
    <nombre>Luis</nombre>
    <asignaturas>
      <matematicas>75</matematicas>
      <ciencias>80</ciencias>
    </asignaturas>
  </estudiante>
</estudiantes>

Es el formato de archivo que se usa en los servicios SOAP. Personalmente a mi me gusta pegarlos en Ultraedit y pulsar en «View as highlighting file type» para verlo bien.


PROPERTIES

Estos archivos son esenciales en aplicaciones Java, almacenando información como texto en un formato de clave-valor.

  • Características: Almacena valores emparejados a nombres.
  • Usos: Principalmente en aplicaciones Java.
  • Estructura: Texto con formato clave=valor.
  • Ventajas: Fácil de editar y leer.
  • Desventajas: Limitado en cuanto a tipos de datos.
  • Ejemplo:
language=ES
hostname=www.jorgeocampos.com

WSDL (Web Services Description Language)

WSDL es crucial para describir servicios web, especificando interfaces y protocolos en un formato basado en XML.

  • Características: Basado en XML para describir servicios web.
  • Usos: Define interfaces para servicios web.
  • Estructura: Tipos de datos, mensajes, tipos de puerto, bindings, servicios.
  • Ventajas: Permite una descripción detallada y precisa.
  • Desventajas: Complejidad y requerimiento de conocimientos específicos.
  • Ejemplo:
<definitions name="EstudiantesService"
             targetNamespace="http://www.example.com/estudiantes"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:est="http://www.example.com/estudiantes">
    <types>
        <schema targetNamespace="http://www.example.com/estudiantes"
                xmlns="http://www.w3.org/2001/XMLSchema">
            <complexType name="DetallesEstudiante">
                <sequence>
                    <element name="nombre" type="xsd:string"/>
                    <element name="matematicas" type="xsd:int"/>
                    <element name="ciencias" type="xsd:int"/>
                </sequence>
            </complexType>
        </schema>
    </types>
    <message name="ObtenerEstudianteRequest">
        <part name="idEstudiante" type="xsd:int"/>
    </message>
    <message name="ObtenerEstudianteResponse">
        <part name="detallesEstudiante" type="est:DetallesEstudiante"/>
    </message>
    <!-- ... Resto del WSDL ... -->
</definitions>

Como norma general, desde SAP no tenemos que generar WSDL «a mano», ya se encarga el propio sistema de generarlo y consumirlo vía Wizard. Pero me consta que otras tecnologías si que hay que hacer manualidades. Y lo se porque es un estándar y, en ocasiones, viene mal creado (SAP es estricto y no admite errores). No obstante para el las pruebas del consumo de servicios web SOAP y la validación del WSDL yo uso la aplicación gratuita SOAPUI.

Si un servicio funciona, sin errores de validación, en SOAPUI es que esta bien. Y así descartas problemas y te centras en temas de redes, firewall, etc.


XSD (XML Schema Definition)

XSD es un lenguaje que describe la estructura y las reglas de un documento XML, permitiendo validar su contenido. WSDL utiliza XSD para definir las operaciones, mensajes y protocolos de un servicio web.

  • Características: Define elementos y atributos en documentos XML.
  • Usos: Validación de documentos XML.
  • Estructura: Reglas y restricciones para documentos XML.
  • Ventajas: Marco claro para estructura XML.
  • Desventajas: Puede ser complejo de entender y manejar.
  • Ejemplo:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="estudiantes">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="estudiante" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" type="xs:int"/>
              <xs:element name="nombre" type="xs:string"/>
              <xs:element name="matematicas" type="xs:int"/>
              <xs:element name="ciencias" type="xs:int"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

YAML (YAML Ain’t Markup Language)

Los archivos YAML (YAML Ain’t Markup Language) son utilizados para la serialización de datos de forma que sean legibles por humanos. Son comunes en configuraciones, archivos de definición y transmisión de datos entre diferentes componentes de un sistema. Su estructura se basa en la utilización de sangrías para representar jerarquías de datos, lo cual facilita su lectura y escritura. Son muy usados en el mundo del desarrollo, especialmente en la configuración de proyectos y entornos.

  • Características: Lenguaje de serialización de datos, fácil de leer.
  • Usos: Creación de archivos de configuración, automatización (Ansible).
  • Estructura: Mapas y listas con jerarquía basada en sangría.
  • Ventajas: Lectura sencilla, sin caracteres de tabulación.
  • Desventajas: Necesidad de validar la sintaxis.
  • Ejemplo:
estudiantes:
- id: 1
nombre: Ana
asignaturas:
matematicas: 85
ciencias: 90
- id: 2
nombre: Luis
asignaturas:
matematicas: 75
ciencias: 80

JS (JavaScript)

Los archivos JS son el núcleo de la interactividad en las páginas web, almacenando código JavaScript para diversas funciones.

  • Características: Código JavaScript para funciones en páginas web.
  • Usos: Interacción dinámica en páginas web.
  • Estructura: Texto con código JavaScript.
  • Ventajas: Flexibilidad y dinamismo en páginas web.
  • Desventajas: Puede afectar la velocidad de carga de la página.
  • Ejemplo:
function saludo() { 
    alert('Hola Mundo!');
}

CSS (Cascading Style Sheets)

CSS dicta cómo se presentan los elementos HTML en la pantalla, siendo fundamental para el diseño de páginas web.

  • Características: Define la presentación de documentos HTML
  • Usos: Diseño y estilización de páginas web.
  • Estructura: Selectores y declaraciones (propiedad y valor).
  • Ventajas: Consistencia en el diseño en múltiples páginas.
  • Desventajas: Complejidad al manejar estilos extensos.
  • Ejemplo:
body {
  font-family: Arial, sans-serif;
  background-color: #f8f8f8;
}

h1 {
  color: #333;
  font-size: 24px;
}

p {
  color: #666;
  line-height: 1.6;
}

HTML (HyperText Markup Language)

HTML es el lenguaje utilizado para estructurar y presentar contenido en la World Wide Web.

  • Características: Lenguaje de marcado para la creación de páginas web.
  • Usos: Estructuración y presentación de contenido en la web.
  • Estructura: Etiquetas que definen elementos y estructura
  • Ventajas: Amplia adaptabilidad, fácil interpretación.
  • Desventajas: Limitado en funcionalidades interactivas avanzadas.
  • Ejemplo:
<!DOCTYPE html>
<html>
<head>
  <title>Mi Página Web</title>
</head>
<body>
  <h1>Bienvenidos a Mi Página Web</h1>
  <p>Este es un párrafo de introducción.</p>
  <h2>Sección 1</h2>
  <p>Información detallada sobre el primer tema.</p>
  <h2>Sección 2</h2>
  <p>Información detallada sobre el segundo tema.</p>
  <p>Para más información, visita <a href="http://www.jorgeocampos.com">nuestro sitio</a>.</p>
</body>
</html>

EDI (Electronic Data Interchange)

EDI facilita la transmisión estructurada de datos comerciales entre organizaciones, optimizando la eficiencia y precisión.

  • Características: Transmisión estructurada de datos entre organizaciones.
  • Usos: Transferencia de documentos electrónicos o datos de negocios.
  • Estructura: Varía según el estándar (EDIFACT, XML, ANSI ASC X12).
  • Ventajas: Ahorro de tiempo, evita errores de comunicación en papel.
  • Desventajas: Requiere estándares y protocolos específicos.
  • Ejemplo: No aplicable directamente, ya que depende del estándar utilizado.

BAT (Archivo Batch)

Un archivo `.BAT` es un archivo de procesamiento por lotes en sistemas operativos Windows. Contiene una serie de comandos de línea de comandos que se ejecutan secuencialmente. Es utilizado comúnmente para automatizar tareas repetitivas y puede ejecutar prácticamente cualquier comando que un usuario podría introducir en la consola de comandos.

  • Características: Ejecutan comandos de la consola automáticamente
  • Usos: Automatización de tareas en Windows.
  • Estructura: Serie de comandos de línea de comandos.
  • Ventajas: Automatización sencilla y rápida.
  • Desventajas: Limitado a las capacidades del intérprete de comandos.
  • Ejemplo: echo Hola Mundo

Se trata de un tipo de archivo bastante rudimentario. Pero yo lo uso todos los días para acceder al SAP GUI directamente sin necesidad de tener que introducir usuario y contraseña. Además lo he usado para automatizar ciertas acciones manuales encadenadas en una sola. Me lo apunto y si veo que tiene suficiente entidad lo explicaré.


INI (Archivos de Configuración)

Los archivos .ini son archivos de texto utilizados para la configuración de aplicaciones y sistemas. Contienen pares clave=valor organizados en secciones, lo que permite una fácil lectura y edición. A pesar de su simplicidad y utilidad, carecen de un estándar universal, lo que puede conducir a inconsistencias entre diferentes programas. Son ampliamente utilizados para personalizar la configuración del software y adaptar el comportamiento de los programas a las necesidades específicas del usuario.

  • Características: Texto simple con pares clave=valor.
  • Usos: Configuración de programas y sistemas.
  • Estructura: Secciones con claves y valores.
  • Ventajas: Fácil de leer y editar.
  • Desventajas: Falta de estándares universales.
  • Ejemplo:
[Settings]
language=es
theme=dark

Dll (Dynamic Link Library)

Los archivos .dll son bibliotecas de enlace dinámico esenciales en sistemas Windows para compartir funciones entre diversas aplicaciones. Aportan eficiencia al evitar la redundancia de código y facilitan actualizaciones. Sin embargo, pueden presentar desafíos de seguridad y dependencias complejas. Estos archivos no se ejecutan por sí solos, sino que son invocados por aplicaciones que requieren sus servicios.

  • Características: Contienen código y recursos utilizados por múltiples programas.
  • Usos: Compartir funciones y recursos en aplicaciones Windows.
  • Estructura: Binaria compilada.
  • Ventajas: Reutilización de código y eficiencia en memoria.
  • Desventajas: Problemas de seguridad y compatibilidad.
  • Ejemplo: No aplicable; es un archivo binario.

Ver las extensiones de archivo en Windows

No te fíes de los iconos que aparecen en el explorador de Windows. Si quieres ser tu quien controle que archivos estás visualizando y para poder modificar las extensiones de archivo, es necesario activar en Windows la visualización de extensiones de archivo.


En conclusión

El objetivo de este artículo no es el aprenderse todos estos tipos de archivos, además muchos de ellos se circunscriben a un lenguaje o aplicación que quizás nunca manejemos y otros son más comunes. Estos son los que yo, de una forma u otra, he manejado. Además de los evidentes claro (Excel, Word, PPT, TXT…)

Reuniones – II – Técnicas y Estrategias

Este artículo es la continuación del artículo «Reuniones» que publicamos anteriormente. En este artículo vamos a proponer estrategias para abordar las reuniones que son interesantes.

La Regla de las dos Pizzas

Jeff Bezos, CEO de Amazon y una de las personas más ricas del mundo, usa la «Reglas de las dos pizzas» para grupos de trabajo en las reuniones. Dicha regla establece que el grupo de personas de una reunión debe ser, como máximo, el número de personas que pueda alimentar dos pizzas.

¿Quién ha pedido la de piña?

Suponiendo que compramos dos pizzas familiares, esto supone unos 4-7 personas (depende lo glotonas que sean).


Técnica «Silent Start» de Jeff Bezos

Una vez más, Amazon, se trata de comenzar la reunión con unos minutos de silencio donde todos leen la agenda o los documentos relevantes. Esto asegura que todos estén en la misma página y reduce las repeticiones durante la reunión. Estos minutos pueden ser hasta 30 minutos. Suena loco, pero todos estarían conociendo el alcance de la reunión perfectamente. No es más que bloquear ese tiempo para preparar la reunión.


Técnica «Parking Lot» (Zona de Aparcamiento)

Si surgen temas interesantes pero no relevantes para la agenda actual, anótalos en una «zona de aparcamiento» para discutirlos en otro momento.

Esto sirve para centrarnos a tratar los temas agendados antes de abordar otro y, si no diese tiempo, ya tienes la agenda de la siguiente reunión hecha en un parking lot.


Método «No Agenda, No Asistencia»

No permitir reuniones a menos que haya una agenda claramente definida y compartida con antelación. Esto asegura que todos sepan de qué se tratará y puedan prepararse adecuadamente.

Dall-E 3 no maneja bien el texto

Es que a la gente le encanta hacer perder tiempo a los demás. Además, pensando en una agenda de reunión ya estás organizando el problema, duda o acciones a realizar. Ya estás avanzando en el trabajo.


Si llegas tarde, no entras

Otra buena. Para aquellos que, sistemáticamente, llegan tarde a las reuniones, haciendo perder el tiempo a los demás. Son los famosos 15 minutos de cortesía, pero que pasado este tiempo se pasa de cortesía a aspereza y se cierra la puerta.

La ves desde fuera

Días sin reunión Meeting free days

Un estudio publicado en el MIT Sloan Management Review que se realizó durante un año en 76 empresas de más de 1000 empleados reveló que introducir días sin reuniones en las empresas conduce a un aumento significativo en la productividad, colaboración, autonomía de los empleados y satisfacción laboral.

The Surprising Impact of Meeting-Free Days

MIT Sloan Management Review

Yo con tener 3 horas sin reuniones ya tengo suficiente.


Regla de los 5 Minutos

Si un tema no puede ser presentado y discutido en 5 minutos, debe ser tratado fuera de la reunión o en un grupo más pequeño y específico. Esto mantiene la reunión enfocada y rápida y obliga a los participantes a concentrarse en la esencia de lo que necesitan comunicar, eliminando divagaciones o detalles innecesarios.

Esta regla me parece muy drástica. Yo soy más partidario de usar esos 5 minutos con la técnica de Parking Lot. Si sale un tema a discutir, si se puede cerrar en 5 minutos, se discute, si no se aparca para otra reunión.


Reuniones «Stand-Up»

Esta estrategia implica realizar reuniones breves y de pie. Al no estar cómodamente sentados, los participantes tienden a ser más concisos y directos, lo que acorta la duración de la reunión. Pero claro, a ver quién apunta ahí. Lo que yo he visto y es muy interesante son las zonas abiertas con mesas y sillas para hacer reuniones más rápidas.


Limitación del Tiempo Total de Reunión

Establece un límite de tiempo total para tus reuniones, no solo por tema discutido. Por ejemplo, ninguna reunión puede exceder los 60 minutos. Esto obliga a todos a ser más conscientes del tiempo y priorizar los temas más importantes.


Uso de Técnicas de Facilitación

Incorpora técnicas de facilitación como el «round robin» para asegurar que todos tengan la oportunidad de hablar. Esto es particularmente útil para garantizar que incluso las voces más silenciosas sean escuchadas y que todos los puntos de vista sean considerados.

¡Yo tengo la banderita! ¡Ahora me escucháis a mí!
Luego le toca a Lucía

Sobre este tema profundizare en otro artículo, porque tiene mucho que contar.


Reuniones de Pie para Check-ins Diarios

Además de las reuniones de pie breves para discusiones específicas, considera implementar reuniones de pie diarias para actualizaciones rápidas del equipo. Estas pueden ser muy efectivas para mantener a todos alineados y enfocados en los objetivos diarios sin tomar demasiado tiempo.


Asignación de un «Abogado del Diablo»

Para temas importantes que requieren deliberación, asigna temporalmente a una persona el rol de «abogado del diablo». Su trabajo será cuestionar ideas y suposiciones, ayudando a evitar el pensamiento de grupo y fomentando una discusión más profunda.

Mira lo que ha hecho el %&@# de tu manager

Sesiones de «Brainwriting»

En lugar de un brainstorming tradicional donde las personas gritan ideas, prueba el «brainwriting», donde cada participante escribe sus ideas en silencio y las comparte de manera anónima. Luego, el equipo puede discutir estas ideas juntas. Esto fomenta la participación igualitaria y puede generar ideas más diversificadas y creativas.


Uso de «Timeboxing»

Asigna una cantidad fija de tiempo a cada punto de la agenda (timeboxing) y mantén el compromiso con esos límites. Esto ayuda a asegurar que se dedique tiempo a todos los temas importantes sin permitir que ninguno domine indebidamente la reunión. Lo que no se llegue a abordar, lo llevamos al Parking Lot para la siguiente o para el final de la reunión.


Mi Opinión

Todo esto está genial, pero necesita que la filosofía de la empresa y del cliente estén alineadas para que esto se lleve a cabo. Quizás para reuniones internas de la empresa, donde sólo hay un equipo y una filosofía, sea más factible. Sobre todo cuando estás en desarrollo de producto. Pero en Consultoría, puedes ser todo lo ordenado que quieras, tener todas las estrategias claras, pero el cliente no, y no estás ahí para enseñarle a hacer reuniones.

¡El Rey está desnudo!


Érase una vez, en un lejano reino, un vanidoso y autoritario rey que se preocupaba más por su vestimenta y apariencia que por el bienestar de sus súbditos. Un día, dos astutos estafadores llegaron al reino con la intención de aprovecharse de la vanidad del rey. Se presentaron ante él como tejedores y le ofrecieron confeccionar un traje especial, diciendo que era de un tejido tan extraordinario que solo las personas inteligentes y aptas para sus cargos podían verlo.

El rey, emocionado por la idea de tener un traje que le permitiera descubrir quiénes eran los incultos o incompetentes en su corte, aceptó inmediatamente y les pagó una gran suma de dinero. Los estafadores pusieron manos a la obra, fingiendo trabajar en un telar, pero en realidad no estaban tejiendo nada.

Cuando el rey envió a sus ministros más confiables a revisar el progreso, ninguno de ellos vio tela alguna en el telar, pero temiendo ser considerados tontos o incompetentes, todos elogiaron el tejido invisible y la belleza del traje.

Finalmente, el traje estuvo «listo» y los estafadores simularon vestir al rey con él. El rey, aunque no veía ninguna tela, no se atrevió a admitirlo, pues no quería ser considerado un incapaz. Así que marchó en un desfile ante sus súbditos, orgulloso de su nuevo «traje».

Todo el pueblo había escuchado sobre la mágica tela y, aunque ninguno veía el traje, nadie se atrevía a decir la verdad, temiendo ser considerado estúpido o incompetente. Así, todos elogiaron la vestimenta del rey.

Finalmente, un niño, que no tenía miedo de decir la verdad, exclamó: «¡El Rey está desnudo!» Este comentario hizo que todos los presentes se dieran cuenta de la realidad y comenzaran a murmurar lo mismo entre ellos. El rey, avergonzado decidido a terminar el desfile, continuó marchando más orgulloso que nunca, mientras sus cortesanos le seguían sosteniendo la cola de un traje que no existía.

Fábula del Rey desnudo
¡El Rey está desnudo!

¿Y por qué pongo esta fábula?

Pues porque en muchas ocasiones, en consultoría, se da esta situación. Todo el mundo ve al rey desnudo, el rey se ve desnudo, los cortesanos ven al Rey desnudo, pero nadie se atrevía a decirlo. Todo el mundo se engaña a sí mismo, y al resto.

Esto sucede cuando hay problemas en un proyecto de implantación (¿siempre?). Al inicio del proyecto se hace una planificación y unos hitos, que deben de estar fijados con pegamento, porque no hay quien los mueva. Nadie quiere ser el que diga que ¡El rey está desnudo! Ya pueden cambiar los requerimientos, estar mal dimensionados los equipos (tanto de cliente como de implantador), tener dificultades no identificadas, da igual. Nadie quiere decir la verdad, y se sigue echando más leña a la locomotora hasta que casi se llega a pegarse contra el muro de la realidad.

Se traspasa local

Es cierto que ambas partes han de mantener cierta tensión para evitar que se relaje el proyecto y caiga en más retrasos. Pero a mi, personalmente, no me gusta mentir (otra cosa es no decir toda la verdad) y aquí nos mentimos al solitario muchas veces (no siempre).

La Disonancia Cognitiva

En un estudio de Festinger, L. (1957), propuso que los individuos experimentan un malestar psicológico (disonancia) cuando mantienen dos pensamientos contradictorios, creencias, opiniones o actitudes, especialmente en relación con sus comportamientos y decisiones. Este malestar lleva a las personas a realizar cambios en sus actitudes, creencias o comportamientos para reducir la disonancia y restaurar el equilibrio psicológico. Es como estar en una dieta estricta y encontrarte cara a cara con una tentadora tarta de chocolate. Sabes que no deberías, pero oh, ¡cómo quieres!.

En el vasto reino de la consultoría, esta disonancia se manifiesta cuando sabemos que algo no va bien en el proyecto (el rey va desnudo, por cierto), pero seguimos adelante, aplaudiendo el traje invisible del monarca. ¿Por qué? Porque admitir lo contrario sería reconocer que hemos permitido que la situación llegue a este punto, o peor aún, que no hemos visto venir el desastre a pesar de las señales de advertencia.

¿Cómo estás Paco?
¡Muy bien!

Aquí entran en juego el orgullo, el miedo y una pizca de optimismo irracional. «Quizás si cerramos los ojos lo suficientemente fuerte y creemos con todas nuestras fuerzas, el traje mágico aparecerá», nos decimos. Pero al igual que el público en la fábula, a menudo nos encontramos participando en una danza colectiva de negación. Nos convencemos a nosotros mismos y a los demás de que todo va según lo planeado, incluso cuando internamente estamos gritando:

«¡Esto es un desastre!»

SAP Mandante (Cliente)

Vamos a explicar algo básico, pero no por ello menos importante. Además es algo que damos por hecho y, normalmente no tenemos en cuenta porque no solemos tener que manejar más de uno. El mandante (o cliente) en SAP.

¿Qué es el Mandante?

En SAP, un mandante o cliente se refiere a una instancia separada en un mismo sistema SAP que puede ser utilizado por diferentes empresas de un grupo de empresas o bien distintas unidades organizativas de la misma empresa. Usando un símil con el armario de la imagen superior. Es como tener un armario con varios cajones, uno para cada área de negocio que quiera separar.

El mandante es ese código de 3 cifras que cuando entras en SAP viene por defecto, normalmente 100 pero pudiendo venir otro. Además en las tablas pones el campo MANDT. Siendo 3 cifras podríamos tener hasta 1000 mandantes, a mí con uno me vale.

Nunca encuentro el mandante 404

¿Para que sirve tener más de un mandante?

Cada mandante tiene su propio conjunto de datos, configuraciones (customizing) y usuarios que lo hacen único. Esto permite a diferentes organizaciones o divisiones operar en un mismo sistema SAP mientras mantienen su información y accesos separados.

Imagínate que eres el CIO de un grupo de empresas y quieres implementar un ERP para gestión del grupo. Pero no quieres que los datos de una de las empresas interfieran con los de la otra. Para ello creas dos mandantes uno con la configuración y datos de la empresa A y otro con la configuración y los datos de la empresa B. ¿Bonito no? Te ahorras hierro, mantenimiento de sistemas, etc. Volviendo al símil del armario, solo gastas en comprar uno, solo mantienes en buen estado ese, solo te ocupa el lugar de uno, etc… Pero también tiene sus inconvenientes ya que hay elementos comunes a todos los cajones, y eso puede producir problemas.


Customizing independiente de mandante

Pues aquí empieza el primero. En general, el customizing o configuración de SAP es dependiente de mandante. Es decir, por ejemplo tienes unos tipos de documentos para la empresa A y otros para la B. O tienes unos datos transaccionales propios para cada mandante, pedidos, facturas, materiales, clientes, etc… (No digo que puedas tener una contabilidad B, ¿no?)

Pero hay algunas configuraciones que son independientes de mandante (Cross-Client) que SAP te avisa que vas a configurar algo independiente de mandante, que tengas cuidado porque afectará a todos los mandantes por igual.


Workbench

Lo mismo pasa con el workbench, es decir todos los objetos del repositorio como son reports, clases, módulos de función, elementos de datos, etc… Este es el mayor riesgo porque se comparte el código y eso hay que tenerlo en cuenta a la hora de hacer una u otra cosa. En símil del armario es como si haces cambios en los rodamientos donde abre y cierra cada armario, o si pintas el armario de un color porque uno te lo ha pedido así.


SELECT a tablas dependientes de mandante

Si bien hemos dicho que el workbench se comparte, cuando hacemos una SELECT a una tabla dependiente de mandante, no necesitamos indicar explícitamente el Mandante en el que estamos, por defecto lo tendrá en cuenta, lo mismo al crear registros.


Mandantes especiales (000, 001, 066)

En los sistemas SAP, además de los mandantes que se hayan creado para la gestión de la empresa o área de negocio, existen una serie de mandantes «especiales» que tienen, cada uno de ellos, un propósito particular.

  • Mandante 000: Es un mandante de referencia proporcionado por SAP. Contiene la configuración estándar de SAP, pero no incluye datos maestros o transaccionales. Se utiliza comúnmente como base para crear nuevos mandantes mediante la función de copia de mandante. Además para ciertas tareas del antiguo (en paz descanse) Middleware de SAP CRM, era necesario entrar a configurar.
  • Mandante 001: Se trata de un mandante ejemplo, una base para crear nuevos mandantes limpios.
  • Mandante 066 (Early Watch): Se utiliza principalmente para propósitos de soporte remoto por parte de SAP. Permite a SAP acceder al sistema para diagnósticos y optimización del rendimiento.

Copia de Mandante

Este proceso permite duplicar la configuración de un mandante existente en otro nuevo. Es especialmente útil cuando se necesita establecer un mandante para desarrollo, pruebas o formación, basado en la configuración actual de un mandante productivo. La copia de mandante incluye tanto la configuración (customizing) como los datos maestros, permitiendo un entorno de trabajo completo y coherente, pero cuidado, que el workbench no se pasa en una copia de Mandante, con lo que si tienes los sistemas de desarrollo y test hechos un desastre, solo pasas datos y configuración (NOTA: No tengas los entornos hechos un desastre).

Para mí este proceso es fundamental realizarlo periódicamente desde producción a test, con un proceso de blanqueo de datos si se requiere en medio, para poder establecer un escenario de resolución de incidencias óptimo.


Copia Homogénea

A diferencia de la Copia de Mandante, y aunque nos salgamos un poco del tema, la copia homogénea es una copia tal cual de un sistema a otro. Es muy útil y usado para escenarios de upgrades, cuando necesitamos crear un Sandbox (sí, sí, arenero, los ingleses no se andan con chorradas) para probar los upgrades sin afectar la cadena de transportes.

Quedamos a las 5 en el arenero a jugar

En casos extremos se puede usar para hacer borrón y cuenta nueva desde Producción a Desarrollo, pero como ya os he dicho antes, esto sería porque tenéis un sistema de desarrollo descabalado y sin control, con muchas modificaciones descontroladas. El problema de la copia homogénea es que todo se copia, y claro, tendremos un periodo de reconfigurar muchas cosas y de quitar ciertas que no se necesitan en entorno no productivo. Por ejemplo, salida de emails.

¿Cómo ver los mandantes que hay?

Para ver los mandantes que hay en el sistema podemos acceder a la transacción SCC4. Además esta transacción nos permite administrar cada uno de los mandantes indicando su tipología y su gestión de cambios y transporte.


En conclusión

Si bien es algo que siempre pasamos por alto, porque lo habitual es que tengamos un mandante  de trabajo por entorno. Podemos encontrarnos, o incluso proponer, un escenario distinto, donde haya varios mandantes en la misma instancia de SAP, y tenemos que ser conscientes de lo que implica y las capacidades que da.

Ser Formador

Hace poco me ha tocado formar a un grupo de nuevos consultores. Bueno, más que una formación ha sido una introducción y primeros pasos. Pero eso me ha dado que pensar lo que siempre he pensado cuando me toca dar formación.

Si no entendéis SAP a la primera. ¡Golpe de Remo! Si no entendéis esta imagen.
¡Oh! Eso sí que es golpe de Remo.

Yo he impartido varios cursos SAP oficiales a consultores y clientes, otros tantos fuera del circuito ‘oficial’ y mucha formación informal. Sobre esto de formar a gente hay varios puntos de vista pero, en mi opinión, veo varias consecuencias y consideraciones a tener en cuenta cuando damos formación a otra gente.


Yo aprendo más que los alumnos

El que no ha dado una formación ‘seria’ a gente no sabe lo que significa, estás tu solo ante el peligro, teniendo en frente a consultores como tú interesados en adquirir conocimiento, con un temario de cientos de páginas (las de SAP en ingles), con un sistema que a veces va lento o requiere de una infraestructura de conectarte a un escritorio remoto y hacer el pino puente.

Y de ahí tienes solo un camino, hacia delante, no vale esconderse. Tienes que apoyarte en lo que sabes, estudiar lo que conoces pero no eres experto y sortear lo que te suene a chino mandarín. El tiempo del curso es un tiempo de estrés continuo, 24h tenso y alerta, intentas cerrar todas las fallas de conocimiento que tienes, porque no hay nadie que lo sepa todo. Los consultores te van a preguntar «no se qué» de su proyecto que les pasa raro, para que tu les puedas guiar. Y claro, llegas a casa a estudiar e investigar eso que te han preguntado y además a preparar las posibles lagunas que tengas de la sesión del día siguiente.

Tal es el tsunami de responsabilidad y de demostrar que eres un referente que terminas el curso sabiendo mucho más que antes del tema en cuestión, y encajando piezas en tu cabeza que antes no encajaban.


Ellos me recordarán, yo a ellos, no

Ser formador, como herramienta de networking, es como plantar una semilla en cada uno de los alumnos. Ellos, posiblemente, se acordarán de aquel tipo que les dio un curso y se portó bien con ellos siendo cercano y estando disponible a dudas. ¿Quién sabe si tus caminos se terminarán cruzando un día? Quizás uno de ellos termina siendo socio de esa consultora que te quiere contratar, o CIO en el cliente de un proyecto.

Tú, olvídate, no vas a recordarlos, salvo que hayas seguido manteniendo algún tipo de contacto con ellos (que también sucede). Pero la semilla ya está plantada, serás un referente para ellos siempre, aunque te adelanten (que muchos lo harán) en el conocimiento.


Desbloquea competencias

Dar un curso no va solo de ser experto en la materia, no. Ser formador aplica a más áreas de tu perfil personal y profesional. Te lleva fuera de la zona de confort en varias de tus competencias, desbloqueando algunas de ellas y mejorando otras. Por poner un ejemplo ayuda con las compentencias:

  • Hablar en público
  • Hacer presentaciones guiando a la audiencia a lo que te interesa
  • Ser asertivo
  • Saber adaptarse a la situación, dudas, preguntas
  • Relaciones públicas, saber ‘llevarte’ a la gente, ‘engancharla’. Tanto durante el curso como en las pausas del café, o inicio/fin
  • Ser responsable, estar 5 días por ejemplo estudiando y dando el curso porque algo no te cuadra y te debes a la responsabilidad de explicarlo bien.

Seguro que hay más competencias que te desbloquea, pero a rasgos generales estas son las que yo identifico en mi experiencia.


Formar a gente no te quitará el trabajo

Hay expertos celosos de ceder su conocimiento a otros. Como si al ayudar a que otros adquieran conocimiento hiciese que a ellos les faltase el trabajo de experto. Eso, bajo mi punto de vista, es incorrecto. Cierto es que cuando trabajas en un nicho donde la demanda es superior a la oferta, si aumentas los perfiles formados, aumentas la oferta, y la balanza se equilibra.

Pero hay cosas que no se pueden ‘traspasar’ y que son las más valiosas. Aspectos como la actitud ante el trabajo, la responsabilidad, la capacidad de aprender y valerte por tí mismo, la seguridad, la empatía, la velocidad de razonamiento, la adaptabilidad, la capacidad de hablar en público, etc. Son aspectos personales que no todo el mundo tiene y que no se pueden ‘enseñar’ en un curso sobre SAP (por ejemplo). Para ello hay que formarse en esas competencias concretas, pero para formarse la persona debe conocer que tiene carencias, y eso no es fácil.

Además, al formar a gente te conviertes en un referente en el campo, tanto para esas personas, como a nivel Curriculum.

En conclusión

En definitiva, formar a gente no es algo fácil pero tampoco es imposible, lo vas a pasar mal pero vas a aprender mucho y vas a mejorar tus capacidades y tu valor. Un ejemplo de esto es este mismo blog. Estoy cediendo mi conocimiento, dándolo accesible para todo el mundo, gratis. Pero esto trae aspectos positivos que para mi son valiosos, aprendo mucho, incluso algunos artículos los propongo sobre temas que, a priori, tengo lagunas y me obligo a estudiarlos. Además es un escaparate de imagen personal/profesional y, por último, que me gusta escribir, no sé si se nota.

Si alguien necesita un formador de SAP CRM o ABAP que busque en LinkedIn a uno bueno que me contacte y vemos qué podemos hacer. Pero ten en cuenta que:

  • Necesitaré un sistema SAP al que acceder. Que a veces me piden cursos sin sistema.
  • Necesitaré un manual para dar el curso. Si no hay manual de formación, necesitaré un tiempo para crearlo, incluso más tiempo que el curso en sí. Tiempo que se cobra claro.
  • Yo no lo sé todo
  • El curso no puede ser ‘Necesitamos un curso para abordar este proyecto’. Para eso se me contrata de consultor y realizo el análisis del proyecto y aporto soluciones.