Planificación de un Proyecto de Software

    La planificación de un proyecto de software es la fase donde se define qué se va a construir, cómo se va a hacer y en cuánto tiempo. Se establecen los objetivos, requisitos, recursos y cronograma del desarrollo.

    📌 ¿Por qué conocer esto me hace mejor desarrollador? Saber planificar un proyecto ayuda a priorizar tareas, estimar tiempos correctamente y evitar problemas que pueden retrasar el desarrollo.

    📌 Analogía Desarrollar software sin planificación es como construir una casa sin planos: puedes empezar a poner ladrillos, pero sin una estructura clara, el resultado será caótico.

    Fases

    La planificación de un proyecto de software se basa en definir:

    1. Objetivos → ¿Qué queremos lograr con el software?
    2. Alcance → ¿Qué funcionalidades tendrá y cuáles no?
    3. Requisitos → ¿Qué necesita el usuario?
    4. Recursos → ¿Con qué herramientas y equipo contamos?
    5. Cronograma → ¿Cuánto tiempo tomará cada fase del desarrollo?

    Pasos clave en la planificación

    1. Definir el alcance y objetivos del proyecto 🎯

    • ¿Qué problema resuelve el software?
    • ¿Qué funcionalidades debe incluir?
    • ¿Cuáles son los entregables finales?

    📌 Ejemplo: Un sistema de gestión de veterinaria debe permitir:

    ✅ Registrar mascotas y dueños.

    ✅ Agendar citas.

    ✅ Generar facturas.

    2. Levantamiento de requisitos 📝

    Se identifican las necesidades del usuario y se documentan.

    Requisitos funcionales: Lo que debe hacer el software.

    Requisitos no funcionales: Seguridad, rendimiento, escalabilidad, etc.

    📌 Ejemplo de requisitos funcionales:

    • “El usuario podrá registrarse con email y contraseña.”
    • “El administrador podrá generar reportes de ventas.”

    📌 Ejemplo de requisitos no funcionales:

    • “El sistema debe soportar 1000 usuarios simultáneos.”
    • “Las transacciones deben procesarse en menos de 2 segundos.”

    3. Selección de tecnologías y herramientas 🛠️

    En este punto deberían ponerse de acuerdo en, al menos, una tecnología para:

    • Frontend
    • Backend
    • Bases de Datos
    • Control de versiones

    📌 Ejemplo de decisión tecnológica: ”Para nuestro sistema de veterinaria decidimos usar Bootstrap como framework de CSS ya que…”

    4. Definir equipo y roles 👥

    Un equipo de desarrollo típico incluye:

    👨‍💻 Desarrolladores → Codifican el software.

    🎨 Diseñadores UX/UI → Crean interfaces amigables.

    🧪 Testers → Prueban el software.

    📅 Project Manager → Organiza y supervisa el proyecto.

    📌 Ejemplo en un equipo pequeño: Un equipo de 3 personas podría dividirse en:

    • Un desarrollador backend.
    • Un desarrollador frontend.
    • Un desarrollador descentralizado que esté en ambas áreas y pueda supervisar (PM)

    ( Dentro del entorno escolar al desarrollar irán probando el software. No nos vamos a adentrar tanto en testing en el espacio de la materia )

    5. Elaboración del cronograma y estimaciones 📆

    Se dividen las tareas en sprints o fases según la metodología usada:

    Metodología ágil (Scrum): Se organizan tareas en sprints de 1-4 semanas.

    📌 Ejemplo de cronograma con Scrum:

    SprintTareasDuración
    1Definir bases de datos1 semana
    2Implementar CRUD de mascotas2 semanas
    ….

    6. Gestión de riesgos ⚠️

    Es importante identificar posibles problemas y cómo solucionarlos.

    📌 Ejemplo de riesgos y soluciones

    RiesgoSolución
    El equipo no tiene exp. con las tecnologíasDedicar tiempo a capacitarlo
    Poca claridad de requisitosEstablecer una vía de comunicación más fluida con el cliente

    Conclusión

    La planificación es clave en el desarrollo de software, ya que ayuda a optimizar tiempos, evitar problemas y entregar productos de calidad.

    📌 Consejo: Usen herramientas como Trello, Jira o Notion para organizar tareas y mejorar la gestión del proyecto.