Vamos a desarrollar una aplicación web Java (microservicios de frontend + backend) utilizando varios equipos de desarrollo de Scrum. Un equipo es responsable de los módulos del producto principal (microservicios). Algunos otros equipos son responsables de algunos otros módulos (microservicios). Y otro equipo más es responsable del desarrollo de la interfaz.
Todo el diseño y las especificaciones se mantienen en Confluence.
¿Es buena idea crear un único proyecto en Jira y configurarlo para que cada equipo vea solo sus tareas? ¿O es más conveniente crear diferentes proyectos en Jira para cada equipo?
¿Cuáles son los pros y los contras de cada enfoque?
I've found that Jira projects best equate to products. This enables better use of the functionality around Releases, Components, and test case management (if you integrate that with your Jira instance through a plugin).
In your case, you need to decide if your web application is a product or if the different microservices are each a product. I prefer to have the customer-facing entity be the product, regardless of its architecture, but I can see advantages to both. This depends more on how you want to track and control revisions to the system - I personally favor versioning the system as a whole, so I would want to uprev the system every time any microservice changed and would want to use Jira to track those system level versions.
Con el enfoque de un solo proyecto, puede crear tableros separados para cada equipo y aprovechar la cartera de productos general de una manera que admita marcos escalables como LeSS y Nexus y aproveche algunas de las funciones integradas de Jira.
Mantendría todo en el mismo proyecto ya que está trabajando en una sola aplicación web. Puede crear varios tableros en Jira (uno para el equipo de alcance) y administrar la carga de trabajo de cada equipo a través de estos tableros. Habla con tu administrador de Jira para diseñar el proyecto.
La arquitectura del producto suena como si estuviera en capas (front-end, microservicios del producto, etc.). Parece que hay múltiples dependencias entre los equipos. Además del Front-end (para el que supongo que está utilizando historias de usuario con criterios de aceptación), ¿cómo se manejan los requisitos para los microservicios del producto?
Tal vez podría pensar en reorganizar los equipos para que tengan aportes/habilidades/experiencia de todas las capas de productos. Usando la analogía del pastel en capas, en lugar de tener equipos separados que se ocupen de cada capa del pastel, cada equipo se ocupa de una porción del pastel. Eso reduce las dependencias entre equipos. Solo asegúrese de que haya algún tipo de guía arquitectónica para que cada equipo maneje las capas de la misma manera. Cualquier divergencia entre los equipos en la forma en que abordan las capas puede definirse como deuda técnica y tratarse mediante la refactorización en una serie de sprints de endurecimiento.
ventajas:
Desventajas:
ventajas:
Desventajas:
Chris Bretini
Baracus