manifesto agile

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.

  1. 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
  2. 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.
  3. 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.
  4.  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.
  5.  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?
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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í.
  12. 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.

y tú ¿como lo ves? ¿crees que SOA puede ser ágil?
Foto | Flickr
Anuncios