Respuesta simple … no. He estado en desarrollo de software durante casi 20 años y puedo contar con una mano en los proyectos donde las especificaciones no fueron un problema.
Se han escrito innumerables libros y publicaciones sobre el tema, y obtener una buena especificación es nada menos que una forma de arte. Peor aún, el tiempo que toma es significativo, de modo que nadie quiere invertirlo ANTES de aterrizar un proyecto Y AÚN … si tiene el proyecto, es muy probable que ya haya cerrado alguna cotización de precio, entonces …
Los métodos son muchos, pero esto es lo que he encontrado:
- ¿Qué tan difícil es, cuánto tiempo tomaría y qué precio para los ingenieros de software decentes crear un sitio web como Medium.com?
- ¿Por qué el software es siempre más lento que el hardware? ¿Cuál es la línea fina entre software y hardware?
- ¿Cuál es un mejor trabajo: ser gerente o ingeniero de software?
- ¿Qué es el 'marco' en ingeniería de software?
- ¿Qué es KRA en términos de pruebas de software?
1. Comience con “historias de usuarios”. Estos deben ser no técnicos, escritos desde el punto de vista de los Usuarios sobre lo que quieren poder hacer.
Deben usar lenguaje descriptivo corto, viñetas, etc., no párrafos.
Pueden ser escritos por el cliente o descifrados a través de conversaciones, pero deberán elaborarse a través de intercambios significativos entre el cliente y el líder del proyecto. ¡Iterar!
2. Cree marcos de interfaz basados en las Historias de usuario y vuelva a HABLAR con el cliente. ¡Iterar! Esta fase es invaluable para ayudar a todos a comprender lo que se espera y asegurar que haya un flujo de trabajo planificado para realmente acomodar los resultados esperados.
3. Cree una descripción técnica basada en los activos anteriores, nuevamente con lenguaje técnico conciso, viñetas y listas que cubran:
– estado comprendido del sistema, usuario, estado, etc. antes de la interacción
– todo el intercambio de datos durante, incluidos los requisitos, validaciones, casos de error y mensajes, cambios de interfaz, etc.
– estado comprendido después de la operación, incluida la persistencia de datos, estado, mensajes
Obviamente, desea reducir el tiempo dedicado a producir documentos SIN EMBARGO, es mi experiencia que:
A) el simple hecho de tener que pensar para producirlos es muy valioso
B) siempre que su equipo realmente aproveche estos documentos, se reducirán las confusiones y las malas interpretaciones
La verdadera pregunta es cuánto de esto se puede / se debe hacer ANTES de ofertar / aterrizar el proyecto y cuánto se puede hacer después.
Mi recomendación es hacer al menos un pase rápido en User Stories AND Wireframes antes de ofertar, ¡se ahorrará a usted y al cliente tiempo, dinero y dolores de cabeza!