Veo en una presentación de Gartner (no recuerdo donde puse el link) un resumen de las causas de fracaso más comunes en la adopción de SOA. Sólo son 5 y las listo a continuación con mis comentarios:

  1. Se piensa que SOA es la solución a los problemas de interoperabilidad
    Con frecuencia se piensa que SOA es una tecnología y no una forma de pensar nuestras aplicaciones. Mucha gente la quiere adoptar porque está de moda sin profundizar lo suficiente en lo que significa.
  2. Nadie quiere construir los servicios
    Construir los servicios implica gastar el presupuesto de un departamento para dar servicio al resto de departamentos. Además lleva aparejado un conste de mantenimiento que no todo el mundo está dispuesto a afrontar. Aunque no caigamos en eso en un principio, lo cierto es que convertirse en un “constructor” y propietario de un servicio no es muy “popular”
  3. Nuestros servicios no se reutilizan
    Con demasiada frecuencia, se pierde de vista que los servicios deben tener sentido para el negocio y a aportar valor a toda la empresa. Tanto es así, que en ocasiones se hacen unos servicios para proporcionar la información que necesita una pantalla en concreto de una aplicación concreta. Cuando otro desarrollo quiere reutilizar el servicio se da cuenta de que en realidad el servicio no le sirve y hay que hacerlo de nuevo
  4. Los costes son muy altos
    En el periodo de implantación de SOA, que puede ser considerablemente largo, los costes de diseño y desarrollo son más altos que una aplicación “tradicional·.
  5. Los sistemas son muy frágiles
    Al no ser aplicaciones silo departamentales, sino que se usan servicios de terceros, y estos a su vez otros servicios con otro propietario, se produce una gran interdependencia de todos estos servicios. Es posible que si falla un servicio de baja de nivel, tenga un gran impacto en un gran numero de servicios que directa o indirectamente hacen uso de él.

Además  de estas, que definen bastante bien la realidad a mi modo de ver, yo añadiría las siguientes:

  1. La inercia
    La inercia es una fuerza poderosa, y es que a los humanos nos cuesta mucho (muchísimo cambiar nuestra forma de ver las cosas). Hay grupos o departamentos dentro de las organizaciones que siguen una forma de hacer las cosas (de diseñar e implementar aplicaciones) incluso desde hace décadas. No es fácil en absoluto que hagan este cambio cultural de pensar en servicios.
  2. La orientación a servicios es más difícil de entender, de diseñar y de implementar.
    Si estamos acostumbrados, por ejemplo, a realizar aplicaciones con unas pantallas que consolidan los datos en su propia base de datos es difícil pensar en una arquitectura en capas (fronta, lógica de integración, lógica de negocio, lógica de acceso a datos, etc.) con varios perfiles (skills) y herramientas que pueden ser diferentes para cada una de estas capas, etc. etc.
  3. Complejidad de la tecnología
    Los servicios se suelen implementar con web services (aunque no es en absoluto obligatorio) y esta tecnología no es fácil de aprender, desarrollar, desplegar y mantener.
    Además, seguramente necesitaremos gran cantidad de middleware y productos. A los ya “habituales” como servidores web, servidores de aplicaciones, directorio de usuarios (como LDAP), base de datos  relacional podríamos añadir un servidor de procesos, un ESB, un registro de servicios (UDDI) que hay que configurar,  “tunear” y mantener.

¿qué riesgos añadirías a esta lista?

Comparte esta entrada…

Share

Anuncios