En el desarrollo de un producto de software y más, si trabajamos con metodologías agiles, se debe tener en cuenta que los requerimientos o historias de usuarios deben ser priorizados. Existen algunas herramientas que nos ayudan en estas priorización, a continuación mencionamos alguno de ellos:
Priorización basada en el valor:
Se puede establecer la priorización de requerimientos basada en el incremento de ingresos, mejorar el servicio al cliente, disminuir los costos, pero profundizaremos un poco más en el valor de la ecuación. Así como hay impactos positivos, también se puede tener impactos negativos de no tomar acción.
El establecer el valor puede estar basado en un retorno sobre la inversión positivo (ROI – Return Over Investment), por lo cual el costo de establecer una determinada funcionalidad puede ser evaluada en base al ROI.
Otro punto que se puede considerar asociado al valor es el riesgo de la implementación, si el implementar una funcionalidad va contra la estabilidad de la aplicación, esta no se debe implementar.
Observamos que el valor de una funcionalidad es una ecuación que puede considerar varios valores: ingresos, costo, riesgo, penalidades, entre otros.
Value Stream Mapping
El Value Stream Mapping es una técnica de priorización de requerimientos que permite visualizar todo un proceso, permite detallar y entender completamente el flujo tanto de información como de materiales necesarios para que un producto o servicio llegue a un cliente, de esta forma se identifican actividades que no agregan valor al proceso para posteriormente iniciar las actividades necesarias para eliminarlas.
Este concepto se ha tomado de los procesos de manufactura Lean para el desarrollo de software. El análisis del proceso inicia y termina con las actividades que realiza un cliente, es decir, todo el proceso se visualiza desde la perspectiva del cliente.
Debido a que los principios Lean enfatizan el eliminar desperdicios y proporcionar el mayor valor al cliente en el menor tiempo posible, establecer el mapa de valor basado en la perspectiva del cliente es una buena opción para priorizar requerimientos.
MoSCoW
Este método de priorización de requerimientos es conocido y está basado en priorizar las funcionalidades utilizando: “mush haves” (debe estar) y “should have”(recomendable que esten). A continuación los elementos de MoSCoW:
- Must Have: todas las funcionalidades en este grupo deben estar y si no, el sistema no funciona.
- Should Have: esta lista de funcionalidades es importante, pero se pueden omitir.
- Could Have: funcionalidades que pueden mejorar el sistema, pero el tiempo de desarrollo no es crítico.
Want to Have: conjunto de funcionalidades que sólo son útiles para un grupo de usuarios y el valor es mucho menor que los anteriores grupos de funcionalidades.