← Volver al blog

Tres repositorios, un objetivo con fecha: iniciativas y productos en un caso real

Un equipo con la API, la web y la app en repositorios distintos organiza un objetivo que los cruza a los tres. Cómo se configuran los proyectos en Hilbana y qué pasa con cada tarea, desde el producto, desde la iniciativa y desde los agentes.

Equipo HilbanaProducto

Tutorial · Proyectos · Agentes

Tres repositorios, un objetivo con fecha: iniciativas y productos en un caso real

Hay una pregunta que tarde o temprano se hace cualquier equipo con más de un repositorio: ¿dónde creo esta tarea? Si la creas en el proyecto de la API, quien sigue el objetivo no la ve. Si la creas en el proyecto del objetivo, quien mantiene la API no la tiene en su tablero. Y si toca los dos, la creas dos veces y rezas para que nadie cierre una sin la otra.

Para eso hemos añadido a Hilbana los tipos de proyecto: iniciativas y productos. Este artículo lo cuenta con un caso completo, de la configuración al día a día, con pantallazos de cada paso y un vídeo corto en los momentos clave.

El caso: un equipo, tres repositorios

Acme hace software de reservas para clínicas. Son pocos: Lucía lleva el producto, hay dos agentes de IA trabajando sobre el código y la web la mantiene un estudio externo. El código vive en tres repositorios, cada uno con su ritmo:

Cada repositorio tiene su trabajo de siempre: actualizar dependencias, un pie de página que se descoloca en Safari, el modo oscuro de la app. Eso no se acaba nunca.

Este trimestre, además, hay un objetivo con fecha: Reservas online, que los pacientes reserven y paguen la cita desde la web y la app sin llamar al centro. Tiene dos fases y toca los tres repositorios. Y otro más pequeño, Recordatorios: avisos antes de la cita para que la gente no falte.

Lo que fallaba

Con un proyecto por repositorio, nadie podía decir cuánto le faltaba a Reservas online: sus tareas estaban repartidas entre tres tableros. Con un proyecto «Reservas online», la API no veía en su tablero el endpoint de pagos que tenía que hacer, y su versión v2.3 no lo contaba. Las etiquetas lo arreglaban a medias, hasta que alguien olvidaba ponerlas.

Y había dos problemas nuevos. El agente que trabaja en la web cogía el formulario de pago antes de que existiera el endpoint del que depende. Y para que el estudio de la web viera sus tareas, había que darle acceso a todo el objetivo, incluidas las tareas de la API y de la app.

La idea: el trabajo vive en la iniciativa y se entrega al producto

Hilbana distingue dos tipos de proyecto:

Cada tarea vive en la iniciativa, que es donde se decide qué hay que hacer, y se entrega al producto donde se implementa. Desde la iniciativa se sigue el objetivo. Desde el producto, lo que hay que programar. La tarea es una sola y conserva su identificador, así que la rama y el PR se enlazan igual que siempre.

Si tu equipo trabaja con un solo repositorio, no tienes que hacer nada: un proyecto sin tipo funciona como hasta ahora.

1. Pon el tipo a cada proyecto

Con clic derecho sobre el proyecto en la barra lateral, el menú tiene Tipo de proyecto: Iniciativa o Producto.

Menú del proyecto con el tipo de proyecto: Iniciativa o Producto

Antes de aplicarlo, Hilbana te avisa de que el tipo es definitivo: no se puede cambiar ni quitar. Es así porque de él dependen las entregas; un producto que dejara de serlo dejaría sin sitio las tareas que le han entregado. Antes de elegir, piensa si ese proyecto es un objetivo que terminará o un repositorio que seguirá ahí.

Aviso antes de convertir un proyecto en producto: el tipo es definitivo

Acme marca la API, la web y la app como productos, y Reservas online y Recordatorios como iniciativas. En la barra lateral, cada iniciativa lleva una diana y cada producto, una caja.

Poner el tipo a tres proyectos, en 46 segundos.

2. Declara el repositorio de cada producto

En la ficha de cada producto, la fila Repos dice qué repositorios de GitHub o Bitbucket le pertenecen. La API declara acme/api, la web acme/web y la app acme/app. Un repositorio solo puede estar en un producto. Más abajo verás para qué sirve.

Ficha del producto API de reservas: tipo Producto bloqueado, repositorio acme/api y sus versiones v2.3 y v2.4

Fíjate en los milestones de la API: v2.3 va por 2 de 4 tareas. Dos de ellas no se crearon en la API: le llegaron de Reservas online.

3. Entrega cada tarea a su producto

En una tarea de una iniciativa aparece el campo Producto, que se elige en dos pasos. Primero, el producto donde se implementa:

Selector de producto en la ficha de la tarea: los tres productos del workspace

Después, si ese producto tiene milestones, en cuál entra. Son los del producto, no los de la iniciativa:

Segundo paso: el milestone de la API de reservas, v2.3 o v2.4

El campo muestra los dos juntos. La tarea sigue en su fase de la iniciativa (Fase 2) y, a la vez, en la versión del producto (v2.4). Cuenta en los dos milestones.

El campo Producto con la API de reservas y la v2.4, junto al milestone Fase 2 de la iniciativa

Si la tarea ya sabes dónde va al crearla, el formulario rápido del listado de la iniciativa tiene su propio selector de producto.

