Casos de Uso 2.0 se trata de una práctica para capturar requisitos y guiar la construcción del software. Ivar Jacobson describe en la guía «Use Case 2.0» cómo aplicar casos de uso de una manera ágil y escalable.
Un caso de uso tiene una meta bien establecida, una estructura de historia entendida por todos los involucrados en el proyecto, pero también un conjunto de historias que el sistema debe satisfacer o cumplir, incluyendo la más simple, la cual es la historia más simple que le permite al usuario alcanzar la meta.
Todo esto se puede conseguir a partir del concepto que nos presenta Jacobson, la porción del caso de uso, que es una o más historias seleccionadas de un caso de uso para formar un elemento de trabajo que es de valor claro para el usuario. La porción actúa como un contenedor para todo el trabajo requerido para completar la implementación de las historias seleccionadas. Las porciones de casos de uso son más que requisitos y casos de prueba y evolucionan para incluir las porciones correspondientes a través del diseño, la implementación y las pruebas.
Las porciones de caso de uso:
- Posibilitan que los casos de uso sean divididos en unidades de trabajo más pequeñas e independientemente entregables.
- Posibilitan que los requisitos contenidos en un conjunto de casos de uso sean ordenados, priorizados y tratados en paralelo.
- Enlazan los distintos modelos de un sistema (requisitos, análisis, diseño, implementación y pruebas) usados en el desarrollo dirigido por casos de uso.
Según Jacobson, la receta es sencilla: primero se identifica la función más útil que el sistema debe hacer y nos enfocamos en ello. Luego tomamos esa función más útil y la dividimos en porciones más pequeñas. Y después seleccionamos la porción más importante, una que «viaje» de principio a fin a través del proceso de desarrollo. Con el equipo de trabajo, estimamos el desarrollo y comenzamos a construir. Luego añadimos los casos de prueba previamente definidos para esa porción.
Ahora repetimos esto mismo mientras haya más porciones y más casos de uso que dividir. Así, el sistema lo vamos entregando por incrementos, «cada incremento se construye sobre el incremento previo para adicionar más funcionalidad o mejorar la calidad de lo que se ha hecho antes.
Casos de Uso 2.0 es una práctica liviana, escalable, versátil y fácil de usar. La guía comienza presentando los principios básicos:
- Mantenerlo simple contando historias
- Entender el cuadro completo
- Enfocarse en el valor
- Construir el sistema por partes
- Entregar el sistema en incrementos
- Adaptarse para cubrir las necesidades del equipo
Casos de Uso 2.0 es para todo tipo de sistemas; es para manejar todo tipo de requisitos, incluyendo los no funcionales; puede aplicarse con cualquier estrategia de desarrollo o método; se puede escalar para cubrir todas nuestras necesidades en materia de desarrollo de software.
A lo largo de siguientes posts iré extrayendo de la práctica que propone Ivar Jacobson los aspectos que considero más importantes.