En base al proceso y los elementos descritos en los puntos anteriores, se diseña un modelo de trabajo acorde a las necesidades de TCK y sus proyectos.
El proceso de Calidad y, por lo tanto, el modelo que se va a describir, va a organizarse en diferentes fases, que se van a tratar con detalle en los siguientes puntos. Estas descripciones, ordenan la manera de trabajar a lo largo de los sprints, dentro de un proyecto.
En los siguientes puntos se define el marco de trabajo y se tratan las diferentes fases del ciclo de vida del desarrollo de los proyectos de TCK.
Dentro de cada fase, se describe una serie de pautas y puntos a seguir, en forma de reunión, para que la interlocución entre las diferentes personas que integran los proyectos se realice de la forma adecuada y se pueda cerrar la fase con total garantía.
Es la fase inicial. En ella se va a diseñar el mapa de proyecto que se va a seguir a lo largo de los sprints a realizar y los requisitos que se van a utilizar en el resto de fases.
Además, se diseña el sistema de ramas, entornos y despliegues que se va a utilizar en el proyecto.
Este mapa de proyecto se basa en los siguientes puntos, que se deben de obtener en una etapa temprana de inicio de proyecto:
Formalización: Dentro de la formalización de un proyecto se deben realizar los siguientes puntos:
* **Kick-Off con cliente**: donde se capturan las ideas principales o incluso, hay una nube de ideas donde capturar la información más importante.
* **Workshops**: se realizan una serie de “encuentros”, donde se van formalizando las ideas iniciales y se las da forma para convertirlas en entregables o ideas a presentar.
* **Estrategia**: las ideas se ordenan en forma de documento, presentación o similar donde se va cerrando el alcance del proyecto.
Planificación: Dentro de la planificación, existen los siguientes puntos que se deben de seguir: * Pautas metodológicas: se capturan las pautas dentro de la metodología que más se adecuan al proyecto, puede ser no necesario el utilizar todas las disponibles. * Herramientas: se elabora un sistema de las herramientas que se van a utilizar, en qué lenguaje vamos a desarrollar o que le vamos a aportar al cliente y en qué formato. También se contempla la automatización. * Necesidades: se acuerda entre TCK y cliente, qué necesidades son las primordiales para llevar a cabo de manera adecuada el proyecto.
Priorización: De cara a la priorización, es importante seguir los siguientes puntos: * Cierre de Fechas: se cierran las fechas previstas para el inicio y finalización del proyecto, además de los hitos que se quieran cubrir. * Acuerdo de Sprint: en base a las fechas, acordamos la realización de Sprints más o menos largos, sin pasar las cuatro semanas máximas por cada uno. * Entregables: se marcan los hitos principales, en base a las fechas y qué entregables, con valor de negocio, se van a ir realizando a lo largo de estos sprints. Estos marcan los KPIs o controles de Calidad que se van a utilizar en el proyecto. Se hace un esqueleto del documento funcional a presentar y de los casos de prueba.
Una vez que obtenemos toda la información de los puntos anteriores y se han realizado las reuniones correspondientes, se definen y describen, por todas las áreas, los requisitos del proyecto, que cerrarán y darán forma al mapa de proyecto definitivo y serán la base para el trabajo en las siguientes fases.
La primera reunión interna que hay que realizar, es la reunión de inicio (que será igual que la reunión de inicio de sprint, pero con una entidad mayor). En ella, vamos a realizar la apertura del sprint 0 del proyecto, además de organizar todas las tareas e intentar adecuar, entre todos, el posible backlog que se irá realizando en posteriores sprints.
La idea principal de la reunión, es que todo el equipo del proyecto se siente durante un tiempo estipulado, se acuerden pautas de trabajo y se ordene el camino para que todos lo sigan y tengan la misma idea en la cabeza.
Entre todos, se toman las prioridades y necesidades de negocio del cliente, se determinan cuales van a ser las funcionalidades que se incorporan al primer sprint y se estiman, si fuese necesario.
Para esta reunión, es necesario, tal y como se puede observar en los puntos anteriores, tener una base para la realización de los requisitos que es el fín de la misma.
En esta reunión es totalmente obligatorio que esté presente todo el equipo de trabajo.
Para realizar la construcción de requisitos del proyecto, se debe de realizar una especificación de requisitos adecuada y que cubra una serie de características:
Además, al realizar estos, se deben de describir utilizando la Plantilla Unificada de Requisitos de The Cocktail.
De manera general, existen una serie de tipos de requisitos que deben de seguirse en todo proyecto y nos sirven para poder obtener toda la información para iniciar el proyecto de manera adecuada:
En base a diferentes aspectos, los requisitos se pueden categorizar en tres opciones:
El mapa de proyecto, se enfoca en la planificación que se va a realizar en las fases posteriores, marcando diferentes hitos que tienen unas fechas de entrega ya cerradas. Habitualmente, será un cronograma donde estén marcados estos hitos y podamos valorar qué tiempo nos va a llevar un proyecto en sí y cómo vamos a darle forma a lo largo del tiempo del mismo.
Dependiendo de la capacidad del proyecto y del tiempo destinado al mismo, el mapa de proyecto no es un elemento estático, si no, que se debe de ir revisando periódicamente, para ajustarlo y actualizarlo en base a las necesidades que se vayan teniendo.
El mapa de proyecto está cerrado cuando se obtiene toda la información suficiente para generar los requisitos del proyecto, además de información extra que nos sirva para avanzar a la siguiente fase con toda la información al respecto.
Un mapa de proyecto debe de contener:
Toda la información debe de estar incluida en la unidad de equipo abierta previamente para organizar toda la documentación del proyecto.
Una vez hemos cerrado la entrega del mapa de proyecto con su información al completo y los requisitos realizados, pasamos a la fase de definición, donde comenzamos a invertir el esfuerzo en la definición de las historias de usuario y como entregable, la realización del documento funcional con toda la información completa y detallada de lo que va a ser el proyecto.
Todos los puntos que entran dentro de esta fase se basan en toda la información recabada a lo largo de la fase de inmersión.
En esta fase de definición y entrando más en detalle, se deben de realizar los siguientes puntos, antes de continuar a la siguiente:
Historias de usuario: Se definen las historias de usuario entre todas las áreas, respetando y siguiendo los requisitos completados en la fase anterior. Como entregable a cliente, se puede utilizar la Plantilla Unificada de Historias de Usuario de The Cocktail.
Apartado técnico: Dentro del documento funcional, existe un apartado técnico que cubre estrictamente las necesidades de tecnología y define la arquitectura a seguir.
Criterios de aceptación: Se cierran los criterios de aceptación con el cliente, que los usará posteriormente para certificar los entregables.
Documento funcional: Se completa el documento funcional con toda la información de los puntos anteriores y la referencia al documento de historias de usuario. El documento funcional integra toda la información referente a los requisitos con total detalle y que historias de usuario los cubren.
Por definición, la historia de usuario es una representación de un requisito utilizando una frase corta en lenguaje coloquial y entendible, que no sea técnico.
Las historias de usuario deben de cubrir una serie de características para que sean lo más adecuadas posible:
La historia de usuario queda terminada cuando esté dispuesta toda la información referente a la misma.
Dentro del documento funcional, debe de existir un apartado técnico que cubra las especificaciones definidas. Este apartado técnico debe de contener lo siguiente:
Cada historia de usuario debe de contener unos criterios de aceptación, que al fin y al cabo son las acciones que deben de cubrir el comportamiento correcto de la misma. Deben de cubrir las siguientes preguntas:
Los criterios de aceptación se describen mediante tres puntos clave: un contexto, una respuesta y una consecuencia esperada.
Los criterios de aceptación deben de tener el siguiente formato:
Dado <usuario y acción a realizar> Cuando <acción esperada> Entonces <acción que realiza el sistema>
Por ejemplo:
La generación del backlog se realiza tras la aprobación del mapa de proyecto y la definición de las historias de usuario. Cada área tendrá diferentes tareas a realizar sobre esas historias de usuario y por lo tanto deben de transcribirse en el mismo.
Una vez que se realiza la priorización de los elementos de trabajo, estos, se subirán al sprint que comience para que se pueda empezar a realizar el trabajo en cada uno de ellos. Esta priorización marca las necesidades de negocio y del producto en sí.
En esta fase también se continúa con la elaboración y ampliación del esqueleto de casos de prueba que posteriormente vamos a cerrar.
Dentro del marco de trabajo, el backlog marca hitos en base al sprint en el que estemos trabajando. La priorización de los elementos es de suma importancia para comprobar cuales tienen que realizarse en primer lugar o cual puede ser posterior (esto es muy útil de cara al trabajo con defectos).
La priorización debe de realizarse en una reunión de priorización y planificación donde, entre todas las áreas, se deben de considerar los elementos que van a ser entregados en ese ciclo de tiempo.
La priorización que se lleva a cabo en la herramienta de trabajo que se utiliza en TCK es la siguiente:
El documento funcional debe de ser el primer paso a la hora de comenzar el desarrollo del proyecto y debe de marcar una hoja de ruta a seguir. Para que un documento funcional sea lo más correcto posible hay una serie de puntos importantes que se deben de tener en cuenta:
Cuando trabajamos con historias de usuario es totalmente imprescindible el marcar dos definiciones a lo largo del proyecto para las mismas. Estas son, la definición de Ready (o “listo”), y la definición de Done (o “cerrado”). En los siguientes puntos vamos a dar una serie de criterios para verificar y acordar el marcado de estas dos definiciones.
Para realizar el “Definition of Ready”, debemos de apoyarnos en una serie de criterios que pueden ser similares a los siguientes:
Prácticamente la definición más importante de un proyecto es la definición de cerrado para las historias de usuario. Sin esta definición, nunca sabremos cuando damos las cosas por completadas y por lo tanto, el sprint jamás podría cerrarse o finalizarse.
Se pueden aplicar los siguientes criterios para marcar esta definición:
La fase de implementación es la fase de desarrollo (no solo técnico, si no también funcional o aplicado a cada área) propiamente dicha. Este desarrollo se basa en la documentación funcional y en las historias de usuario. Además, de toda la información que va proporcionando el resto de áreas para que el desarrollo sea completo.
Cada área, debe de participar en el desarrollo de las historias de usuario que le apliquen. Desde tecnología, se comienzan a desarrollar las historias de usuario tanto a nivel de back como de front. Puede existir la posibilidad de que se creen varios sprint en los que existan fases de desarrollo en los que no intervenga tecnología, siendo completados por el desarrollo del resto de áreas.
En esta fase, se deben de completar los siguientes puntos, para poder tener la garantía suficiente de que se ha realizado de una manera correcta:
Una vez que se completan todos los puntos anteriores, se puede dar el paso a la siguiente fase. En la entrega de esta fase, la demo, es cuando se da el visto bueno final a todo lo realizado.
El plan de pruebas que se especifica en esta fase, está cumplimentado con una serie de casos de prueba, que a su vez, agrupa una serie de pasos de prueba.
De cara a realizar una serie de buenas prácticas para crear un buen plan de pruebas, se deben de cumplir los siguientes puntos:
La reunión de ajuste de sprint es opcional y permite, a mitad del sprint aproximadamente, el realizar los ajustes necesarios si existe una desviación conocida o que prevemos que puede afectar la entrega final a cliente.
En esta reunión, se trata la desviación, se inicia una estrategia para solucionarla y si fuese necesario, se comunica a cliente lo antes posible para que las expectativas finales se adecuen al resultado propuesto.
En esta reunión es totalmente obligatorio, si se realiza, que estén las áreas afectadas.
Una vez se supera la fase anterior, comienza la fase de validación, donde existe una integración con el entorno de PRE y se realiza la ejecución del plan de pruebas.
Esta ejecución nos da el resultado positivo o negativo de los elementos de trabajo y se abren los defectos correspondientes que serán reportados al área de desarrollo para su resolución.
Estos defectos se introducen en el backlog, correctamente priorizados y se irán metiendo al sprint de manera progresiva y en orden de prioridad, para completar, cuanto antes, los críticos. Cuando el defecto se soluciona, se vuelve a ejecutar el caso de prueba que había quedado fallado y se comprueba que, efectivamente, todo funciona correctamente.
Esta etapa se da por finalizada cuando todas las historias de usuario, que estaban priorizadas, tienen un funcionamiento correcto y adecuado y son aptos para continuar con la siguiente fase.
Para que esta fase se realice de manera correcta, es necesario la realización de los siguientes puntos:
El informe de entrega de versión, es uno de los puntos más importantes de cara a realizar el aviso a cliente para que pueda certificar. Este informe, debe de contener los siguientes puntos:
Historias de usuario: Una sección de las historias de usuario y criterios de aceptación que se van a entregar en este sprint y que el cliente puede certificar y ver en el entorno de QA.
Historias de usuario en Gherkin: Una sección con la traducción de las historias de usuario pasadas a Gherkin que cubren el test unitario y de integración realizado.
Resultado del plan de pruebas: Sección donde aparecen estadísticas de la última ejecución del plan de pruebas.
Resumen: Se explica el resumen total del proceso que se ha seguido en el sprint y si existiese algún tipo de problema detectado y que se está trabajando en ello, se debe de especificar aquí para que el cliente tenga toda la visión de la entrega.
Tras la validación por parte del área de calidad y en el caso de que en la misma se encuentren un porcentaje alto de defectos críticos o bloqueantes, es necesario realizar una reunión de reorganización.
En esta reunión, se marcan las pautas a seguir para la resolución de estos defectos para poder solventar la entrega de la versión que se va a entregar en el sprint.
En esta reunión es totalmente obligatorio que estén las áreas afectadas.
La fase de certificación comienza con el despliegue de la versión en el entorno de QA. De esta manera, los clientes pueden realizar una certificación, basándose en los criterios de aceptación, para comprobar que lo que se les entrega cumple con las expectativas que buscaban.
Para que esta fase se realice de manera correcta, se deben de seguir los siguientes puntos:
Una vez que se cumplan estos puntos, el sprint se da por finalizado y obtenemos una versión estable y garantizada para el usuario final.
La entrega se inicia cuando se captura la versión estable y certificada por cliente y es desplegada al entorno de producción para ser entregada a los usuarios finales.
Antes de dar acceso a los clientes finales, es necesario que el área de QAP realice una regresión mínima que garantice que todo se ha desplegado de manera correcta y adecuada.
De cara a mantener la sostenibilidad del tiempo por parte de las diferentes áreas de trabajo, se acuerda la unificación de una única reunión para la realización de los tres hitos finales del sprint.
La retrospectiva, permite interactuar entre todos los miembros del equipo, mediante las siguientes cuestiones:
Cada persona escribirá en un post-it las respuestas que necesite y se ordenarán en la pizarra. De esta manera se sacarán las medidas correctoras y mejoras para los siguientes sprints (o proyectos, si es la última retrospectiva del mismo). En el caso de que no sea la última retrospectiva del proyecto, se realiza también un cierre de sprint, ordenando las tareas en el siguiente y priorizándolas adecuadamente y se procede a abrir el siguiente, comenzando el trabajo desde ese mismo momento.