Entregar una tarea a la API y verla en su tablero.

4. Si toca dos repositorios, pártela

«Cancelar una reserva desde el correo» toca la API (el enlace con su token) y la web (la página de cancelación). Una tarea se entrega a un solo producto, así que esta se parte: el botón Partir por repositorio de su ficha pregunta a qué productos afecta.

Diálogo Partir por repositorio con la web pública y la API de reservas marcadas

Crea una sub-tarea por producto, ya entregada al suyo, bajo la tarea original. La original queda como paraguas en la iniciativa; cada parte la programa quien tiene ese repositorio.

Las dos sub-tareas creadas: una para la web pública y otra para la API de reservas

Una sub-tarea por repositorio, en un clic.

5. El producto ve lo suyo y lo que le llega

En el tablero de la API conviven sus tareas de mantenimiento y las que le entregan las iniciativas. Estas llevan la marca de origen, «desde Reservas online» o «desde Recordatorios», y conservan su identificador (RES-23, REC-32).

Tablero de la API de reservas con tareas propias y entregadas, marcadas con su iniciativa de origen

El filtro Todas / Propias / Entregadas separa una cosa de la otra. Con «Entregadas», la API ve de un vistazo todo lo que le piden las iniciativas:

Listado de la API filtrado por Entregadas: solo las tareas que llegan de las iniciativas

Y la versión del producto cuenta las dos cosas. La v2.3 de la API incluye la actualización de dependencias (propia) y el endpoint de pagos (de Reservas online). El progreso, el consumo de tokens y el resumen con IA de la versión salen de todas.

Milestone v2.3 de la API: tareas propias y entregadas, con su marca de origen

6. Dependencias entre repositorios, también para los agentes

El formulario de pago (web) necesita el endpoint de pagos (API). En la iniciativa se relacionan con bloquea: la tarea de la web queda «Bloqueada por RES-23».

Tarea Formulario de pago, entregada a la web, bloqueada por RES-23 Endpoint de pagos

Hasta aquí, nada nuevo para una persona. La diferencia está en los agentes. El endpoint lo tiene entre manos el agente de la API:

Endpoint de pagos en curso por el Agente API

El agente de la web pide trabajo de su producto por el MCP y la cola no le da el formulario, aunque esté marcado como listo para agente. Si lo pide por su nombre, Hilbana se lo niega y le dice por qué:

next_ready_issue { "projectId": "<Web pública>" }
→ null

claim_issue { "id": "RES-24" }
→ 409: la issue está bloqueada por RES-23 (In Progress): no se puede
  reclamar hasta que estén terminadas o canceladas

En cuanto el agente de la API pasa el endpoint a Done, el formulario entra en la cola de la web. Nadie tiene que avisar a nadie.

El agente de la web espera a que la API esté lista.

7. El estudio externo solo ve la web

Marcos trabaja en un estudio de diseño que mantiene la web. En Hilbana es invitado con acceso a un solo proyecto: Web pública. En su barra lateral no hay nada más.

Aun así, en el listado de la web ve las tareas que le ha entregado Reservas online:

Vista del invitado: el listado de la web pública con sus tareas y las entregadas desde Reservas online

Ve esas tareas, no la iniciativa entera. En la ficha, Reservas online aparece por su nombre, sin enlace, y el milestone de la iniciativa no se le muestra. Puede cambiar el estado, comentar e imputar horas, porque es quien la implementa, pero no reescribir la tarea. Eso es cosa de quien lleva la iniciativa.

Ficha de la tarea vista por el invitado: propiedades de solo lectura y la iniciativa sin enlace

8. Que el PR entregue la tarea solo

«Correo de confirmación de la reserva» se creó en la iniciativa sin decidir dónde se haría. Lucía no tiene que volver a ella: en cuanto alguien abre un PR desde acme/api con la rama de la tarea, Hilbana ve que ese repositorio es de la API y se la entrega a la API, la pasa a en curso y adjunta el PR.

La tarea con el producto API de reservas puesto solo y el PR #214 abierto

Si la tarea ya iba a otro producto, no se cambia: queda un comentario para que alguien lo revise.

El PR del repositorio entrega la tarea a su producto.

9. Y la iniciativa, de un vistazo

Volvamos a la pregunta del principio: ¿cuánto le falta a Reservas online? Ahora tiene respuesta en un solo sitio. El resumen de la iniciativa suma todas sus tareas, se implementen donde se implementen. Fase 1 va por 1 de 6, y con 70 días por delante y un 10 % hecho, Hilbana la marca en riesgo.

Resumen de la iniciativa Reservas online: progreso, riesgo de fechas y las fases 1 y 2

El listado de la iniciativa enseña el objetivo entero: las tareas de la API, de la web y de la app, y también las que no son de código, como la política de cancelación. La columna Producto dice a qué repositorio va cada una y en qué versión entra; las que aún no lo tienen decidido se ven enseguida. En el tablero de la iniciativa, cada tarjeta lleva la misma marca.

Listado de la iniciativa Reservas online: cada tarea con su producto y su versión en la columna Producto

En resumen

Todos los detalles, incluidos los permisos y el MCP, están en la documentación de iniciativas y productos.

Crea tu espacio gratis en app.hilbana.com/signup y prueba a partir tu próximo objetivo por repositorios.

← Volver al blog