Category Archives: Empresa

Entradas sobre organización empresarial, creación de empresas, gestión, avances, etc.

Modelo de Dominio: la importancia de los nombres

Actulizado: se ha corregido el concepto, ya que se confundía con la definición de glosario, cuando se quería detallar que era algo más que un glosario.

En todas las empresas en las que he trabajado, siempre surge el problema de que, cuando sale algo nuevo o se crea un cierto programa, un sistema o una forma de trabajo, si la persona que la ha motivado no sabe su nombre: se la inventa.

Esto pasa con mucha frecuencia, y no es malo, pero es común que toda la empresa termine usando el vocablo en muy poco tiempo y, toda persona que entre nueva, si ese vocablo le parece desconocido o le sugiere otra cosa distinta, le lleve a confusión hasta que se lo expliquen.

Para esto se suelen hacer glosarios o lo que, en ingeniería del software se conoce como: Modelo de Dominio.

Este documento tiene varias partes, una de ellas se especifica como un glosario, estando ordenado alfabéticamente, y recogiendo todas las palabras que se usan, comúnmente en el entorno profesional en el que se mueve la empresa, y las palabras referentes a productos y servicios específicos que se comercializan o adquieren por parte de la empresa. Otra de las partes es la relación que hay entre conceptos que se manejan en la empresa, definición de características de cada uno de los elementos y restricciones de uso de los mismos.

Ceñirse a estándares es una forma de no necesitar un modelo de dominio, pero es complicado no saltarse las normas alguna que otra vez, por lo que, aún tomando precauciones de llamar a todo por su nombre, es conveniente y productivo, sobre todo para las nuevas incorporaciones o subcontratas, tener este documento disponible.

¿Informáticos en paro?, no en el software libre

Hay varios sitios en Internet, como Software Libre y Cooperación, El Blog de Juantomás García y el blog de La Pastilla Roja, en donde se habla de lo mismo. En el sector del software libre NO hay paro, sino que hay déficit.

Los que nos dedicamos a las tecnologías abiertas, libres e intentamos siempre poner algo estándar y abierto sobre otras soluciones propietarias, nos damos cuenta de que, aunque en temas de software libre se está haciendo mucho, hay mucha gente que estudia certificaciones y productos de compañías propietarias, cuya implementación en cualquier empresa, es más cara que el sueldo que se le pueda pagar, durante uno o dos años, al empleado que lo mantendrá.

El software libre, y las soluciones de software libre son distintas y proponen mejoras, tanto a nivel de empresa, como a nivel de trabajador:

  • A nivel de empresa:
    • los costes de los productos se abaratan considerablemente, adquirir lo mismo y que funcione adecuadamente al modelo de negocio que se quiere implementar cuesta menos dinero y esfuerzo que adquirir una solución propietaria.
    • las personas que pueden mantener los sistemas no tienen que haber estudiado, ni tener una certificación especial, solo tienen que conocer las herramientas con las que están desarrolladas las aplicaciones (normalmente C, Java, Python, PHP, Ruby…) e incluir las modificaciones o correcciones en caso de necesitarlas.
    • hay más posibilidad de entrenar de forma más económica a nuestro personal TI sobre las tecnologías a implantar, que el coste de un entrenamiento de una empresa propietaria, sobre un producto que no podemos modificar, ni ampliar de forma interna.
    • el mantenimiento puede hacerse mediante nuestro personal TI, consultoras externas de TI, nuevos empleados con perfil de programador, etc.
  • A nivel de trabajador:
    • nos da la posibilidad de acceder a la información para aprender las nuevas tecnologías de forma más fácil, incluso pudiendo acceder al propio código fuente.
    • tenemos el código fuente a disposición y las herramientas para poder construirlo.
    • hay déficit de profesionales que se dediquen a las tecnologías de software libre, y estas tecnologías abarcan todos los campos aplicables de la informática.

Por ello, si un informático dice que está en paro, es posible que deba plantearse el renovar su curriculo, así como sus conocimientos y apuntar a tecnologías libres y abieras, al software libre, que es lo que, hoy en día, aún, da trabajo.

Información y Formación

En los tiempos que vivimos, donde en todos los medios y las comidillas de cada calle y esquina la palabra crisis acecha como la mayor preocupación de esta época, el paro crece desmesuradamente y, curiosamente, la informática y el sector del software libre es el único que registra aumento de contratación.

Hay un déficit real, antes y después de la crisis, de profesionales de la informática. Se piden conocimientos específicos en ciertas áreas. En estos tiempos, la más demandada, el software libre. Las empresas quieren economizar y, encontrar gente que conozca y domine software libre es una ventaja, tanto competitiva por prestar más servicios, como económica, porque el precio suele ser muy bajo o nulo.

En esas lindes, la formación se convierte en pieza fundamental para que estas empresas encuentren profesionales cualificados que estén dispuestos a trabajar con estas tecnologías, y no con las que proponen otras empresas, cuyas licencias y soportes son más caros que el suelo que se paga al trabajador.

