🗺️ El Mapa de Estrategia: GitHub Projects y Kanban
“El general que ve el campo de batalla desde arriba vence antes de luchar. En desarrollo, GitHub Projects es tu vista estratégica.” - El Arte de la Gestión de Proyectos
🎯 La Filosofía del Tablero de Batalla
Un proyecto sin visualización es un caos. GitHub Projects transforma issues dispersas en un tablero organizado tipo Kanban:
- Columnas: Fases del trabajo (To Do, In Progress, Done)
- Cards: Issues, PRs o notas
- Movimiento: Arrastrar y soltar entre columnas
Metodologías soportadas:
- Kanban: Flujo continuo, sin sprints fijos
- Scrum: Sprints de 2 semanas con milestones
- Híbrido: Mezcla personalizada
📜 El Camino del Conocimiento
Parte 1: Crear tu Primer Project Board
Desde la interfaz web:
- Ve a tu repositorio
- Pestaña “Projects” > “New project”
- Elige plantilla:
- Board: Vista Kanban clásica (recomendado para empezar)
- Table: Vista de hoja de cálculo (para datos densos)
- Roadmap: Timeline con fechas (para planificación a largo plazo)
Configuración inicial:
Nombre: Sprint 5 - Implementar Dashboard
Descripción: Objetivos del sprint del 1 al 14 de abril
Visibilidad: Private (solo el equipo) o Public
Estructura Kanban básica:
┌─────────────┬─────────────┬─────────────┬──────────┐
│ 📥 Backlog │ 🔵 To Do │ 🟡 In Prog │ ✅ Done │
├─────────────┼─────────────┼─────────────┼──────────┤
│ Issue #45 │ Issue #42 │ Issue #38 │ Issue #35│
│ Issue #47 │ Issue #43 │ PR #40 │ PR #36 │
│ Issue #50 │ │ │ │
└─────────────┴─────────────┴─────────────┴──────────┘
Añadir columnas personalizadas:
- Backlog: Ideas sin priorizar
- Ready: Listo para tomar (con specs completas)
- In Progress: Alguien trabajando
- Code Review: PR abierto, esperando aprobación
- Testing/QA: Funciona pero necesita validación
- Done: Fusionado y desplegado
Parte 2: Gestionar Cards (Tarjetas)
Añadir issues existentes:
- En el Project, click ”+ Add item”
- Selecciona issues del repo
- O pega URL de issue:
https://github.com/user/repo/issues/42
Crear card directamente:
- Click ”+” en cualquier columna
- Escribe título rápido: “Investigar bug de cache”
- Presiona Enter
- Convertir a issue: Click en la card > “Convert to issue”
Metadata en cards:
Cada card puede tener:
Title: Implementar autenticación JWT
Status: In Progress
Assignees: @abraham, @maria
Labels: backend, high-priority
Milestone: v1.0 Launch
Priority: P0
Size: Large (8 story points)
Sprint: Sprint 5
Campos personalizados:
Projects (beta) permite añadir columnas extras:
- Priority: Dropdown (P0, P1, P2, P3)
- Size: Number (puntos de historia: 1, 2, 3, 5, 8)
- Sprint: Text (Sprint 5, Sprint 6)
- Due Date: Date
- Owner: Person
Añadir campo custom:
Settings del Project > ”+ New field”
- Name:
Priority - Type:
Single select - Options:
P0-Critical,P1-High,P2-Medium,P3-Low
Parte 3: Automatización de Workflows
Automatizaciones nativas de GitHub Projects:
1. Auto-añadir issues nuevas:
Settings > Workflows > “Auto-add to project”
When: An issue is created in this repository
Then: Add to this project in column "Backlog"
2. Auto-mover cuando se cierra issue:
When: Issue is closed
Then: Move to column "Done"
3. Auto-mover cuando se abre PR:
When: Pull request is opened
Then: Move to column "Code Review"
4. Auto-archivar después de X días:
When: Card is in "Done" for 7 days
Then: Archive card
Automatización avanzada con GitHub Actions:
# .github/workflows/project-automation.yml
name: Project Card Automation
on:
issues:
types: [opened, assigned]
pull_request:
types: [opened, ready_for_review]
jobs:
add-to-project:
runs-on: ubuntu-latest
steps:
- name: Add issue to project
uses: actions/add-to-project@v0.3.0
with:
project-url: https://github.com/users/abraham/projects/1
github-token: ${{ secrets.PROJECT_TOKEN }}
Integración con Slack:
# Notificar en Slack cuando card se mueve a "Done"
- name: Notify Slack
if: github.event.project_card.column_name == 'Done'
uses: slackapi/slack-github-action@v1.24.0
with:
channel-id: '#dev-team'
slack-message: "✅ Task completada: ${{ github.event.issue.title }}"
Parte 4: Metodologías Ágiles en GitHub
Flujo Kanban (continuo):
Backlog → To Do → In Progress → Review → Done
↑
Pull diario
Reglas:
- WIP limit: Máximo 3 cards en “In Progress” por persona
- Pull, don’t push: Los devs toman tareas cuando terminan
- Priorizar por columna izquierda (las más viejas primero)
Flujo Scrum (sprints de 2 semanas):
Sprint Planning (Lunes semana 1):
- Mover cards de Backlog a "Sprint 5"
- Estimar story points
- Asignar tareas
Daily Standup (cada mañana):
- ¿Qué hice ayer? (mover cards)
- ¿Qué haré hoy? (self-assign)
- ¿Tengo bloqueos? (añadir label "blocked")
Sprint Review (Viernes semana 2):
- Demo de features completadas
- Cerrar sprint milestone
Sprint Retro (Viernes tarde):
- ¿Qué salió bien? ¿Qué mejorar?
- Crear issues de mejora de proceso
Vista de Sprint en GitHub:
┌──────────────────────────────────────┐
│ Sprint 5: Dashboard Implementation │
│ 📅 Apr 1 - Apr 14 │
│ ⚡ Velocity: 32 / 40 story points │
│ 🎯 Burndown: On track │
├──────────────────────────────────────┤
│ □ Issue #42 (5 pts) - In Progress │
│ ✓ Issue #38 (3 pts) - Done │
│ □ Issue #45 (8 pts) - To Do │
└──────────────────────────────────────┘
Parte 5: Vistas y Filtros Avanzados
Filtrar por assignee:
is:issue assignee:@abraham state:open
Filtrar por label:
is:issue label:"high priority" label:bug
Crear vistas guardadas:
-
Vista “Mis Tareas”:
Filter: assignee:@me is:open Sort: Priority descending Group by: Status -
Vista “Bugs Críticos”:
Filter: label:bug label:p0-critical Sort: Created (oldest first) -
Vista “Este Sprint”:
Filter: milestone:"Sprint 5" Group by: Status
Uso de Insights (Analytics):
Projects (beta) incluye gráficos:
- Burndown Chart: Progreso del sprint día a día
- Velocity Chart: Story points completados por sprint
- Cumulative Flow: Distribución de tareas en columnas
- Cycle Time: Tiempo promedio desde “To Do” a “Done”
Parte 6: Projects de Organización vs Repositorio
Project de Repo:
- Solo issues/PRs de ESE repositorio
- Ideal para proyectos pequeños/individuales
Project de Organización:
- Agrega issues de MÚLTIPLES repos
- Ideal para equipos grandes
Crear Project de Organización:
- En tu perfil de GitHub > “Organizations”
- Elige org > “Projects” > “New project”
- Ahora puedes añadir issues de cualquier repo de la org
Ejemplo de uso:
Project: Q1 2026 Roadmap
├─ Repo: frontend-app
│ ├─ Issue #10: Rediseñar navbar
│ └─ PR #12: Migrar a React 18
├─ Repo: backend-api
│ ├─ Issue #5: Optimizar endpoint /users
│ └─ Issue #7: Añadir rate limiting
└─ Repo: mobile-app
└─ Issue #3: Fix crash en iOS 17
💡 Jutsu Secreto: GitHub CLI para Projects
# Listar projects
gh project list --owner @me
# Ver items de un project
gh project item-list 1 --owner abraham
# Añadir issue a project
gh project item-add 1 --owner abraham --url https://github.com/user/repo/issues/42
# Crear project desde CLI
gh project create --owner abraham --title "Sprint 6"
# Editar campo de un item
gh project item-edit --id ITEM_ID --project-id PROJECT_ID --field-id FIELD_ID --text "In Progress"
Integración con scripts:
#!/bin/bash
# Script: add-all-open-issues-to-project.sh
PROJECT_ID="PVT_123abc"
REPO="abraham/mi-repo"
# Listar issues abiertas
gh issue list --repo $REPO --json number --jq '.[].number' | while read issue_num; do
issue_url="https://github.com/$REPO/issues/$issue_num"
gh project item-add $PROJECT_ID --url $issue_url
echo "Añadido: $issue_url"
done
🎯 Reto Ninja del Tema
Misión: Crear un tablero de proyecto completo
- Crea un Project llamado “Ninja Dashboard MVP”
- Configura columnas:
- Backlog
- Ready (specs completas)
- In Progress (WIP limit: 3)
- Code Review
- Testing
- Done
- Añade 12 issues del repositorio que creaste en módulo 3.4
- Distribuye issues:
- 4 en Backlog
- 3 en Ready
- 2 en In Progress
- 1 en Code Review
- 2 en Done
- Añade campos personalizados:
- Priority (P0-P3)
- Size (1, 2, 3, 5, 8 story points)
- Configura 2 automatizaciones:
- Auto-añadir issues nuevas a Backlog
- Auto-mover a Done cuando issue se cierra
- Crea una vista filtrada “High Priority” que muestre solo P0 y P1
Criterios de éxito:
- ✅ Tienes 6 columnas configuradas
- ✅ Al menos 10 cards distribuidas
- ✅ Campos personalizados funcionando
- ✅ Automatizaciones activas
- ✅ Vista filtrada guardada
📚 Recursos Adicionales
- About GitHub Projects
- Kanban Guide
- Scrum Guide
- GitHub Project Automation Examples
- Project Management Best Practices
Siguiente Pergamino: 3.7 Jutsus Automatizados - GitHub Actions
¿Organizaste tu proyecto? Comparte una captura de tu tablero en Discord con #KanbanNinja! 📊🥷