1. Introducción
El desarrollo de software es una actividad de ingeniería que requiere mucho más que escribir código. En un proyecto real participan personas, tareas, requisitos, incidencias, cambios y múltiples versiones del producto que deben ser administrados de manera organizada.
A medida que un proyecto aumenta en tamaño y complejidad, resulta necesario utilizar herramientas que permitan responder preguntas como:
- ¿Qué actividades deben realizarse?
- ¿Quién es responsable de cada tarea?
- ¿Cuánto tiempo se dispone para completar el proyecto?
- ¿Qué actividades están retrasadas?
- ¿Qué errores han sido reportados?
- ¿Cuál es el estado de una incidencia?
- ¿Quién modificó determinada parte del código?
- ¿Qué versión del sistema se encuentra actualmente en producción?
Para responder estas preguntas, el Ingeniero de Software utiliza diferentes herramientas de apoyo. En esta lección estudiaremos cuatro grupos:
- Gestores de proyectos
- Herramientas de planificación
- Herramientas de control de incidencias
- Herramientas de versionamiento de código
Estas herramientas contribuyen a organizar el trabajo, mejorar la colaboración y mantener la trazabilidad durante el ciclo de vida del software.
2. Gestores de proyectos
Los gestores de proyectos son herramientas utilizadas para organizar, administrar y supervisar las actividades necesarias para alcanzar los objetivos de un proyecto.
Permiten centralizar información relacionada con:
- tareas;
- responsables;
- prioridades;
- fechas;
- estados;
- entregables;
- avances;
- documentación;
- dependencias.
Un proyecto podría organizarse de la siguiente manera:
PROYECTO: Sistema de Ventas
│
├── Análisis
│ ├── Relevamiento de requisitos
│ └── Elaboración de casos de uso
│
├── Desarrollo
│ ├── Módulo de clientes
│ ├── Módulo de productos
│ └── Módulo de ventas
│
├── Pruebas
│ ├── Pruebas funcionales
│ └── Corrección de errores
│
└── Despliegue
└── Publicación en producción
El gestor proporciona una visión centralizada del trabajo y facilita conocer el estado general del proyecto.
3. Funciones de un gestor de proyectos
Dependiendo de la herramienta utilizada, un gestor puede proporcionar diferentes capacidades.
Gestión de tareas
Permite registrar las actividades que deben realizarse.
Una tarea normalmente puede contener:
Tarea: Implementar autenticación
Responsable: Desarrollador A
Prioridad: Alta
Estado: En desarrollo
Fecha inicio: 10/08/2026
Fecha límite: 15/08/2026
Asignación de responsables
Cada actividad puede ser asignada a uno o varios integrantes del equipo, estableciendo claramente quién debe encargarse de su ejecución.
Seguimiento
Los estados permiten representar el progreso de una actividad.
Por ejemplo:
Pendiente
↓
En progreso
↓
En revisión
↓
Finalizado
Colaboración
Muchas herramientas permiten agregar:
- comentarios;
- archivos;
- enlaces;
- documentación;
- evidencias;
- notificaciones.
Esto ayuda a mantener la información relacionada con una actividad dentro de un mismo entorno.
4. Ejemplos de gestores de proyectos
Entre las herramientas utilizadas para gestionar proyectos tecnológicos encontramos:
| Herramienta | Características |
|---|---|
| Jira | Gestión de proyectos y trabajo ágil |
| Azure DevOps | Gestión de trabajo integrada con desarrollo y DevOps |
| GitLab | Código, incidencias, proyectos y CI/CD |
| GitHub Projects | Gestión de trabajo integrada con repositorios GitHub |
| Trello | Gestión visual mediante tableros |
| ClickUp | Gestión de proyectos, tareas y documentación |
| Redmine | Gestión de proyectos e incidencias |
La elección depende del tamaño del equipo, metodología utilizada, presupuesto, integraciones necesarias y características del proyecto.
5. Herramientas de planificación
La planificación permite determinar qué actividades deben realizarse, cuándo deben ejecutarse, cuánto tiempo pueden requerir y qué recursos serán necesarios.
Una planificación básica puede considerar:
Objetivo
↓
Actividades
↓
Estimación
↓
Responsables
↓
Dependencias
↓
Cronograma
↓
Seguimiento
Las herramientas de planificación permiten representar esta información mediante diferentes mecanismos.
6. Diagrama de Gantt
Una herramienta tradicional de planificación es el diagrama de Gantt.
Representa las actividades de un proyecto sobre una línea temporal.
Por ejemplo:
Actividad Sem 1 Sem 2 Sem 3 Sem 4
--------------------------------------------------------
Análisis ████
Diseño ████
Desarrollo ███████████
Pruebas ███████
Despliegue ██
Permite visualizar:
- duración de actividades;
- fechas de inicio y finalización;
- actividades simultáneas;
- dependencias;
- avance del proyecto;
- posibles retrasos.
Herramientas como Microsoft Project, ProjectLibre y otras plataformas de gestión pueden utilizarse para construir este tipo de planificación.
7. Tableros Kanban
En proyectos de software también es frecuente utilizar tableros Kanban.
Un tablero organiza visualmente el trabajo según su estado.
Por ejemplo:
| Pendiente | En progreso | En revisión | Finalizado |
| Login | Clientes | Reportes | Base de datos |
| Inventario | Facturación | Usuarios | |
| Dashboard |
Cada elemento representa una unidad de trabajo que se desplaza entre columnas a medida que avanza.
PENDIENTE → EN PROGRESO → EN REVISIÓN → FINALIZADO
Este modelo permite visualizar rápidamente:
- trabajo pendiente;
- trabajo actualmente ejecutándose;
- bloqueos;
- acumulaciones;
- progreso.
Jira, Trello, GitLab, GitHub Projects y Azure DevOps proporcionan diferentes implementaciones de tableros.
8. Herramientas de control de incidencias
Durante el desarrollo y operación de un sistema pueden aparecer problemas que necesitan ser registrados y controlados.
Una incidencia representa un evento que requiere atención.
Puede tratarse de:
- errores del sistema;
- comportamientos inesperados;
- fallos reportados por usuarios;
- problemas de rendimiento;
- problemas encontrados durante las pruebas;
- defectos detectados después del despliegue.
Las herramientas utilizadas para registrar y controlar estos elementos suelen denominarse Issue Trackers o sistemas de seguimiento de incidencias.
9. Registro de una incidencia
Una incidencia debería contener información suficiente para permitir su análisis y reproducción.
Por ejemplo:
ID: BUG-154
Título:
Error al registrar una venta
Descripción:
Al confirmar una venta con tarjeta,
el sistema muestra un error 500.
Prioridad:
Alta
Estado:
Abierto
Responsable:
Desarrollador Backend
Entorno:
Producción
Versión:
v2.3.1
También pueden incluirse:
- pasos para reproducir el problema;
- comportamiento esperado;
- comportamiento obtenido;
- capturas de pantalla;
- registros de errores;
- archivos adjuntos;
- versión afectada.
10. Ciclo de vida de una incidencia
Las incidencias normalmente atraviesan diferentes estados.
Un ejemplo sencillo sería:
Reportada
↓
Asignada
↓
En análisis
↓
En desarrollo
↓
En pruebas
↓
Resuelta
↓
Cerrada
También puede ocurrir:
Resuelta
↓
Pruebas
↓
Problema persiste
↓
Reabierta
El control de incidencias permite mantener trazabilidad, ya que es posible conocer cuándo fue reportado un problema, quién lo atendió, qué cambios fueron realizados y cuándo fue solucionado.
11. Herramientas para control de incidencias
Algunas herramientas utilizadas son:
| Herramienta | Uso |
| Jira | Gestión de bugs, tareas e incidencias |
| GitLab Issues | Incidencias relacionadas con repositorios GitLab |
| GitHub Issues | Seguimiento de incidencias en GitHub |
| Azure Boards | Gestión de trabajo e incidencias |
| Redmine | Gestión de proyectos e incidencias |
| YouTrack | Seguimiento de incidencias y proyectos |
En muchos proyectos, la herramienta de incidencias se encuentra integrada con el repositorio de código.
Esto permite relacionar:
Incidencia
↓
Tarea
↓
Cambio de código
↓
Commit
↓
Versión
Esta relación es especialmente importante para la trazabilidad del desarrollo.
12. Herramientas de versionamiento de código
Cuando varios desarrolladores trabajan sobre un sistema, es necesario controlar los cambios realizados sobre el código fuente.
Los Sistemas de Control de Versiones (VCS) permiten registrar y administrar estos cambios.
Actualmente, el sistema de control de versiones más utilizado es Git.
Git permite mantener un historial del proyecto.
Cada cambio puede quedar asociado con información como:
- autor;
- fecha;
- descripción;
- archivos modificados;
- diferencias respecto a versiones anteriores.

¿qué estrategia o convención se recomienda para vincular eficazmente el flujo de ramas en Git con el ciclo de vida de las incidencias en el gestor de proyectos (como Jira o GitHub Projects)?
¿Qué rol cumple un Pull Request (o Merge Request) más allá de simplemente fusionar dos ramas de código?
¿Por qué el desarrollo de software requiere herramientas de gestión y no se limita solo a escribir código?
¿Cómo podrían ayudar realmente a controlar un proyecto de software, las herramientas de gestión?