Invertir en formación es fundamental, tanto a nivel personal, para ampliar curriculum, como a nivel empresarial, puesto que si nuestros empleados van reciclando sus conocimientos, van avanzando, no se quedan estancados y se puede optar por tecnologías punteras, para ofrecer nuevos servicios que permitan a la empresa destacar sobre la competencia, así como mejorar los servicios y productos en los que se trabaja diariamente.

Imagina que la empresa en la que trabajas ha estado desarrollando software para clientes durante 20 años. La empresa nació desarrollando en Clipper, el lenguaje de moda de la época y, dado que los tiempos cambiaron, y los equipos informáticos más todavía, los PC pasaron de tener DOS a tener Windows y todo el software desarrollado se fue quedando obsoleto.

La ingeniería del software describe y contempla estos procesos de mantenimiento de software como del tipo adaptativo. El software debe de adaptarse a los nuevos equipos hardware y a los nuevos sistemas operativos, entornos gráficos, etc.

El lenguaje de moda comenzó a ser, según las revistas de aficionados, Visual Basic. Incluso en revistas profesionales comenzó a hablarse de este lenguaje, al mismo tiempo que salía publicidad de productos de Microsoft… es normal, las revistas no tienen porque ser del todo objetivas, pero hay que reconocer que Visual Basic, gracias a su fuerte impulso comercial, tuvo su éxito.

Puestos de nuevo en la empresa que programa en Clipper desde hace 20 años, ¿qué pasaría si se pensase en desarrollar en ese sistema totalmente nuevo para adaptarse a las ventanas de las que todo el mundo comienza a hablar?, sería un fracaso sino tienen alguna guía, algún tiempo de formación y aprendizaje.

En esta labor, hay mucha gente que se dedica, casi en exclusiva, al estudio de las nuevas tecnologías. Estas suelen ser, casi siempre, consultoras y, estás especializadas en ciertos entornos y tecnologías. Como es lógico, si a una consultora dedicada a .NET de la actualidad le pides información para Java, te van a intentar convencer de que es mejor .NET, es su negocio.

Al final, llegamos al punto en que, la formación es importante, tener un formador es una vía rápida de conseguir producir en un tiempo muy corto con una tecnología que nos dé una ventaja estratégica en nuestro sector… pero conocer las tecnologías es también muy importante. Hay que acudir a varios sitios, ver comparativas, aprender, en primera instancia, las ventajas de cada opción y, después, decidir. Para esto, lo mejor es tener un consultor propio en la empresa, alguien que entienda las nuevas tecnologías, que pueda informarse rápido de ellas y que pueda tomar la información necesaria que nos permita tomar la decisión de, ¿en qué debemos formarnos?

Business Process Management

Según se puede ver en la definición de la wikipedia BPM es una metodología empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio.

Cuando una empresa tiene una actividad comercial, por ejemplo, basada en un almacén, con varios sistemas que requieren acceder a la base de datos para su manipulación (administrativos, atención al cliente, empleados de almacén…), cada uno con una misión específica, se deben de centralizar esa actividad de alguna forma para no caer en el problema de repetirnos a nosotros mismos (incumplir DRY) codificando una y otra vez lo mismo en varios programas distintos.

Un sistema BPM muy arcaico y con posibilidad de error es el SGBD. Si se usa un sistema que pueda almacenar procedimientos y se detallan un conjunto de ellos para uso de los usuarios, propiamente dichos, se puede sistematizar bastante el sistema. Pero SQL no está del todo bien diseñado para mantener un nivel de seguridad, abstracción y acceso para toda una jerarquía de empleados. No sería imposible, no obstante, pero sí muy complicado de implantar y casi imposible de mantener. Además de la incidencia en el rendimiento que ello conllevaría.

BPM se suele implementar con el uso de SOA, las arquitecturas orientadas a servicios, las cuales le dan un soporte ideal mediante el uso de servicios web o sistemas RPC.

Por lo tanto, para tratar los datos, con acceso controlado, inteligencia de negocio y un desarrollo de esta capa de forma más fácil, en ciertos lenguajes se facilitan empleando sistemas como servicios web mediante protocolos como XML-RPC, SOAP o similares.

Centrar todos los procesos de negocio en un sistema de servidores con acceso RPC de algún tipo, con todas las funciones de negocio disponibles con acceso por máquinas que usan esa inteligencia y desarrollan una actividad de interfaz basada en usuarios u otros sistemas superiores.

A este respecto, C tiene implementaciones tan antiguas y aún usadas como Tuxedo; Java tiene sus EJB en servidores de aplicaciones tales como JBoss, Glassfish, Weblogic, …; Python tiene como servidor de aplicaciones a Zope; etc.

¿Está mi empresa organizada?

Cuando una empresa se forma, se intenta organizar el trabajo entre las pocas personas que la inician y si su estructura es buena y sus productos/servicios asequibles para el mercado, la empresa crece y con ella su personal. Es el inicio de los problemas.

Cuando una empresa crece, se contrata a más gente y estas personas comienzan a ocupar cargos que antes desempeñaba una persona en un porcentaje pequeño de su actividad laboral. El ritmo vertiginoso hace que las reuniones con esta nueva persona, para explicarle su cometido sean breves y escasas, así que terminan por hacer el trabajo a su manera.

Después de pasar por varias personas, varias formas de hacer las cosas y distintas formas de organizar las cosas, cuando un grupo de personas deja la empresa y retoman otro grupo, suele ser un caos y, el reactivar el proceso de producción en esa parte, muy lento y costoso.

El problema se debe a la falta de método y documentación.

Cuando una persona entra a trabajar en una empresa madura, suele entrar en un engranaje del que tiene que formar parte. Sus conocimientos básicos son los que se le solicitaban al entrar al puesto de trabajo, como pueden ser saber programar, una cierta metodología, idioma o titulación. Pero a partir de ahí, la formación debe de ponerla la empresa y, es en este punto, donde la mayoría de empresas, no tienen forma de explicarles a sus nuevos empleados lo que hay, lo que tienen que hacer o cómo hacer su trabajo.

El funcionamiento de una empresa, sus procesos y su burocracia, debería de estar recogida y revisada en un documento de Modelo de Negocio. En este documento se especifica cómo funciona cada departamento, los cometidos de cada uno de los subdepartamentos y las políticas de trabajo, comunicación y otros aspectos o típicos como seguridad laboral.

Así mismo, cada departamento y/o subdepartamento, debe tener claro su cometido y esclarecer una forma en la que realizar su trabajo, tener sus tareas bien definidas y documentadas para, en caso de enfermedad, vacaciones, cese o fallecimiento, el trabajo pueda ser cubierto por cualquier otra persona.

Estos tipos de documentos no son solo una gran utilidad para el propio empleado, sino también para las consultoras y asesorías externas, puesto que pueden optimizar dichos procesos, e incluso diseñar software que ayude y dé soporte a estos procesos.

¿Sería capaz de diseñar un modelo que optimice el rendimiento de su empresa?, un modelo de negocio podría desvelarle qué puntos podrían optimizarse y mejorarse, así como qué recursos tiene más explotados y cuáles están más libres.

Inteligencia de Negocio

Le he estado dando vueltas hoy a herramientas de Business Intelligence (Inteligencia de Negocio) tales como Pentaho y ver cómo están estructurados todos los departamentos de negocio que he visto en muchas empresas.

La valoración, en comparación con talleres de coches, sería que estas empresas trabajan con mucho personal debido a que las herramientas son viejas, escasas y hay que usar muchas para tareas que parecen muy complejas. Mientras que los talleres con herramientas de BI, son talleres con las herramientas precisas que les permiten llevar a cabo una labor cotidiana de forma fácil y efectiva.

El desarrollo de software y, sobre todo, el encargado a la lógica de negocio, avanza cada día, y cada día hay más herramientas que facilitan el desarrollar herramientas de administración, informes, estadísticas y más, sin necesidad de ponerse a desarrollar arduamente y encontrarse con que se acaban los recursos de hardware o que un software desarrollado no es útil porque tarda demasiado tiempo y consume muchos recursos de la máquina.

Aconsejo encarecidamente a la lectura de definiciones como OLAP para sacar mejor rendimiento a los almacenes de datos, creación de informes y generación de estadísticas.

Despide a tu jefe

Hoy he leído en el blog de Enrique Dans (le he dejado un comentario también ;-) ), que hay un artículo (en inglés) que habla sobre cómo prepararse para la crisis, haciendo lo que realmente pueda ayudar a una empresa recortando por arriba.

La idea base es despedir al encargado de tecnología, por los motivos de que es solo un despido de una nómina que sí se notaría en el balance económico de la empresa y, también, porque este tipo de perfiles en la empresa, tiende, con el tiempo, a separarse de la tecnología, a no entender las nuevas tendencias y a “encasillarse” en las viejas tecnologías de los 80 y 90, porque le han funcionado de forma estable siempre.

Muchas empresas, para acortar la crisis, están comenzando a optar por no adquirir software propietario, sino que invierten en software libre (emrpesas que lo mantienen y dan soporte) y cloud software, o software vía Internet, que consta de que el software que se usa no se adquiere, sino que se usa en un servidor de otra empresa, con la que se contrata un servicio de uso del mismo.

También hay que tener en consideración que no todos los jefes son iguales, y con esto quiero decir que, la regla de despedir al jefe, no debe de aplicarse a diestro y siniestro sin miramientos, sino que debe de ajustarse a una serie de pruebas, como exámenes de capacitación, tests sobre nuevas tecnologías, etc.