Primer hito: Estructuración y tema del proyecto.

Descripción

Se trata de pensar o elegir un proyecto que se irá elaborando durante el año, crear los hitos y organizar el trabajo en el mismo. Lo esencial en este hito es entender qué tipo de proyectos se deben plantear para esta asignatura, describirlo correctamente en GitHub y documentar el proyecto elegido y los pasos que se van a dar en el mismo.

Prerrequisitos

Tener aprobado el hito 0 de proyecto y haber alcanzado el 80% de los objetivos del tema introductorio tras haber realizado los ejercicios propuestos.

Explicación

Esta asignatura está basada en la realización incremental, a lo largo de los hitos de la misma, de un proyecto. Por ello hay que empezar por el principio, escoger un proyecto y, en su caso, los posibles compañeros con los que se pueda colaborar.

El proyecto es en cualquier caso invidual y tiene entidad por sí mismo. Es mejor pensar primero qué quiere hacer uno y más adelante, si es necesario, conectar con otros compañeros con los que pueda haber compatibilidad. El proceso contrario, pensar en un proyecto y dividirlo no suele dar buenos resultados porque los proyectos individuales generalmente no tienen entidad suficiente.

Algunas propuestas de proyectos están en el repositorio de la asignatura actual o en los de otros años, pero en general el alumno podrá elegir el proyecto que decida, siempre que la entidad que permita llevar a cabo todos los hitos del mismo dentro de esta asignatura y tenga entidad suficiente para ser evaluado como parte de la misma, es decir, creación de infraestructura virtual para una organización o aplicación, desde uso de herramientas de configuración, prueba, despliegue, integración continua, herramientas de construcción, entornos virtuales y testeo.

En la descripción del proyecto se tendrá que explicar claramente qué servicios va a usar (bases de datos, servidores de mensajería, un sistema de ficheros específico, compiladores, librerías o aplicaciones externas determinadas) y, si se considera conveniente, ejemplos específicos de las mismas, pero en general no hace falta, en este hito, especificar las herramientas que se van a usar. Lo importante es que se diga claramente qué problema se piensa resolver con el proyecto. Aunque no es parte de la asignatura el llevar el proyecto a cabo, sí lo es construir toda la infraestructura necesaria para hacerlo, lo que se hará en el último hito.

Un ejemplo suficiente puede ser simplemente decir que se va a crear una web para gestionar un negocio de silvicultura basada en un marco MVC como Django y que va a usar una base de datos y algún servidor web para contenido estático, así como el servicio de geolocalización de IoT del compañero McKenzie, en la misma clase. Sin embargo, es un ejemplo muy simple cuya infraestructura virtual, cuando se llegue a los últimos hitos, va a quedar un poco escasa.

Si el proyecto se hace a petición de una empresa u organismo, tendrá que documentarse la entrevista hecha con la misma para especificar los objetivos del trabajo. A lo largo de los diferentes hitos tendrá que documentarse también la interacción con la empresa. El profesor puede proporcionar contactos con diferentes empresas, pero en general será el alumno el que busque ese proyecto y se encargue de toda la interacción con las personas de la empresa.

Este hito será el inicio del trabajo, cuyo objetivo final será llevarlo a cabo y desplegarlo en la infraestructura especificada por el cliente de la forma que éste lo haya solicitado. Por lo tanto, a partir de este momento se tendrán que concentar entrevistas con el cliente para que explique de forma precisa que es lo que desea y se pueda comenzar a crear la infraestructura y código necesaro para la segunda práctica, donde tendrá que haber ya un mínimo de trabajo realizado.

Así mismo se aconseja a los alumnos que presenten su proyecto al certamen de proyectos de la UGR (es parte de la puntuación) o a cualquier otro concurso cuyas condiciones cumpla. La participación en el concurso se considerará positivamente, pero la nota obtenida en esta práctica no será definitiva hasta que no se compruebe que a la terminación del cuatrimestre se siguen cumpliendo las condiciones del concurso.

Entrega de la práctica

Subir los fuentes a GitHub y añadir al fichero el nombre del proyecto, el autor y un enlace al mismo y hacer un pull request.

Cada proyecto tendrá su propio repositorio en GitHub. La explicación del proyecto deberá incluir las herramientas que se proyecte que se van a usar y las razones para hacerlo, una explicación de la infraestructura de la aplicación y los pasos que se van a dar para llevarla a cabo. Esta documentación se incluirá en ficheros Markdown. Esta descripción de la aplicación irá evolucionando con los diferentes hitos, según se vaya avanzando en el proyecto.

También se incluirá en esta descripción los otros proyectos/compañeros con los que se colabora y cómo se piensa, a priori, coordinar el trabajo con ellos, si a través de un proyecto en Slack, con un proyecto madre que los agrupe a todos, o cualquier otro método de colaboración que se piense usar.

Si se quiere incluir material adicional externo al proyecto, pero que puede ser útil para complementar la entrega de la práctica, por ejemplo capturas de pantalla de la configuración del repositorio, se aconseja que se haga una rama con el nombre del hito, por ejemplo hito1 y se indique en la entrega de la práctica con un enlace a la misma.

Valoración

Se recuerda que es prerrequisito haber llevado a cabo el 80% de los objetivos del primer tema de la asignatura. Hasta que no se cumplan, no se evaluará este hito del proyecto. Si se cumplen los requisitos, la puntuación será: