Identificar los requisitos funcionales
Los requisitos se conocen comúnmente como funcionales o no funcionales. Los requisitos funcionales describen lo que debe hacer la solución o sus comportamientos y los requisitos no funcionales comúnmente describen aspectos de la solución que no son comportamientos, como los requisitos de rendimiento. En este tema se tratan los requisitos funcionales.
Cada requisito funcional debe capturar claramente el quién, el qué y el por qué del requisito. Si el requisito es demasiado grande, debe dividirse en partes más pequeñas.
Ejemplos de requisitos funcionales
Los siguientes escenarios describen ejemplos sencillos de requisitos funcionales:
Como usuario de ventas, necesito poder cerrar una oportunidad como perdida y después capturar por qué se perdió para poder mejorar nuestras tácticas de venta en el futuro.
Como jefe de ventas, necesito poder aprobar un descuento en una oferta para poder reducir el precio total y ofrecer un descuento al cliente.
Como contable en plantilla, quiero que se me impida cerrar un lote que tenga elementos pendientes para no tener que volver a abrirlo más tarde.
Estas situaciones comunican el quién, el qué y el por qué de un requisito.
Los siguientes ejemplos son requisitos mal redactados:
Las oportunidades se pueden ganar o perder.
El precio debe reflejar los descuentos.
En la lista de elementos de lote, al seleccionar el botón Cerrar lote, que es el tercer botón de la izquierda, se debe cerrar el lote si no existen elementos que impidan que ocurra.
Cuando se recopilan requisitos de cualquier variedad, es útil trazar un mapa hacia el proceso en lugar de simplemente enumerar las características y funciones. Cree una historia para un usuario y describa cómo utilizará con éxito el sistema que está diseñando. Puede escribir o dibujar en una pizarra, usar una herramienta para crear un diagrama del proceso o usar cualquier método que funcione para el equipo en la etapa de planificación en la que se encuentra. Su equipo diseccionará las piezas en elementos accionables más pequeños más tarde.
Criterios de aceptación
Es importante tener una comprensión clara de cómo se considera satisfecho un requisito. A menudo, documentar la satisfacción ayudará a determinar si el requisito está suficientemente detallado y es del tamaño correcto. Este enfoque también es útil para los equipos de prueba cuando evalúan la implementación del requisito. Finalmente, la satisfacción del requisito debe revisarse con la parte interesada para garantizar que sea precisa, ya que puede servir para prevenir el desplazamiento del ámbito. El arquitecto de soluciones debe buscar criterios de aceptación que no se puedan cumplir y luego negociar para llegar a un compromiso que sea alcanzable.
Capturar excepciones
Por lo general, un requisito simple, como cerrar una transacción, puede tener una ruta directa y solo algunas rutas de excepción. Asegúrese de buscar e identificar estas excepciones al capturar la ruta correcta. A medida que avance en el diseño, no se centrará en las excepciones. Deben manejarse como tales, pero, si no sabe que existen, tendrá que volver a trabajar el diseño más adelante. Además, recuerde capturar con qué frecuencia se produce la excepción, ya que algunas excepciones se manejan mejor por procedimiento o proceso, en lugar de mediante la personalización del software.
Evitar el desplazamiento del ámbito
Si no se controla, cada proyecto agregaría un ámbito a partir de su previsión y presupuesto. El arquitecto de soluciones debe estar atento al buscar los requisitos que están fuera del ámbito de los supuestos originales. El proceso de gobernanza del proyecto debe usarse para evaluar cómo controlarlos una vez identificados. A menudo, los requisitos fuera del ámbito que se aceptan para su inclusión pueden dar lugar a una orden de cambio, dependiendo de la estructura contractual del proyecto. Ignorar el hecho de que el ámbito está aumentando puede resultar fácilmente en que el proyecto falle.
Ejercicio: Buscar los requisitos funcionales
Revise los equipos de Woodgrove Bank e identifique la posible superposición entre los equipos en la funcionalidad que necesitarán para hacer su trabajo.
Crecimiento empresarial y gestión de activos: cuentas comerciales con menos de 1000 millones USD en transacciones anuales. En este contexto, crecimiento se refiere a los préstamos que se usan para reinvertir en la empresa. Estos clientes comparten un grupo de directores de cuentas; no están asignados a uno de ellos.
Fortune 500: a cada cliente de esta división se le asigna un director de cuentas sénior como su contacto principal para todos los asuntos bancarios. Cuando la gestión de una empresa recae en esta división, la empresa permanece en ella, incluso aunque salga de la lista Fortune 500.
Gestión de cartera de grupos: este equipo gestiona las cuentas primarias y secundarias de empresas con múltiples organizaciones bajo un paraguas común.
Desarrollo de nuevo negocio: esta división se ocupa principalmente del marketing para lograr nuevo negocio. Cuando una cuenta se ha aprobado y activado, se transfiere al equipo de gestión adecuado.
Sector público, Administración pública y Educación superior: Woodgrove Bank es la entidad de crédito preferida de muchos gobiernos soberanos de todo el mundo, así como de universidades privadas. Este equipo también atiende al grupo de organizaciones sin ánimo de lucro de alto volumen clientes del banco.
Créditos al consumidor: este equipo es el más pequeño de todos, ya que Woodgrove está especializado en productos comerciales. No obstante, la concesión de créditos al consumidor de alto volumen está disponible, aunque se estudiará caso por caso. Este servicio no se publicita a clientes potenciales externos, sino que principalmente lo utilizan los ejecutivos de clientes corporativos.
Gestión de relaciones: este equipo está compuesto por miembros de cada uno de los otros equipos, lo que garantiza una experiencia uniforme cuando las cuentas se transfieren de un equipo a otro o se producen interacciones de otros tipos. Este equipo también define las prácticas recomendadas para los usuarios.