Volver a la portadaCiencias Computacionales y Tecnologías Digitales · 1° Bachillerato · Cambiar asignatura
Empezar gratis
1° EMS · Ciencias Computacionales y Tecnologías Digitales
Procesamiento de información y gestión · Bases de datos e integración de datos

Gestión de proyectos y control de versiones

Un grupo de cuatro compañeros del liceo quiere hacer una aplicación para las Llamadas del Carnaval. A las dos semanas, Bruno y Florencia editaron el mismo archivo, uno de los dos perdió su trabajo y nadie sabe quién debía hacer qué. ¿Cómo se organiza un equipo para que esto no pase? Al final de la página vas a poder responderlo.

Ciclo de vida de un proyecto

Un proyecto es un trabajo con un objetivo, un plazo y recursos limitados. Hacer una aplicación, una página web o un sistema de riego automático son proyectos. Para no improvisar, se ordenan en etapas, que forman el ciclo de vida del proyecto.

Cinco etapas del ciclo de vida de un proyecto: inicio, planificación, ejecución, seguimiento y cierre. 1. Inicio 2. Planificación 3. Ejecución 4. Seguimiento 5. Cierre
Etapa Qué se hace Ejemplo: app de la murga
Inicio Definir el problema y el objetivo «Una app con el repertorio y los horarios de la murga»
Planificación Decidir tareas, roles, plazos, recursos, presupuesto y riesgos Un cronograma de 6 semanas
Ejecución Hacer el trabajo: programar, diseñar, probar Programar la lista de canciones
Seguimiento Comparar lo hecho con lo planificado y corregir Reunión semanal: ¿vamos en fecha?
Cierre Entregar, evaluar y documentar lo aprendido Presentación y informe final

Seguimiento y ejecución se van alternando: se trabaja un poco, se controla, se ajusta. Eso es el desarrollo incremental que ya conocés: avanzar por pasos pequeños y verificables.

Practica★☆☆Sin empezar
Nombrá las etapas básicas del ciclo de vida de un proyecto (por ejemplo: inicio, planificación, ejecución, seguimiento y cierre) y explicá en una frase qué se hace en la…

Nombrá las etapas básicas del ciclo de vida de un proyecto (por ejemplo: inicio, planificación, ejecución, seguimiento y cierre) y explicá en una frase qué se hace en la etapa de planificación.

Resolver

Roles y recursos

En un equipo, cada persona asume un rol: un conjunto de responsabilidades. Así nadie queda sin tarea y nadie hace lo mismo que otro. En un grupo de liceo, un mismo estudiante puede tener más de un rol.

Rol Tarea principal
Coordinador/a Organiza las reuniones y controla los plazos
Programador/a Escribe y prueba el código
Diseñador/a de interfaz Dibuja las pantallas y cuida que sea fácil de usar
Responsable de datos Arma y mantiene la base de datos
Encargado/a de pruebas y documentación Busca errores y escribe el informe

Los recursos son todo lo que el proyecto necesita: personas, tiempo, computadoras (las ceibalitas sirven), software, conexión a internet, herramientas en línea y dinero.

Practica★☆☆Sin empezar
Un equipo del liceo desarrolla una página web sobre el Cabo Polonio. Mencioná tres roles que podrían existir en el equipo y la tarea principal de cada uno.

Un equipo del liceo desarrolla una página web sobre el Cabo Polonio. Mencioná tres roles que podrían existir en el equipo y la tarea principal de cada uno.

Resolver

Presupuesto y riesgos

El presupuesto es la lista de gastos previstos con su total, comparada con el dinero disponible. Sirve para decidir antes de gastar.

Un riesgo es algo que podría salir mal y afectar el proyecto. Para cada riesgo se planifica una prevención (para que no ocurra) y una respuesta (qué hacer si ocurre).

Riesgo Prevención Respuesta
Se rompe una computadora Guardar el trabajo en un repositorio remoto Seguir desde otra computadora
Un integrante se enferma Que dos personas conozcan cada tarea Repartir sus tareas entre el resto
Se pierde el trabajo Copias frecuentes en la nube Recuperar la última versión
Se acaba el plazo Dividir en tareas pequeñas con fechas Recortar funciones menos importantes
Practica★★☆Sin empezar
Micaela organiza el proyecto de una aplicación para una murga y dispone de este presupuesto: hosting, $\$2.400$; diseño del logo, $\$3.000$; publicidad, $\$1.800…

Micaela organiza el proyecto de una aplicación para una murga y dispone de este presupuesto: hosting, $\$2.400$; diseño del logo, $\$3.000$; publicidad, $\$1.800$. Calculá el total, y si el grupo juntó $\$8.000$, indicá cuánto dinero sobra o falta y qué decisión podrían tomar.

Resolver
Practica★★☆Sin empezar
Un equipo identificó estos riesgos en su proyecto: se rompe la computadora de un integrante, un compañero se enferma antes de la entrega y se pierde el trabajo por no…

Un equipo identificó estos riesgos en su proyecto: se rompe la computadora de un integrante, un compañero se enferma antes de la entrega y se pierde el trabajo por no tener copia. Para cada riesgo proponé una medida de prevención y explicá cómo Git y un repositorio remoto ayudarían en alguno de ellos.

Resolver

Control de versiones con Git

Si Bruno y Florencia se mandan el archivo por mensajes, aparecen app_final.py, app_final2.py y app_final_ahora_si.py. Nadie sabe cuál es la buena. Un sistema de control de versiones guarda la historia de los cambios de los archivos. Git es el más usado y es software libre; GitHub es un sitio web donde se alojan repositorios de Git.

Ventajas principales:

  • Se puede volver a una versión anterior si algo se rompe.

  • Se sabe quién cambió qué y cuándo.

  • Varias personas trabajan a la vez sobre los mismos archivos.

  • Hay copia de seguridad en el repositorio remoto.

Vocabulario básico:

Término Qué es
Repositorio La carpeta del proyecto con toda su historia
Commit Una «foto» de los cambios, con un mensaje que explica qué se hizo
Rama (branch) Una línea de trabajo paralela, para probar cambios sin tocar la principal
Fusión (merge) Incorporar los cambios de una rama en otra
Repositorio remoto Copia del repositorio en un servidor (por ejemplo, GitHub)
Rama principal con cuatro commits y una rama paralela que se separa y se fusiona de nuevo. rama principal rama «nueva-pantalla» fusión
Practica★☆☆Sin empezar
Explicá qué es un sistema de control de versiones como Git y mencioná dos ventajas de usarlo cuando varias personas trabajan sobre los mismos archivos.

Explicá qué es un sistema de control de versiones como Git y mencioná dos ventajas de usarlo cuando varias personas trabajan sobre los mismos archivos.

Resolver

Trabajar en equipo con ramas

La regla de oro: la rama principal debe funcionar siempre. Cada cambio nuevo se hace en una rama aparte y recién se fusiona cuando está probado.

Comandos que corresponden a esos pasos: git branch o git checkout -b (crear rama), git commit, git push y git merge. No hace falta memorizarlos: lo importante es entender el para qué de cada paso.

Practica★★☆Sin empezar
Santiago y Camila trabajan en el mismo repositorio. Ordená y explicá los pasos que deberían seguir para incorporar un cambio: crear una rama, hacer un commit, subirlo al…

Santiago y Camila trabajan en el mismo repositorio. Ordená y explicá los pasos que deberían seguir para incorporar un cambio: crear una rama, hacer un commit, subirlo al repositorio remoto y fusionarlo con la rama principal. Aclará para qué sirve cada paso.

Resolver

Conflictos y buenas prácticas

Un conflicto ocurre cuando dos personas cambian la misma parte del mismo archivo en ramas distintas. Al fusionar, Git no sabe cuál versión conservar y pide que una persona decida.

Prácticas para tener menos conflictos:

  • Comunicarse: avisar «voy a tocar el título».

  • Ramas pequeñas: cambios acotados que se fusionan rápido.

  • Commits frecuentes y traer los cambios del equipo seguido.

  • Repartir los archivos entre integrantes según los roles.

Dos ramas modifican la misma línea y al fusionarse producen un conflicto. Rama de Valentina Rama de Agustín ¡Conflicto!
Practica★★★Sin empezar
Dos integrantes de un equipo modificaron la misma línea de un archivo en ramas distintas y, al fusionarlas, Git avisa que hay un conflicto. Explicá por qué ocurre, cómo…

Dos integrantes de un equipo modificaron la misma línea de un archivo en ramas distintas y, al fusionarlas, Git avisa que hay un conflicto. Explicá por qué ocurre, cómo se resuelve y qué prácticas del equipo (comunicación, ramas pequeñas, commits frecuentes) ayudarían a que sucedan menos veces.

Resolver

Armar el plan completo

Ahora juntamos todo. Un plan de proyecto responde: ¿qué etapas hay?, ¿quién hace qué?, ¿con qué recursos?, ¿qué puede fallar?, ¿cómo trabajamos sobre los archivos?

Volvé al principio: Bruno y Florencia habrían evitado el lío con un plan de roles, un repositorio compartido y ramas separadas, y con conflictos resueltos hablando.

Practica★★★Sin empezar
Un equipo de cinco estudiantes de Tacuarembó debe entregar en ocho semanas una aplicación que usa una base de datos y una API externa. Armá un plan que incluya las…

Un equipo de cinco estudiantes de Tacuarembó debe entregar en ocho semanas una aplicación que usa una base de datos y una API externa. Armá un plan que incluya las etapas del proyecto, la distribución de roles, los recursos necesarios, al menos dos riesgos con su respuesta y la manera en que usarían control de versiones. Justificá las decisiones principales.

Resolver

Resumen

Ver todos los ejercicios de este apartado