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, creando los hitos para 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 el repositorio 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 sus funcionalidades 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. Lo importante en esta asignatura es la infraestructura, por lo que conviene que se piense en un servicio o microservicio asequible de forma que dé tiempo a todo.

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 un servicio web para gestionar un negocio de silvicultura, así como el servicio de geolocalización de IoT del compañero McKenzie, en la misma clase.

Si el proyecto se hace a petición de una empresa u organismo, o si forma parte de un trabajo fin de grado, 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 incluirá 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 concertar 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. Si no existe tal cliente, las historias tendrá uno que documentarlas y escribirlas, usando, por ejemplo, los proyectos de GitHub.

Usar un repositorio de forma correcta no sólo permite organizar el trabajo de desarrollo de forma más eficiente, sino que también contribuye a que sea más fácil colaborar con él y a la creación de buenos hábitos de trabajo colaborativo. Hay una serie de buenas prácticas, que incluyen las comentadas en el hito anterior, pero que además, en este hito, deberán de tener en cuenta lo siguiente.

Avanza la tarea #1

Estas buenas prácticas se tendrán que seguir en todos los hitos subsiguientes del proyecto, y no hacerlo se penalizará.

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 los tipos de 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, pero en ningún caso se incluirá explícitamente como un apartado “hito” en el proyecto. El cumplimiento de los hitos va marcado por el cierre de los milestones del proyecto en GitHub.

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 o Telegram, 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 activen las páginas de GitHub y se incluya ese material en el directorio correspondiente.

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á: