11. Planificación inicial de un proyecto de software

11.1 Introducción

La planificación inicial de un proyecto de software consiste en ordenar las primeras decisiones antes de comenzar a construir. Su objetivo no es predecir todo con exactitud, sino entender el propósito del proyecto, definir un alcance razonable, identificar riesgos y acordar una forma de trabajo.

En software siempre existe incertidumbre. Puede cambiar una necesidad, aparecer un problema técnico, faltar información o descubrirse una dependencia no prevista. Por eso, planificar no significa escribir un documento rígido que nunca se modifica. Significa crear una base para tomar mejores decisiones durante el desarrollo.

Una buena planificación inicial ayuda a evitar confusiones, expectativas irreales, prioridades desordenadas y esfuerzos invertidos en funcionalidades de bajo valor.

11.2 ¿Para qué planificar?

Planificar permite pasar de una idea general a un proyecto más concreto. Ayuda a responder qué se quiere lograr, quién participará, qué límites existen y cómo se medirá el avance.

La planificación inicial sirve para:

  • Aclarar objetivos y expectativas.
  • Identificar actores interesados.
  • Definir alcance inicial.
  • Reconocer restricciones de tiempo, costo, tecnología o normativa.
  • Detectar riesgos tempranos.
  • Organizar entregas y prioridades.
  • Estimar esfuerzo de manera inicial.
  • Acordar responsabilidades y comunicación.
Idea clave: planificar no elimina la incertidumbre, pero permite verla, discutirla y administrarla mejor.

11.3 Definir el objetivo del proyecto

El objetivo explica qué se espera lograr con el proyecto. Debe expresar una necesidad o resultado, no solo una lista de funcionalidades. Un objetivo claro permite evaluar si el proyecto avanza en la dirección correcta.

Por ejemplo, no es lo mismo decir:

"Construir una aplicación móvil"

que decir:

"Permitir que los clientes consulten turnos disponibles y reserven desde el celular, reduciendo llamadas telefónicas al área de atención."

El segundo objetivo indica usuarios, necesidad y resultado esperado. Esto ayuda a priorizar mejor las decisiones posteriores.

11.4 Identificar actores interesados

La planificación inicial debe reconocer quiénes influyen en el proyecto o serán afectados por el sistema. Si se ignora a un actor importante, pueden faltar requisitos, aparecer resistencia al cambio o descubrirse tarde una restricción crítica.

Conviene identificar:

  • Clientes o patrocinadores.
  • Usuarios finales.
  • Responsables de negocio.
  • Equipo de desarrollo.
  • Soporte, operaciones o infraestructura.
  • Seguridad, auditoría o área legal.
  • Proveedores externos.
  • Personas que aprobarán entregas.

Además de nombrarlos, es útil registrar qué espera cada actor y qué decisiones puede influir.

11.5 Definir alcance inicial

El alcance describe qué incluye y qué no incluye el proyecto en una etapa determinada. Es una herramienta para evitar malentendidos. Sin alcance, cada persona puede imaginar un producto distinto.

Un alcance inicial debería indicar:

  • Funcionalidades principales incluidas.
  • Usuarios o roles contemplados.
  • Procesos que cubrirá el sistema.
  • Integraciones previstas.
  • Reportes o salidas necesarias.
  • Ambientes donde funcionará.
  • Aspectos explícitamente excluidos.

Definir qué queda fuera es tan importante como definir qué queda dentro. Ayuda a controlar expectativas y a planificar futuras versiones.

11.6 Alcance del producto y alcance del proyecto

Es útil distinguir entre alcance del producto y alcance del proyecto.

Tipo de alcance Qué describe Ejemplo
Alcance del producto Características y funcionalidades que tendrá el software. Permitir registro de usuarios, reservas, cancelaciones y notificaciones.
Alcance del proyecto Trabajo necesario para construir, entregar o modificar el producto. Relevar requisitos, diseñar pantallas, implementar, probar, capacitar y desplegar.

Confundir ambos puede generar problemas. Una funcionalidad pequeña para el usuario puede requerir mucho trabajo técnico si involucra migración de datos, seguridad o integración con sistemas externos.

11.7 Restricciones

Las restricciones son límites que condicionan el proyecto. No siempre son negativas; simplemente forman parte del contexto y deben considerarse desde el inicio.

Algunas restricciones comunes son:

  • Tiempo: fecha límite para entregar una versión.
  • Presupuesto: dinero disponible para desarrollo, infraestructura o licencias.
  • Equipo: cantidad de personas, disponibilidad y experiencia.
  • Tecnología: plataformas, lenguajes, sistemas existentes o proveedores obligatorios.
  • Normativa: leyes, regulaciones, auditorías o estándares que deben cumplirse.
  • Operación: ambientes, horarios de uso, soporte y mantenimiento.
  • Seguridad: protección de datos, permisos, autenticación y trazabilidad.

