Pregunta

Tenemos dos equipos distintos, cada uno ágiles de trabajo sobre separadas, pero relacionadas, aplicaciones.
Cada equipo tiene, hasta ahora, ha sido capaz de trabajar de manera independiente (bases de código distinto, tiendas de persistencia, sprints, retrasos, etc.). Recientemente, la gestión de productos decidió que estas aplicaciones serán aún más estrechamente integrados. En una nota, el tamaño de cada equipo (compuesto por QA, Devs, BAS) será cada vez mayor en los próximos 6-12 meses.

La dirección ha decidido mantener el proceso ágil en gran parte intacto, ya que ha funcionado bien (dos equipos que trabajan de forma independiente tanto como sea posible), pero han planteado la idea de una capa de servicio basado en contratos como medio de integración de las aplicaciones.

En cada sprint, se identificará cualquier historia que requiere la integración con la otra aplicación. En ese momento, un adicional de "integración" historia será añadido a la cartera de otros equipos. Ese equipo será entonces la tarea de cumplir el contrato. Mientras tanto, el otro equipo puede continuar con su trabajo original historia, la sustitución de un servicio de maqueta / falso hasta que el otro equipo produce un servicio de trabajo.

Desde ágil predica una filosofía KISS, varias personas de los equipos han tenido problema con la "complejidad" de este enfoque. Ellos abogan continuó utilizado para repartir procedimiento almacenado como una metodología de integración más delgado / más simple que "ha funcionado bien en el pasado".

Yo prefiero programación basada contrato para todo tipo de razones, pero la razón principal es su capacidad para proporcionar visibilidad en tiempo de compilación en el comportamiento se espera que su aplicación para proporcionar. Usted también consigue límites claros en torno a quién es dueño de qué código, y cuyo código es probable que se rompa si se rompe su contrato. Los procedimientos almacenados hacer nada de eso.

Como ya hemos cosechado muchos beneficios de ágil, me gustaría pensar que ya hay una forma "ágil con niños" para hacer frente a este tipo de integración de aplicaciones / sincronización. Cómo crear una la prueba de olor ágil basada en SOA estrato se encuentran contrato? ¿Hay una tercera opción no he considerado?

¿Fue útil?

Solución

Muy buena pregunta. En la cuerda floja diseño es siempre un asunto difícil. Creo que mantener las aplicaciones tan imprecisa como sea posible es definitivamente el camino a seguir.

Lo más sencillo que podría posible el trabajo es un gran acercamiento, pero después de esto a un extremo dogmática sin tener en cuenta los principios sólidos y diseño general bueno va a dar dos aplicaciones que están estrechamente acopladas y probablemente llenas de deuda técnica que traerá el equipo a un punto muerto en algún momento en el futuro.

El desacoplamiento y la adición de la abstracción en ahora parece que lo más sensato, siempre y cuando no va a añadir un montón de "marco" adicional que aún no se necesita. El truco está en asegurarse de que tiene un diseño lo suficientemente bueno que permitiría que el marco para crecer, si es necesario, sin necesidad de construir una gran cantidad de cosas innecesarias en este momento -. Lo que necesita hacer lo suficiente para desacoplar las aplicaciones

Otros consejos

No creo que mantener intacta proceso actual es buena idea. La cooperación y la comunicación entre los equipos tiene que aumentar de lo contrario tendrá un impacto negativo en ambos equipos. Debe seguir práctica similar a Scrum de Scrum.

Editar Scrum de Scrum:. No tengo experiencia con el proyecto manejado por más de un equipo de scrum pero a causa de muy buena experiencia con un scrum diario creen que Scurm de scrum funciona y aumento de la productividad en todos los equipos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top