Gestionar proyectos de desarrollo de software con Notion

5 min
Gestionar proyectos de desarrollo de software con Notion

Llevo varios años considerándome fan de Notion. Aunque no me gusta casarme con ninguna herramienta, esta es una de las que más flexibilidad me ha dado, sintiéndome en todo momento cómodo con ella. En un artículo anterior, os mostré varios consejos que podéis seguir si queréis aprender a utilizar Notion de una forma más profesional. Durante este post pondremos en práctica muchas de las nociones que ya expliqué en ese artículo con el fin de poder gestionar proyectos de software con Notion. ¿Por qué usar Notion cuando existen centenares de herramientas dedicadas para cada una de las funciones que componen el desarrollo de software? Bien, aquí algunas ventajas:

  • Si ya usas Notion para otros menesteres, tendrás toda la información centralizada en un mismo lugar.
  • Invitar facilmente a otros usuarios, clientes por ejemplo, para que poder también estar al tanto de los avances.
  • Publicación de ciertas páginas, documentación por ejemplo, para que cualquiera con un enlace a la misma pueda echarle un ojo.
  • Flexibilidad de poder orientar los procesos de desarrollo en cualquier dirección y de forma personalizada sin tener que seguir las directrices que te marcan algunas herramientas dedicadas.

En contra, deberemos preparar nosotros las diferentes páginas, lo cual será engorroso si todavía no somos usuarios avanzados de la herramienta. Pero para eso he planteado este artículo, para explicar cómo crear espacios de trabajo para gestionar proyectos de desarrollo en Notion.

No se empieza la casa por el tejado

No se puede empezar a gestionar un proyecto si no tenemos un proyecto. Eso está claro. Antes de comenzar a seleccionar las herramientas que vamos a utilizar, debemos conocer la propia naturaleza del mismo: tecnologías que se van a usar, tamaño del equipo o equipos, protocolos de la empresa, filosofía de los gerentes, etc.

A grandes rasgos y resumiendo mucho, las etapas del ciclo de vida del software son 5:

  1. Análisis. El fin de esta etapa es conocer al máximo el producto que se va a programar, evitando a toda costa las ambigüedades.
  2. Diseño. Una vez conocido al fondo el proyecto, se diseñan los primeros prototipos y maquetas con parte del diseño y funcionalidades finales.
  3. Implementación. Para muchos, la fase más importante de todas en la que se desarrolla el software pedido.
  4. Pruebas. En esta etapa se comprueba que el software cumple con los requisitos establecidos por el cliente.
  5. Mantenimiento. En esta fase, que suele ser omitida erróneamente en muchas planificaciones, se solucionan algunos problemas encontrados a posteriori, se desarrollan nuevas funcionalidades o se actualizan librerías.

En un principio, este ciclo de vida se ejecutaba en cascada (siguiente ilustración). Con el tiempo, se fue comprobando que esta metodología de desarrollo era incompatible con algunos grandes proyectos en los que se había utilizado hasta ahora. Esto se debe a que algunos errores de análisis no eran identificados hasta la etapa de implementación, lo que hacía sumamente costosa su solución. En contrapartida, surgieron nuevas metodologías como las ágiles, que llegaron para adaptarse a otra clase de proyectos.

Diagrama de una metodología de desarrollo en cascada

Una vez conocidos los principales rasgos de nuestro proyecto, ya podemos decidir si elegiremos o no Notion como herramienta de desarrollo. Por lo general, no elijas Notion si:

  • Tienes a un gran grupo de personas trabajando de forma simultánea en el proyecto. Tener tantas páginas finalmente puede llegar a ser engorroso.
  • Necesitas que el cliente visualice algunas páginas del repositorio y no tienes contratado un plan empresarial de Notion.
  • El proyecto requiere de una metodología muy estricta que no da pie a la flexibilidad.

En resumen, los proyectos medianos y pequeños son los que mejor se van a adaptar a esta herramienta. El no tener que depender de varios software y poder hacerlo todo directamente desde una sola aplicación agilizará el desarrollo de software.