Un plan realista reconoce restricciones en lugar de asumir que el equipo puede construir cualquier cosa en cualquier condición.

11.8 Supuestos

Un supuesto es algo que el equipo considera verdadero para poder planificar, pero que todavía no está completamente confirmado. Registrar supuestos ayuda a detectar riesgos.

Ejemplos de supuestos:

  • El proveedor externo entregará acceso a su API durante el primer mes.
  • Los usuarios estarán disponibles para validar prototipos una vez por semana.
  • Los datos existentes podrán migrarse sin limpieza manual importante.
  • La organización ya cuenta con infraestructura para alojar el sistema.
  • El equipo conoce la tecnología seleccionada.

Si un supuesto resulta falso, el plan puede cambiar. Por eso conviene revisarlos temprano.

11.9 Riesgos iniciales

Un riesgo es una situación incierta que, si ocurre, puede afectar negativamente el proyecto. Identificar riesgos desde el inicio permite preparar respuestas.

Riesgo Impacto posible Respuesta inicial
Requisitos poco claros Retrabajo y cambios tardíos. Realizar entrevistas, prototipos y validaciones tempranas.
Integración desconocida Retrasos o imposibilidad técnica. Construir una prueba de concepto al inicio.
Usuarios poco disponibles Validación insuficiente. Acordar calendario de revisiones con responsables.
Fecha fija con alcance grande Entrega incompleta o baja calidad. Priorizar una primera versión mínima y realista.
Dependencia de una sola persona Bloqueos si esa persona no está disponible. Compartir conocimiento y documentar decisiones críticas.

11.10 Priorización inicial

La priorización permite ordenar funcionalidades o tareas según su valor, urgencia, riesgo y dependencia. No todo puede construirse al mismo tiempo, por lo que el equipo necesita decidir qué es más importante.

Algunos criterios de priorización son:

  • Valor para el usuario o el negocio.
  • Riesgo técnico que conviene resolver temprano.
  • Dependencias con otras funcionalidades.
  • Necesidad legal o contractual.
  • Frecuencia de uso.
  • Impacto en operación o soporte.
  • Esfuerzo necesario para implementarlo.

Una buena práctica es evitar que todo sea "prioridad alta". Si todo es urgente, en la práctica nada está priorizado.

11.11 Primera versión o producto mínimo útil

En muchos proyectos conviene definir una primera versión con valor real pero alcance limitado. A veces se la llama producto mínimo viable, versión inicial o producto mínimo útil. El nombre puede variar, pero la idea es entregar algo que permita aprender y resolver una necesidad concreta sin esperar a construir todo.

Una primera versión debe:

  • Resolver un problema real, aunque sea parcial.
  • Ser usable por un grupo definido de usuarios.
  • Permitir recibir retroalimentación.
  • Evitar funcionalidades secundarias al comienzo.
  • Incluir calidad suficiente para no generar rechazo o riesgos innecesarios.

Mínimo no significa descuidado. Una versión pequeña también debe ser clara, verificable y mantenible.

11.12 Estimación inicial

Estimar significa aproximar el esfuerzo, tiempo o costo necesario para realizar un trabajo. En software, la estimación inicial suele tener incertidumbre porque no todo se conoce desde el principio.

Para estimar mejor conviene:

  • Dividir el trabajo en partes más pequeñas.
  • Comparar con trabajos similares anteriores.
  • Identificar tareas desconocidas o riesgosas.
  • Distinguir desarrollo, pruebas, documentación, despliegue y reuniones.
  • Incluir tiempo para correcciones y ajustes.
  • Revisar estimaciones cuando aparece nueva información.

Una estimación no es una promesa absoluta. Es una herramienta de conversación y planificación.

11.13 Entregables iniciales

Un entregable es un resultado concreto producido durante el proyecto. Puede ser código, documentación, prototipos, configuraciones, informes o una versión del sistema.

En una planificación inicial pueden definirse entregables como:

  • Documento breve de objetivos y alcance.
  • Lista inicial de actores interesados.
  • Backlog o lista priorizada de funcionalidades.
  • Prototipos de pantallas principales.
  • Modelo inicial de datos.
  • Plan de riesgos.
  • Criterios de aceptación para la primera versión.
  • Plan de entregas o hitos.

Los entregables deben aportar claridad. Si un documento no ayuda a decidir, construir, validar o mantener, probablemente necesita simplificarse.

11.14 Acuerdos de trabajo

