En un reciente tweet indiqué los que creo que son los
tres principales handicaps para la implantación de SOA en una
organización:

  1. el cortoplacismo
    imperante
  2. la complejidad de la
    tecnología
  3. la falta de conocimientos en esta
    tecnología

Aprovechando el formato del blog
(lejos de los 140 caracteres que permite un tweet) me gustaría
extenderme un poco sobre estos tres puntos.

En primer lugar, por cortoplacismo me refiero a esa tendencia
(más bien realidad) de que prácticamente lo único que importa en el
desarrollo de una aplicación de negocio es minimizar en lo posible
los plazos en los que esta nueva funcionalidad se pone en
producción (el tan traido y llevado time to
market
). Parece que atrás quedan los tiempos en los que
tenía prioridad minimizar el coste de mantenimiento (está
demostrado que el mantenimiento correctivo y evolutivo representan
más del 50% del coste total del sofware). La Arquitectura
proporcionaba las herramientas necesarias y la normativa de
construcción para que esto pudiera ser una realidad. Con frecuencia
desarrollando componentes específicos y de tecnología propietaria
que uniformizaban el desarrollo y reducían la complejidad y
conocimientos necesarios para desarrollar y mantener una
aplicación. Aunque, por contra, nos encontrábamos con una
tecnología propietaria y por lo tanto no se podían encontrar con
facilidad personas formadas en la misma.

En segundo lugar, creo yo, la tremenda dificultad y complejidad
en el uso de la tecnología. Al menos en lo que se refiere a la
plataforma Java (no se puede considerar únicamente un lenguaje de
programación), en concreto JEE
1.5, que es la última especificación que se puede
encontrar en entornos productivos de grandes corporaciones, no se
caracteriza precisamente por su sencillez. La cantidad de APIs de
programación, especificaciones, productos, incluso lenguajes
asociados, simplemente abrumadora.

En tercer lugar, muy importante en el desarrollo de
aplicaciones y servicios de negocio y derivado del punto anterior,
la falta de conocimientos en la tecnología. Estaremos de acuerdo en
que si la tecnología es muy compleja se necesitan entonces
profesionales altamente cualificados que sean capaces de manejarla
y usarla para el desarrollo de las funcionalidades que requiere el
área de negocio con una calidad aceptable y en el tiempo que se
demanda. Es sabido que, al menos en España, la profesión de
programador o desarrollador está bastante poco reconocida. No es
posible, por ejemplo, que un profesional se jubile como programador
senior. No se le da a este perfil la importancia que tiene y se le
ve más como el peldaño inferior de la pirámide de una empresa de
I.T. A poco que un programador quiera progresar y cobrar un poco
más necesitará pasarse al rol de analista, y de éste al jefe de
proyecto, etc. etc.Todo esto unido, tecnología compleja y cambiante
y perfil de programador poco atractivo hace que los profesionales
que se ocupan de llevar a cabo los desarrollos informáticos, en
muchas ocasiones, no tengan los conocimientos necesarios. En gran
parte de las ocasiones, estos conocimientos se adquieren a trancas
y barrancas durante el desarrollo del proyecto. Esto influye, y
mucho, en que se disparen los tiempos invertidos en el mismo. En
conclusión, tenemos dos opciones, o reducimos la complejidad de la tecnología o mejoramos la cualificación de los profesionales que tienen que usarla. Me temo
que los tiros van por la primera.

Comparte esta entrada…

Share