Flujo de Refinamiento de Tickets - Product Owner
Objetivo
Asegurar que cada ticket llegue a Development con una definición completa, entendible, accionable y profunda, minimizando ambigüedades y retrabajos.
🎯 Flujo Completo de Refinamiento
📅 Timing Semanal Sugerido
| Día | Actividad | Duración | Participantes |
|---|---|---|---|
| Lunes AM | Pre-trabajo | 30-45 min | Gonza solo |
| Lunes PM | Product Alignment | 60 min | Nico + Ce + (Lara si es customer-facing) |
| Martes AM | Check con Lara | 15 min o async | Gonza + Lara |
| Martes PM | Technical Refinement | 45 min | Gonza + Nacho |
| Miércoles AM | Finalización + Check DoR | 30 min | Gonza solo |
| Miércoles PM | Backlog Refinement | 60-90 min | Equipo completo |
📋 Fase 1: Pre-trabajo (Gonza - Solo)
Objetivo
Llegar preparado a Product Alignment con contexto completo y preguntas específicas.
Actividades
1. Research de Contexto
- Revisar feedback de clientes relacionado en Slack/Linear
- Buscar issues relacionados en el backlog
- Revisar métricas relevantes (si aplica)
- Identificar dependencias con otros proyectos del roadmap
2. Draft Inicial del Ticket
Crear el ticket en Linear con:
- Título descriptivo
- Descripción básica del problema/oportunidad
- User story en borrador (As a... I want... So that...)
- Casos de uso identificados (mínimo 2-3)
- Links a referencias (otros tickets, Slack threads, docs)
3. Preparar Preguntas
Documentar en el ticket o en notas:
- Para Nico: Validaciones de negocio, prioridad, scope
- Para Ce: Necesidades de diseño, referencias visuales
- Para Lara: Pain points conocidos, edge cases frecuentes
Template: Pre-trabajo Notes
## Pre-trabajo - [Título del Ticket]
### Contexto Investigado
- Origen: [cliente X solicitó / bug reportado / métrica Y baja]
- Referencias: [links]
- Impacto estimado: [usuarios afectados / revenue / etc]
### Draft User Story
**Como** [tipo de usuario]
**Quiero** [acción/funcionalidad]
**Para** [beneficio/objetivo]
### Casos de Uso Identificados
1. [Caso feliz]
2. [Edge case A]
3. [Error scenario B]
### Preguntas para Alignment
**Nico:**
- ¿Scope inicial vs futuro?
- ¿Qué NO entra en este ticket?
**Ce:**
- ¿Tenemos referencia visual?
- ¿Impacta design system?
**Lara:**
- ¿Cuántos tickets de soporte relacionados?
- ¿Edge cases conocidos?
🎨 Fase 2: Product Alignment Meeting
Participantes
- Obligatorio: Gonza + Nico + Ce
- Opcional: Lara (si es feature customer-facing o con historial de issues)
Duración
60 minutos
Agenda
Primera Parte (20 min): Contexto y Problema
-
Gonza presenta (5 min):
- Contexto investigado
- Draft de user story
- Casos de uso identificados
-
Nico valida (10 min):
- Alcance del proyecto
- Prioridad vs roadmap
- Qué NO entra (out of scope)
- Métricas de éxito
-
Ce aporta (5 min):
- Necesidades de diseño
- Impacto en design system
- Referencias visuales existentes
Segunda Parte (30 min): Definición
-
Refinamiento colaborativo:
- User stories finales
- Flujos de usuario (happy path + edge cases)
- Criterios de aceptación
- UX considerations
-
Lara aporta (si está presente):
- Pain points recurrentes
- Edge cases de soporte
- Impacto esperado en tickets
Tercera Parte (10 min): Acciones
- Next steps claros:
- ¿Ce necesita crear mockups? ¿Cuándo?
- ¿Lara necesita validar algo adicional?
- ¿Documentación de producto necesaria?
- ¿Cuándo va a Technical Refinement?
Output Esperado
- User stories finalizadas
- Criterios de aceptación claros
- Scope bien definido (in/out)
- Métricas de éxito acordadas
- Mockups solicitados (si aplica)
💬 Fase 3: Check con Lara (Support)
¿Cuándo incluir esta fase?
SÍ incluir si:
- Feature es customer-facing
- Hay historial de issues de soporte relacionados
- Cambio en flujo de usuario existente
- Potencial impacto en carga de soporte
NO incluir si:
- Trabajo puramente técnico/interno
- Refactor sin cambio de UX
- Lara ya participó en Product Alignment
Formato
Opción A: Async (preferido para validaciones simples)
Slack thread con estructura:
Hey @Lara, necesito tu input en este ticket: [link]
**Contexto:** [1-2 líneas]
**Preguntas específicas:**
1. ¿Cuántos tickets de soporte tenemos relacionados a [X]?
2. ¿Qué edge cases ves con frecuencia en [Y]?
3. ¿Este cambio reducirá tickets de tipo [Z]?
**Deadline:** Necesito respuesta antes de [día] para refinar con Nacho.
Opción B: Sync (15 min para casos complejos)
Agenda:
- Contexto rápido (3 min)
- Pain points conocidos (5 min)
- Edge cases frecuentes (5 min)
- Impacto en soporte (2 min)
Documentar en el Ticket
Agregar sección en Linear:
## Insights de Support
### Pain Points Conocidos
- [Problema frecuente 1]
- [Problema frecuente 2]
### Edge Cases Reportados
- [Caso A: descripción + frecuencia]
- [Caso B: descripción + frecuencia]
### Impacto Esperado
- **Tickets reducidos:** [tipo X, estimado -N%]
- **Nuevos tipos de tickets:** [tipo Y probable]
- **Documentación necesaria:** [Help Center article sobre Z]
**Validado con:** Lara - [fecha]
🔧 Fase 4: Technical Refinement (Nacho)
Participantes
- Gonza + Nacho
Duración
45 minutos
Pre-requisitos
- Product Alignment completado
- Mockups disponibles (si aplicaba)
- Support input obtenido (si aplicaba)
Agenda
Parte 1: Contexto (10 min)
-
Gonza presenta:
- User stories finales
- Criterios de aceptación
- Mockups (si hay)
- Insights de Support
-
Nacho lee y procesa:
- Revisión silenciosa
- Preguntas de clarificación
Parte 2: Approach Técnico (25 min)
-
Nacho propone:
- Approach técnico general
- Componentes/archivos involucrados
- Dependencias técnicas
- Consideraciones de:
- Performance
- Security
- Scalability
- Maintainability
-
Identificar:
- Riesgos técnicos
- Alternativas (pros/cons)
- Trabajo preparatorio necesario
- Tests strategy
-
Decisión sobre complejidad:
- ¿Necesita Spike ticket de investigación?
- ¿Se puede estimar o hay mucha incertidumbre?
- ¿Hay que dividir en subtasks?
Parte 3: Validación (10 min)
-
Gonza valida:
- Approach alineado con expectativas de negocio
- Scope técnico vs scope de producto
- Timeline realista
-
Acuerdos finales:
- Approach aprobado
- Riesgos aceptados
- Next steps claros
Output Esperado
Documentar en el ticket:
## Technical Context
### Approach Propuesto
[Descripción del approach técnico en 2-3 párrafos]
### Componentes Involucrados
- `path/to/component.php` - [qué se modifica]
- `path/to/another.ts` - [qué se crea]
- Database: `table_name` - [qué columnas se agregan]
### Dependencias Técnicas
- [ ] [Dependencia 1: descripción]
- [ ] [Dependencia 2: descripción]
### Consideraciones Especiales
**Performance:** [consideraciones]
**Security:** [consideraciones]
**Scalability:** [consideraciones]
### Riesgos Técnicos
1. **[Riesgo A]**
- Probabilidad: Alta/Media/Baja
- Impacto: Alto/Medio/Bajo
- Mitigación: [estrategia]
### Alternativas Consideradas
**Opción B:** [descripción]
- ❌ Descartada porque: [razón]
**Opción C:** [descripción]
- ❌ Descartada porque: [razón]
### Test Strategy
- Unit tests: [qué cubrir]
- Integration tests: [qué cubrir]
- Manual QA: [escenarios críticos]
### Estimación de Complejidad
**Tamaño:** S / M / L / XL
**Justificación:** [razón de la estimación]
**Validado con:** Nacho - [fecha]
¿Cuándo crear un Spike Ticket?
Si Nacho identifica alta incertidumbre técnica:
# Spike: Investigar [Tema X]
**Time-box:** 2-4 horas max
**Owner:** [Developer asignado]
**Objetivo:**
Definir approach técnico para [feature Y]
**Preguntas a Responder:**
1. [Pregunta específica 1]
2. [Pregunta específica 2]
**Output Esperado:**
- Documento con recomendación técnica
- Pros/cons de 2-3 alternativas
- Estimación más precisa del trabajo real
- POC código (opcional)
**Criterio de Éxito:**
Poder estimar el ticket real con confianza después del spike.
✍️ Fase 5: Finalización y Definition of Ready Check
Participantes
- Gonza solo
Duración
30 minutos
Actividades
1. Consolidar Toda la Información
Asegurar que el ticket en Linear tiene:
- Toda la info de Product Alignment
- Insights de Support
- Technical Context de Nacho
- Mockups embebidos o linkeados
- Links a referencias y docs
2. Validar contra Definition of Ready
Usar el checklist completo (ver sección siguiente).
3. Escribir User Flows en Gherkin (si es complejo)
Para features con lógica de negocio importante:
Feature: [Nombre del Feature]
Scenario: [Happy Path]
Given [contexto inicial]
When [acción del usuario]
Then [resultado esperado]
And [validación adicional]
Scenario: [Edge Case A]
Given [contexto específico]
When [acción que causa el edge case]
Then [comportamiento esperado]
Scenario: [Error Scenario B]
Given [precondiciones]
When [acción que causa error]
Then [manejo de error esperado]
4. Crear Subtasks (si aplica)
Para tickets grandes (L/XL), dividir en subtasks accionables:
## Subtasks
### Backend
- [ ] [Subtask 1: descripción específica]
- [ ] [Subtask 2: descripción específica]
### Frontend
- [ ] [Subtask 3: descripción específica]
- [ ] [Subtask 4: descripción específica]
### Testing
- [ ] [Subtask 5: tests específicos]
### Documentation
- [ ] [Subtask 6: docs específicas]
5. Preparar para Backlog Refinement
- Ticket cumple Definition of Ready
- Agregar al proyecto de Backlog Refinement del miércoles
- Notificar al equipo (Slack o Linear)
- Preparar notas de presentación (2 min pitch)
📊 Definition of Ready (DoR) - Checklist
✅ Sección: Producto
-
Título claro y descriptivo
- Formato:
[Tipo]: Descripción accionable - Ejemplo:
Bug: Mail de soporte llega en inglésoFeature: Automatically open checkout para suscripciones
- Formato:
-
User Stories completas
- Formato:
As a [role], I want [action], so that [benefit] - Mínimo 1 user story, idealmente 2-3 para diferentes roles
- Formato:
-
Descripción del problema/oportunidad
- Por qué es importante resolver esto ahora
- Contexto de negocio
- Links a feedback de usuarios/clientes
-
Criterios de Aceptación específicos
- Mínimo 3-5 criterios
- Testables y no ambiguos
- Formato:
- [ ] Cuando X, entonces Y
-
Casos de uso documentados
- Happy path
- Mínimo 2 edge cases
- Mínimo 1 error scenario
-
Mockups/wireframes (si aplica)
- Embebidos en el ticket o link a Figma
- Desktop y Mobile si es responsive
- Estados: default, hover, active, error, loading
-
Scope definido (In/Out)
- Qué SÍ incluye este ticket
- Qué NO incluye (para futuras iteraciones)
-
Métricas de éxito
- Cómo mediremos si funcionó
- Ejemplo: "Reducción de 30% en tickets de soporte tipo X"
✅ Sección: Técnico
-
Approach técnico validado con Nacho
- Descripción del approach en 2-3 párrafos
- Componentes/archivos a modificar identificados
-
Dependencias identificadas
- Dependencias de otros tickets
- Dependencias técnicas (APIs, servicios, etc)
- Trabajo preparatorio necesario
-
Riesgos técnicos conocidos
- Mínimo 1 riesgo identificado (o "Ninguno")
- Para cada riesgo: probabilidad, impacto, mitigación
-
Consideraciones especiales documentadas
- Performance
- Security
- Scalability
- Accessibility (si es UI)
-
Test strategy definida
- Qué tests unitarios se necesitan
- Qué tests de integración
- Escenarios para QA manual
-
Estimación de complejidad
- Tamaño: S / M / L / XL
- Justificación del tamaño
✅ Sección: Support/UX
-
Pain points considerados
- Input de Lara obtenido (si aplica)
- Pain points frecuentes documentados
-
Edge cases identificados
- De experiencia de soporte
- De análisis de producto
-
Impacto en soporte evaluado
- ¿Reducirá tickets? ¿Cuáles?
- ¿Creará nuevos tipos de tickets?
- ¿Necesita documentación en Help Center?
✅ Sección: Contexto
-
Links a issues relacionados
- Issues que bloquean este
- Issues que este bloqueará
- Issues similares resueltos antes
-
Referencias a documentación
- Docs técnicas relevantes
- RFCs o ADRs relacionados
- Documentación de APIs/servicios
-
Tags apropiados
- Labels: Bug, Feature, Improvement, etc
- Project asignado
- Team asignado
-
Prioridad clara
- 0 = No priority
- 1 = Urgent
- 2 = High
- 3 = Normal
- 4 = Low
✅ Final Check
- El ticket es entendible por alguien que no estuvo en las reuniones
- El ticket es accionable - un dev puede empezar a trabajar
- El ticket es completo - no faltan definiciones críticas
- El ticket es profundo - considera edge cases y riesgos
👥 Fase 6: Backlog Refinement (Equipo Completo)
Participantes
- Equipo completo de Development
- Gonza (facilita)
- Nico (opcional, si hay dudas de negocio)
- Ce (opcional, si hay dudas de diseño)
Duración
60-90 minutos
Agenda
Por cada ticket (10-15 min):
-
Presentación (Gonza - 3 min)
- Contexto en 1 minuto
- User story principal
- Demo de mockups (si hay)
- Approach técnico resumido
-
Preguntas y Clarificaciones (5-8 min)
- Equipo hace preguntas
- Gonza/Nacho responden
- Se agregan clarificaciones al ticket en vivo
-
Validación Técnica (2-3 min)
- ¿Alguien ve riesgos no identificados?
- ¿Dependencias faltantes?
- ¿Approach tiene sentido para todos?
-
Estimación (2-3 min) (si usan story points)
- Planning poker o similar
- Consenso de complejidad
- Discusión si hay discrepancias grandes
-
Decisión Final (1 min)
- ✅ Ready for Development
- 🔄 Needs more refinement (qué falta específicamente)
- ❌ Rejected/On hold (por qué)
Facilitación - Tips para Gonza
Antes de la reunión:
- Tickets ordenados por prioridad
- Máximo 6-8 tickets por sesión
- Pre-lectura compartida (enviar tickets 24h antes)
Durante la reunión:
- ⏱️ Timeboxear estrictamente cada ticket
- 🎯 Mantener foco en clarificaciones, no en diseñar soluciones
- 📝 Tomar notas de cambios en vivo en Linear
- 🚦 Parking lot para temas profundos (seguir offline)
Después de la reunión:
- Actualizar tickets con decisiones tomadas
- Mover tickets aprobados a "Ready for Development"
- Agendar follow-ups para tickets que necesitan más trabajo
- Comunicar decisiones en Slack
Red Flags - Cuándo pausar
⚠️ PAUSAR refinamiento del ticket si:
- Surgen más de 5 preguntas sin respuesta clara
- Equipo identifica un riesgo técnico no considerado
- Approach propuesto tiene desacuerdo significativo
- Faltan mockups críticos para entender el alcance
- Dependencias no están resueltas
Acción: Marcar ticket como "Needs more refinement" y agendar seguimiento.
📈 Métricas de Éxito del Proceso
Track Estas Métricas Mensualmente
1. Calidad de Refinamiento
✅ % de tickets que pasan Backlog Refinement sin cambios mayores
Target: >80%
Cómo medir:
- Tickets aprobados directamente / Total tickets presentados
2. Eficiencia
⏱️ Tiempo promedio de refinamiento por ticket
Target: <2 horas total (todas las fases)
Cómo medir:
- Sumar tiempo de todas las reuniones + pre-trabajo + finalización
3. Predictibilidad
🔄 % de tickets que regresan a refinement post-Development
Target: <10%
Cómo medir:
- Tickets que devs dicen "esto no está claro" / Total en desarrollo
4. Claridad Percibida
💡 Score de claridad por developers
Target: >4/5
Cómo medir:
- Survey trimestral: "Del 1-5, ¿qué tan claros están los tickets?"
5. Calidad en Producción
🐛 Ratio de bugs encontrados (QA vs Production)
Target: >10:1 (más bugs en QA = mejor refinement)
Cómo medir:
- Bugs encontrados en QA / Bugs encontrados en Production
Dashboard Mensual Sugerido
## Refinement Metrics - [Mes]
### Tickets Procesados
- Total presentados: [N]
- Aprobados directamente: [N] ([%])
- Necesitaron más trabajo: [N] ([%])
### Eficiencia
- Tiempo promedio por ticket: [X] horas
- Tickets refinados por semana: [N]
### Calidad
- Tickets devueltos por devs: [N] ([%])
- Bugs QA vs Production ratio: [X:1]
### Feedback del Equipo
- Claridad promedio: [X]/5
- Comentarios: [resumen]
### Acciones de Mejora
- [ ] [Acción 1 basada en métricas]
- [ ] [Acción 2 basada en feedback]
🎯 Templates de Tickets por Tipo
Template 1: New Feature
# [Feature Name]
## 🎯 Objetivo
[1-2 líneas sobre el objetivo de negocio]
## 📊 Contexto y Justificación
### Por qué ahora
- [Problema que resuelve]
- [Oportunidad que aprovecha]
- [Impacto esperado en métrica X]
### Referencias
- Feedback de clientes: [link a Slack/Linear]
- Issues relacionados: [#123, #456]
- Documentación: [link]
## 👥 User Stories
### Como [Rol de usuario]
**Quiero** [acción/funcionalidad]
**Para** [beneficio/objetivo]
**Scenarios:**
- Happy path: [descripción]
- Edge case A: [descripción]
- Error scenario B: [descripción]
## 📐 Diseño
### Mockups
[Embeber imágenes o link a Figma]
### User Flows
```gherkin
Feature: [Feature Name]
Scenario: [Happy Path]
Given [contexto]
When [acción]
Then [resultado]
```
✅ Criterios de Aceptación
Funcionalidad
- [Criterio específico 1]
- [Criterio específico 2]
- [Criterio específico 3]
User Experience
- [Criterio UX 1]
- [Criterio UX 2]
Technical
- [Criterio técnico 1]
- [Criterio técnico 2]
🔧 Technical Context
Approach Propuesto
[Descripción del approach en 2-3 párrafos]
Componentes Involucrados
path/to/file.php- [qué se modifica]path/to/file.ts- [qué se crea]
Dependencias
- [Dependencia 1]
- [Dependencia 2]
Consideraciones
Performance: [consideraciones] Security: [consideraciones] Accessibility: [consideraciones]
Riesgos Técnicos
- [Riesgo] - Probabilidad: [Alta/Media/Baja], Impacto: [Alto/Medio/Bajo]
- Mitigación: [estrategia]