Además de planificar el producto, el equipo debe acordar cómo trabajará. Estos acuerdos evitan confusiones operativas durante el desarrollo.

Algunos acuerdos útiles son:

  • Canales de comunicación.
  • Frecuencia de reuniones.
  • Herramienta para gestionar tareas.
  • Uso de control de versiones y ramas.
  • Criterios para considerar una tarea terminada.
  • Responsables de aprobar requisitos o entregas.
  • Forma de reportar defectos.
  • Política de documentación mínima.
  • Proceso de despliegue a ambientes de prueba o producción.

11.15 Plan de comunicación

Un plan de comunicación define qué información se compartirá, con quién, cuándo y por qué medio. No todos los interesados necesitan el mismo nivel de detalle.

Destinatario Información necesaria Frecuencia posible
Cliente o patrocinador Avance, riesgos, decisiones de alcance y fechas. Semanal o por hito.
Usuarios referentes Prototipos, funcionalidades para validar y dudas de negocio. Durante análisis y al cierre de incrementos.
Equipo técnico Tareas, decisiones técnicas, bloqueos y cambios. Frecuente o diaria.
Soporte u operaciones Cambios próximos, despliegues, configuración e incidentes. Antes de entregas y durante operación.

11.16 Ejemplo: planificación de un sistema de reservas

Supongamos que un centro deportivo quiere un sistema para gestionar reservas de canchas.

  • Objetivo: permitir que socios reserven turnos en línea y reducir llamadas telefónicas.
  • Actores: socios, recepcionistas, administradores, entrenadores y soporte técnico.
  • Alcance inicial: consulta de disponibilidad, reserva, cancelación y administración básica de horarios.
  • Fuera de alcance inicial: pagos en línea, promociones y aplicación móvil nativa.
  • Restricción: primera versión antes del inicio de la temporada alta.
  • Riesgo: reservas simultáneas podrían generar conflictos de horario.
  • Respuesta: probar temprano la lógica de disponibilidad y bloqueo de turnos.
  • Primera entrega: versión web para socios registrados y administración interna.

Este ejemplo muestra cómo una planificación inicial convierte una idea general en decisiones concretas.

11.17 Errores comunes

Al planificar proyectos de software suelen aparecer errores como:

  • Comenzar a construir sin definir objetivos.
  • No aclarar qué queda fuera del alcance.
  • Suponer que los requisitos no cambiarán.
  • Confundir estimación con compromiso fijo.
  • No identificar riesgos técnicos al inicio.
  • Ignorar tareas de pruebas, documentación, despliegue y soporte.
  • No acordar quién toma decisiones de prioridad.
  • No reservar tiempo para validación con usuarios.
  • Planificar una primera versión demasiado grande.

11.18 Plantilla simple de planificación inicial

Una planificación inicial puede comenzar con una plantilla breve:

Objetivo ¿Qué resultado se quiere lograr y por qué?
Actores interesados ¿Quiénes participan, usan, financian, aprueban o se ven afectados?
Alcance inicial ¿Qué incluye la primera etapa?
Fuera de alcance ¿Qué no se hará por ahora?
Restricciones ¿Qué límites de tiempo, costo, tecnología, normativa u operación existen?
Riesgos ¿Qué podría afectar negativamente al proyecto?
Entregas ¿Qué resultados concretos se entregarán y cuándo aproximadamente?
Acuerdos de trabajo ¿Cómo se comunicará, validará, probará y gestionará el trabajo?

11.19 Qué debes recordar de este tema

  • La planificación inicial ordena objetivos, alcance, restricciones, riesgos y acuerdos de trabajo.
  • Planificar no significa eliminar la incertidumbre, sino administrarla mejor.
  • Un objetivo claro debe expresar la necesidad y el resultado esperado.
  • El alcance debe indicar tanto lo incluido como lo excluido.
  • Los supuestos deben registrarse porque pueden convertirse en riesgos.
  • La estimación inicial es aproximada y debe revisarse cuando aparece nueva información.
  • Una primera versión útil debe aportar valor real sin intentar resolver todo desde el inicio.

11.20 Conclusión

La planificación inicial permite comenzar un proyecto de software con mayor claridad. No garantiza que no habrá cambios, pero ayuda a que el equipo entienda qué busca lograr, qué límites existen, qué riesgos debe cuidar y cómo trabajará.

Para quien comienza, la idea principal es esta: un proyecto de software bien iniciado no necesita conocer todos los detalles, pero sí debe tener objetivos, alcance, prioridades, riesgos y acuerdos explícitos.

En el próximo tema estudiaremos con más detalle alcance, objetivos y restricciones de un sistema, profundizando en cómo definir los límites de una solución de software.