Hallándome yo, como muchas veces pensando en SOA ;-), me preguntaba cómo se vería un desarrollo de una solución de negocio orientada a servicios desde el punto de vista de las metodologías ágiles.
Las metodologías ágiles están de moda, y no sólo en pequeñas empresas o en grupos de frikis de la programación. Ya están entrando con fuerza también en las grandes empresas (al menos lo que yo conozco).
¿Y si repasáramos brevemente el manifiesto ágil y le diésemos un enfoque más SOA (muy práctico)? En negrita vemos los principios, seguidos como siempre, por mis comentarios.
- Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor.OK. Totalmente alineado con la idea de proporcionar funcionalidad al cliente en SOA:
software de valor == servicios - Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente.OK. Una de las características clave de SOA es la flexibilidad ante las necesidades del negocio que se concreta con la composición de nuevos servicios (o modificando los anteriores) mediante la combinación de otros.
- Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos brevesOK. Gracias al principio de autonomía de SOA (cajas negras) y al desacoplamiento se puede implementar un proyecto “por partes” e ir entregándolas en periodos breves.
- Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto.Magnífico. Éste es el espíritu de SOA. Negocio y TI deben trabajar juntos y hablar el mismo idioma.
- Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea.Perfecto. ¿Qué mayor confianza que nombrándolos responsables técnicos o funcionales de un servicio que sirve a toda la empresa?
- La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.Ningún problema si es el mismo equipo de desarrollo.Sin embargo, con SOA puede haber muchos equipos en diferentes partes del mundo por lo que es necesario basarse en los contratos de los servicios y tener un registro/repositorio de los mismos.
- El software que funciona es la principal medida del progreso.OK. Y en SOA debe ser más fácil construir nuevo software que funcione ya que realmente lo que debe hacerse es combinar servicios ya existentes.
- Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.Es un hecho que el área de negocio reclama la entrega continuada y cada poco tiempo de software con funcionalidad que aporte valor a la compañía.SOA promueve la creación de equipos mixtos (negocio e IT), que hablan el mismo lenguaje y que definen y construyen servicios que responden realmente a las necesidades de negocio.
- La atención continua a la excelencia técnica enaltece la agilidad.Por un lado, SOA complica la integración y las pruebas (debido a la “paradoja del desacoplamiento”)
Por otra parte, los servicios son cajas negras definidos por su contrato. Más fácil de probar de forma independiente al resto de la funcionalidad. - La simplicidad como arte de maximizar la cantidad de trabajo que no se hace, es esencial.En todos lados y con cualquier metodología, habría que aplicar el principio KISS.
- Las mejores arquitecturas, requisitos y diseños emergen de equipos que se auto-organizan.Al tener los servicios el más bajo acoplamiento posible, los diferentes equipos de desarrollo son muy independientes entre sí.
- En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.
En SOA, esto se podría ver como la reflexión sobre si nuestro servicio aporta valor a la empresa, está bien definido y con sus metadatos accesibles.
08/11/2013 at 17:08
Estoy implementando una metodologia de análisis y planeación de SOA si pudieras enviarme mas información a mi correo, o indicarme mas cosas de metodología ágil te agradecería mucho
08/11/2013 at 18:29
Sobre le metodología SOA, me temo que los libros que hay son un poco «pesados» y no va a lo práctico. Quizás se queden en un plano excesivamente teórico. Échale un vistazo a esto a ver si te puede servir: http://serviceorientation.com/soamethodology/index
No sé si has visto la sección de del blog dedicada a Gobierno
http://pensandoensoa.com/category/6-metodologia-y-gobierno/
Quizás, algún día, cuando tenga tiempo, acabe el libro sobre SOA que empecé… 😉