Dashboard del proyecto

Obtén esta plantilla de Notion

Durante todo el post voy a utilizar como ejemplo el espacio de trabajo que tengo para el desarrollo de mi página web personal, esta que estáis utilizando ahora mismo. Al recaer sobre mí las funciones tanto de cliente como de desarrollador, la metodología que suelo utilizar en estos casos suele ser lo más ágil e informal posible, prescindiendo al máximo de los formalismos y la burocracia.

Por lo general, me gusta tener una columna en el dashboard con páginas que pueden resultar de interés para el proyecto. La primera de ellas es información sobre el proyecto como fecha de inicio, descripción, problema que resuelve o sistema que pretende sustituir. En la página de requisitos se van anotando nuevas funcionalidades que me gustaría introducir en la aplicación. Al tratarse de una metodología de lo más ágil, los requisitos son cambiantes, adaptándose a mis requerimientos y gustos. En el siguiente pack de páginas, se guarda información más técnica como tecnologías que se utilizan o claves de APIs y herramientas. Por último, información útil tanto para el usuario final como para otros colaboradores que ayudan en el desarrollo, como la documentación del proyecto.

info-proyecto.png

Como he explicado antes, solo se mantiene la información relevante que puede ser de utilidad en un futuro. Pero lo que más llama la atención de todo el dashboard, es la tabla central con cada una de las versiones que se desarrollan y despliegan de la página web. Para incluir esto, solo hay que añadir una tabla con varias propiedades, en mi caso cuatro: número de la versión, nombre descriptivo, estado y fecha de despliegue.

A esta vista tradicional de tabla, le acompaña una vista de calendario, aprovechando la propiedad fecha de despliegue ya comentada. De esta forma, podemos ver en un calendario los diferentes despliegues de versiones que se han realizado y los que están planeados.

calendario-versiones.png

En este caso, se han elegido las versiones como elemento de iteración, pero se puede utilizar cualquier otro, como los sprints. Gracias a la flexibilidad de Notion, tan solo tendríamos que cambiar las propiedades de la tabla a algunas parecidas a las siguientes: número del sprint, nombre descriptivo, estado, fecha de inicio, fecha de fin, fecha de la demo, … En este caso, sería incluso más interesante que antes el uso de calendarios, para representar las diferentes fechas que componen una iteración en Scrum.

Versionado y gestión de features

Una vez dentro de la página de una versión (o sprint, según cómo lo que hayamos decidido), disponemos de una vista con las features que se van a implementar. Justo debajo, una vista de tablero gestiona las diferentes tareas, que están relacionadas con una feature. Por tanto, para esta metodología, cada feature puede tener diferentes tareas asociadas.

info-version.png

En el caso de terminar utilizando sprints, la página de la iteración incorporará una sola base de datos en vista de tablero. En la primera columna se localizarán todas las historias de usuario, que podremos haber dividido o no en subtareas durante la reunión de planificación del sprint. Además de esta base de datos, se pueden incorporar algunas páginas con información de las diferentes reuniones importantes que ocurren durante el sprint, como la demo o la reunión de retrospectiva.

Si encuentra algo mejor, cómprelo

La mayoría de los proyectos en los que he trabajado han sido de índole personal y en la mayoría de ellos no tenía que cumplir fechas, acuerdos o estándares que si se podrían solicitar en proyectos de mayor envergadura. La metodología aquí expuesta no es más que la mejor que yo he encontrado para este tipo de proyectos, aunque lo bueno de utilizar Notion es que podemos ser tan flexibles como queramos.

Maneras de desarrollar software hay miles, aunque muchos equipos se empeñan en utilizar siempre el mismo y no ceder. Estudiar las características del proyecto y entender lo que se va a hacer es crucial para elegir una metodología u otra y Notion nos permite preparar la herramienta de gestión de proyectos que mejor se adapte a las necesidades.