🌊 Flujo de Trabajo y Metodología
En Rial AI seguimos una metodología de desarrollo estructurada que combina las mejores prácticas de la industria con herramientas modernas para garantizar código de calidad y colaboración efectiva.
📋 Protocolo interno de planificación, desarrollo y cierre de tareas
Este protocolo establece un flujo común para planificar, desarrollar, revisar y cerrar tareas, con tiempos de referencia, comunicación oportuna y responsabilidades claras.
Flujo general
Cada tarea debe pasar por estas etapas:
- Asignación y definición inicial.
- Comprensión y resolución de dudas.
- Elaboración y revisión de la propuesta.
- Aprobación de la propuesta y fecha límite.
- Implementación.
- Creación y revisión de la PR.
- Corrección de comentarios.
- Validación final y cierre.
La fecha límite corresponde al cierre completo de la tarea, no solamente a la creación de la PR.
Definición inicial de la tarea
La tarjeta debe incluir, en la medida de lo posible:
- Objetivo.
- Problema que se busca resolver.
- Alcance.
- Resultado esperado.
- Criterios de aceptación.
- Restricciones o información relevante.
- Prioridad, cuando corresponda.
Si los criterios de aceptación no están claros, deben aclararse antes de comenzar la implementación.
Comprensión y planificación
La persona responsable debe:
- Leer y analizar la tarjeta.
- Explicar su comprensión del objetivo.
- Identificar dudas, riesgos y dependencias.
- Proponer subtareas ordenadas.
- Identificar las áreas, archivos o servicios posiblemente involucrados.
- Definir cómo validará la solución.
- Estimar el trabajo.
- Proponer una fecha de cierre.
Las dudas que puedan afectar el alcance, la solución o la estimación deben comunicarse durante la primera parte de la planificación. No se debe utilizar toda la ventana de planificación sin informar oportunamente una duda o bloqueo.
Tiempo de referencia para la primera propuesta
- Tarea baja: entre 60 y 90 minutos.
- Tarea media: entre 2 y 3 horas.
- Tarea alta: hasta 4 horas.
Estos tiempos corresponden a la preparación de la propuesta, no al tiempo de espera por respuestas o comentarios de revisión.
La propuesta debe quedar publicada en la misma tarjeta y debe solicitarse explícitamente su revisión. La implementación comienza solo cuando la propuesta y la fecha han sido aprobadas.
Clasificación de dificultad
La dificultad se determina considerando:
- Alcance.
- Número de capas o componentes involucrados.
- Incertidumbre técnica.
- Dependencias.
- Riesgo de regresiones.
Baja
Cambio acotado, con solución conocida, pocas dependencias y validación simple.
Media
Requiere investigación o afecta más de un componente, pero el resultado esperado sigue siendo claro.
Alta
Involucra varias capas, decisiones técnicas nuevas, dependencias relevantes o un riesgo considerable de regresiones.
La clasificación puede actualizarse si la planificación revela que el alcance o la complejidad son distintos de lo inicialmente previsto. En ese caso, también deben revisarse la estimación y la fecha.
Implementación y seguimiento
La implementación comienza después de aprobar la propuesta y la fecha de cierre.
Durante el desarrollo se debe:
- Trabajar siguiendo las subtareas aprobadas.
- Actualizar el estado de la tarjeta.
- Informar cambios de alcance o riesgos nuevos.
- Comunicar los bloqueos apenas se detecten.
- Mantener visible el avance.
Para tareas bajas, basta con actualizar al terminar, abrir la PR o detectar un bloqueo. Para tareas medias o altas, debe existir al menos una actualización al finalizar cada jornada de trabajo.
Cada actualización debe indicar:
- Qué se completó.
- Qué se realizará después.
- Qué dificultades aparecieron.
- Si se mantiene la fecha comprometida.
Tiempo de implementación
Como referencia inicial:
- Tarea baja: entre 2 y 4 horas.
- Tarea media: entre 1 y 2 jornadas asignadas.
- Tarea alta: entre 3 y 5 jornadas asignadas.
Estos tiempos incluyen implementación, pruebas y preparación de la PR. No incluyen esperas por respuestas, revisiones o dependencias externas previamente comunicadas.
Requisitos antes de abrir una PR
Antes de solicitar revisión, la PR debe:
- Cumplir los criterios de aceptación.
- Tener todos los checks automáticos aprobados.
- Contar con una prueba manual del flujo afectado.
- Haber sido revisada por su propio autor.
- Tener una descripción clara del problema, la solución y la validación realizada.
- Incluir capturas o evidencia cuando corresponda.
- No contener archivos, logs ni cambios innecesarios.
Comentarios de PR
Los comentarios se clasifican según su impacto:
Triviales
Renombrar una función, corregir formato, ajustar un texto o mover una línea sin cambiar el comportamiento.
Referencia: entre 5 y 15 minutos por comentario, o hasta 30 minutos si se agrupan varios. Se debe revisar el diff y ejecutar solo los checks afectados, cuando corresponda.
Menores
Ajustes localizados que no cambian de manera relevante el comportamiento.
Referencia: hasta una hora agrupada, con validaciones específicas del área afectada.
Funcionales
Cambios de lógica, correcciones de errores o ajustes relacionados con los criterios de aceptación.
Requieren una estimación explícita, checks y una prueba manual relacionada.
Estructurales
Cambios de diseño, arquitectura o alcance.
Requieren conversar el enfoque y actualizar la estimación antes de continuar.
Las PR deben mantenerse activas y priorizadas. Los comentarios deben revisarse y responderse oportunamente. Si no es posible atenderlos por otra prioridad, se debe comunicar el motivo y acordar el orden de trabajo.
Ningún comentario debe quedar ignorado. Si existe desacuerdo técnico, debe explicarse y conversarse.
Bloqueos
Los riesgos previsibles deben identificarse durante la planificación.
Los bloqueos nuevos deben comunicarse apenas se detecten, indicando:
- Qué ocurrió.
- Qué se intentó.
- Qué se necesita.
- Cómo afecta la estimación o la fecha.
No se debe esperar hasta el vencimiento para informar un bloqueo ni consumir una parte significativa del tiempo disponible sin comunicarlo.
Cierre de la tarea
La tarea se considera cerrada cuando:
- La implementación está terminada.
- La PR fue revisada.
- Todos los comentarios fueron atendidos.
- Los checks finales pasan.
- La prueba manual está validada.
- La tarjeta está actualizada.
- La solución cuenta con la aprobación correspondiente.
📋 Estructura de Repositorios
Repositorios Principales
- Backend: github.com/Rial-Cenia/rial-backend
- Frontend: github.com/Rial-Cenia/rial-frontend
Ramas Principales
🌳 Estructura de Ramas
production # Código en producción (rial-ai.com)
↑
develop # Código en staging (staging.rial-ai.com)
↑
feature/* # Ramas de desarrollo de funcionalidades
hotfix/* # Correcciones urgentes para producciónDescripción de Ramas
production: Código que está ejecutándose en rial-ai.comdevelop: Código en ambiente de pruebas staging.rial-ai.comfeature/*: Ramas temporales para desarrollar nuevas funcionalidadeshotfix/*: Correcciones urgentes que van directo a producción
🔄 Flujo de Desarrollo
1. 📝 Planificación en Jira
Antes de escribir código, toda tarea debe estar documentada en nuestro tablero de Jira. Trabajamos en sprints — ciclos de una o dos semanas donde se define qué tareas se van a completar.
Estructura en Jira
- Epics: Agrupan funcionalidades grandes o proyectos estratégicos
- Stories / Tasks: Tareas específicas asociadas a un epic
- Sprints: Ciclos de trabajo con tareas planificadas para esa semana o quincena
¿Qué es un KANBAN?
Un KANBAN es un sistema visual para gestionar trabajo. Organiza tareas en columnas que representan diferentes estados:
📋 Esta Semana: Lo que se debe realizar en el sprint actual
🧠 Craneando: Proceso de investigación para ver como realizar la tarea, comprenderla y armar un plan de acción
🔄 Chambeando: Tarea se está realizando
🧪 Testeando: Se está revisando que la tarea funciones de acuerdo a las expectativas o se está creando la PR o haciendo un rebase
⏸️ Pausado: Se ha priorizado otra tarea por lo que se debe poner en pausa momentaneamente
👀 En revisión: Se ha asignado un revisor en GitHub y en los canales internos para revisar la PR
⚠️ Corrigiendo Embarrás: Se hicieron comentarios en la PR y se está corrigiendo los cambios solicitados
✅ Listo: La tarea se encuentra aprobada y se ha hecho exitosamente el merge a develop2. 🌿 Creación de Rama
# Asegúrate de estar en develop y actualizado
git checkout develop
git pull origin develop
# Crear nueva rama para tu tarea
git checkout -b feature/nombre-descriptivo-de-la-tareaConvención de Nombres de Ramas
feature/user-authentication # Nueva funcionalidad
fix/login-error-handling # Corrección de bug
hotfix/critical-security-patch # Corrección urgente
refactor/database-queries # Refactorización
docs/api-documentation # Documentación
chores/dependencies-update # Actualización de dependencias3. 💻 Desarrollo
Desarrolla tu funcionalidad siguiendo las mejores prácticas:
Commits Frecuentes
Haz commits pequeños y frecuentes con mensajes descriptivos:
git add .
git commit -m "feat: add user login validation"
git commit -m "test: add unit tests for login service"
git commit -m "docs: update API documentation"Testea linters, formatter y errores de tipos
# Backend
yarn lint
yarn tsc --noEmit
# Frontend
yarn lint
yarn tsc --noEmit
yarn formatTesting Continuo
# Backend
yarn test # Tests unitarios
yarn test:e2e # Tests de integración
# Frontend
yarn test # Tests4. 📤 Pull Request
Cuando tu funcionalidad esté completa, crea un Pull Request.
Proceso de Pull Request
- Push de tu rama:
git push origin feature/nombre-de-tu-rama- Crear PR en GitHub:
- Ve al repositorio en GitHub
- Click en “Compare & pull request”
- Selecciona
developcomo rama base - Completa la descripción del PR
Template de Pull Request
A continuación se muestra un ejemplo de Pull Request. La idea es que sea descriptivo y claro para que el equipo pueda entender el cambio que se está haciendo.
## 📋 Descripción
Breve descripción de qué hace este PR y por qué es necesario.
## 🎯 Tipo de Cambio
- [ ] 🐛 Bug fix
- [ ] ✨ Nueva funcionalidad
- [ ] 💥 Breaking change
- [ ] 📚 Documentación
- [ ] 🔧 Refactoring
## 🧪 Testing
- [ ] Tests unitarios agregados/actualizados
- [ ] Tests de integración agregados/actualizados
- [ ] Tested manualmente
## 📸 Screenshots/Videos
(Si aplica, agregar capturas de pantalla o videos)
## 🔗 Enlaces Relacionados
- Link a la tarea en Notion
- Link a issues relacionados
- Link a documentación relevante
## ✅ Checklist
- [ ] El código sigue las convenciones del proyecto
- [ ] He realizado una auto-revisión de mi código
- [ ] He comentado mi código en áreas difíciles de entender
- [ ] He actualizado la documentación correspondiente
- [ ] Mis cambios no generan nuevas advertencias
- [ ] He agregado tests que prueban mi funcionalidad
- [ ] Tests nuevos y existentes pasan localmente5. 👀 Code Review
Todo PR debe ser revisado por al menos un desarrollador del equipo. Puedes asignar el PR a un compañero para que lo revise a través de GitHub.
6. ✅ Merge y Deploy
Una vez aprobado el PR:
- Merge a develop: El PR se fusiona automáticamente
- Deploy automático: GitHub Actions despliega a staging
- Testing en staging: Verificar que todo funciona
- Merge a production: Esto se hace en las fechas de release por el encargado de releases
📝 Convención de Commits
Seguimos la Convención de Commits Convencionales para mantener un historial limpio y automatizar releases.
Formato
<tipo>[scope opcional]: <descripción>
[cuerpo opcional]
[footer opcional]Tipos de Commit
feat: Nueva funcionalidadfix: Corrección de bugdocs: Cambios en documentaciónstyle: Cambios de formato (espacios, comas, etc.)refactor: Refactorización de códigotest: Agregar o modificar testschore: Tareas de mantenimiento
Ejemplos
# Nueva funcionalidad
git commit -m "feat(auth): add JWT token validation"
# Corrección de bug
git commit -m "fix(api): handle null values in user profile"
# Documentación
git commit -m "docs(readme): update installation instructions"
# Refactoring
git commit -m "refactor(database): optimize user queries"
# Tests
git commit -m "test(auth): add unit tests for login service"
# Breaking change
git commit -m "feat(api)!: change user endpoint structure
BREAKING CHANGE: user endpoint now returns different format"🚀 CI/CD y Automatización
Pipeline Automático
Es un archivo YAML que define los pasos que se van a ejecutar cuando se haga un push a una rama.
Pasos del Pipeline
- Backend:
- 🔍 Linting: ESLint revisa calidad de código
- 📝 Type Check: TypeScript verifica tipos
- 🧪 Tests: Jest ejecuta tests unitarios
- 🐳 Build: Docker construye imagen
- 📦 Push: Imagen se sube a Artifact Registry
- 🚀 Deploy: Cloud Run despliega automáticamente
- Frontend:
- 🔍 Linting: ESLint revisa calidad de código
- 📝 Type Check: TypeScript verifica tipos
- 🧪 Tests: Jest ejecuta tests unitarios
📚 Recursos Adicionales
Documentación Interna
- Stack Tecnológico - Herramientas y tecnologías
- Configuración - Setup del entorno de desarrollo
- Testing - Guías de testing
Recursos Externos
- Git Flow - Metodología de branching
- Conventional Commits - Convención de commits
- GitHub Flow - Flujo simplificado de GitHub
¿Tienes dudas sobre el flujo de trabajo? ¡Consulta el diccionario técnico o pregunta al equipo!