Priorización de Requisitos Software con MoSCoW
Tras el artículo anterior acerca de la importancia de la educción de requisitos software, hoy vamos a tratar la priorización de los requisitos software con una técnica denominada MoSCoW. Actualmente, nos encontramos en un contexto en el que el “time to market” y aportar valor a negocio son dos puntos muy importantes a la hora de desarrollar un producto software. Es por ello, que priorizar aquellas funcionalidades que aportan mayor valor al producto, es una actividad necesaria que debe de realizarse y visibilizarse a todo el equipo.
Estrategias de priorización
Cuando se comienza a desarrollar el software, es muy importante abordar el orden de implementación de los requisitos siguiendo una estrategia. Existen distintas estrategias, como por ejemplo guiarse por el riesgo que se asume en cada requisito, guiarse por el valor que aporta al negocio o simplemente impuestas por dependencias de otros sistemas o por los recursos disponibles.
Además de estas estrategias, la priorización es importante cuando el proyecto se desvíe de la estimación inicial, para poder sacar fuera de alcance aquellos requisitos de mas baja prioridad y que no son clave para el éxito del producto software, postponiendolos para fases posteriores.
Esta priorización debe de realizarse tanto si el producto ya está construido y estamos evolucionándolo, como si es un sistema nuevo y decidimos construir un Producto Mínimo Viable (MVP). En este último caso, es muy importante la priorización, ya que el objetivo es construir un nuevo producto software en el menor tiempo posible y con las funcionalidades necesarias para poder ser viable. En caso de no acertar con el modelo de negocio, siempre es más fácil reorientar la estrategia sin haber perdido el tiempo en funcionalidades que no aportaban lo suficiente. ¡Falla rápido, falla barato!
Técnica de Priorización de Requisitos MoSCoW
Comúnmente, se emplean valores numéricos para priorizar los requisitos, siendo 1 la prioridad más baja y 5 la mas alta. Sin embargo estos valores no tienen un significado real ni semántico para los involucrados. La técnica de priorización de requisitos MoSCoW, ayuda a todo el equipo a entender las necesidades reales del sistema software y entender la criticidad de cada funcionalidad.
MoSCoW es un acrónimo, cuyas siglas en inglés significan: Must have, Should have, Could have, and Would like but won’t get. Cómo se puede observar, esta clasificación no se trata simplemente de poner un valor numérico a cada uno de los requisitos/historias de usuario, si no que aporta un valor semántico de lo que realmente es importante.
Comúnmente cuando se definen los requisitos y se analizan, se suele pretender que todo es de prioridad alta. Si todos los requisitos son prioritarios, en realidad nada es prioritario. Por ello esta técnica propone que en este análisis se dividan los requisitos en cada uno de estos 4 grupos representándolos con una letra:
- M — MUST: Se tratan de requisitos totalmente imprescindibles que tienen que estar incluidos ya que si no se llevan a cabo el proyecto no puede salir adelante.
- S — SHOULD: Se tratan de requisitos que deberían de llevarse a cabo si es posible, es decir, son requisitos importantes y de gran valor para el producto que se está construyendo. Estos requisitos no se tratarían de stoppers para poner el proyecto en marcha si no se llegan a tener a tiempo. También conocidos como requisitos “Nice to Have”.
- C — COULD: Se tratan de requisitos que podrían incluirse si no afecta a nada más, es decir, son requisitos que sería bueno tener y podrían incluirse porque no cuesta demasiado implementarlas. Estos requisitos podrían quedarse en el backlog para que en una una fase posterior se implementen.
- W — WON’T: Se tratan de requisitos que no se implementarán en la fase que se está planteando, pero lo pueden estará en un futuro. Estos requisitos son excluidos del alcance, pero no por ello no son importantes, simplemente que no aplican en la fase que te encuentras.
Conclusión
Priorizar es una actividad complicada, pero no por ello debe descuidarse. Para responder que requisitos priorizamos se debe de intentar medir el valor que aporta al producto, el coste real de implementación asociado, los recursos disponibles para llevarlo a cabo, la complejidad del problema y el riesgo que estamos dispuestos a asumir.
Técnicas como MoSCoW ayudan a todos los involucrados en el proyecto a definir la importancia y las razones por lo que el requisito a implementar es importante. De esta manera todos los miembros del equipo se sienten alineados con los objetivos a conseguir.
Si estás interesado en conocer más técnicas de priorización te aconsejo leer el siguiente artículo.