Lo que sugiere está bien desde el punto de vista de los puristas de Ingeniería de Sistemas.
(Habrá algunos devotos Ágiles que piensen que está por encima de la cima ... y solo debes salir y hacer cosas con las críticas habituales, etc.).
Sin embargo, debe tener en cuenta lo que está haciendo y para quién lo está haciendo.
Hacer un proyecto por ti mismo es diferente a hacerlo por alguien más, por dinero.
Cuando trabajas para otra persona (ya sea en una empresa o por contrato), los ÚNICOS medios de comunicación son hablar y escribir. (En última instancia, habrá un producto o resultado que puede evaluarse).
El objetivo de una especificación es intentar reducir el costo de hacer arreglos y cambios que vendrán después. Es posible que haya visto los gráficos que muestran el costo de hacer arreglos en diferentes etapas de un proyecto, es algo así:
Una solución hecha a una idea tonta cuesta $ 1
Una solución hecha cuando la idea tonta se convirtió en una especificación (que tiene que actualizarse) cuesta $ 10
Una solución hecha cuando ha construido un prototipo cuesta $ 100
Se corrigió el tiempo que está haciendo una aceptación antes del envío cuesta $ 1000
Una solución hecha después de que haya enviado y cabreado a sus clientes cuesta $ 10000.
Entonces, lo que escribes en una especificación es bastante importante.
Argumentar que no debe tener ninguna especificación es ingenuo, tonto y probablemente peligroso.
Uno de los mayores problemas que tiene al escribir una especificación es saber cuándo ha ido demasiado lejos. Esto varía según el tamaño del proyecto. Por ejemplo, un proyecto que demore entre 1 y 2 personas alrededor de un año debería tener entre 2 y 4 SEMANAS en total gastado en especificaciones ... que incluye la investigación de factibilidad ... la especificación que deben escribir las personas que realmente lo hacen el trabajo no es un tipo de analista de alto nivel de falutina que no conoce los detalles sangrientos Un proyecto que lleva 10 personas 2 años necesita mucho más tiempo.
Ahora para algunos comentarios sobre sus diversos puntos:
SÍ, escribe esto. Manténgalo en 1-2 párrafos, 1/2 página máx.
TAL VEZ. Solo si agrega valor a todo lo demás.
ESENCIAL. Muestra TODAS las entradas y salidas. Muestra contexto. Puede (y debe) dedicar una cantidad de tiempo razonable a esto.
- Factores críticos del éxito del proyecto
TAL VEZ. Seguramente si el proyecto cumple con los requisitos es un éxito. Creo que esto no es realmente necesario.
NO. Su diagrama de contexto hace esto.
SI. Intenta que sea breve.
- Actores (fuentes de datos, actores del sistema)
TAL VEZ. Esto suena como pedazos sangrientos técnicos de diseño para mí que no deberían estar en una especificación FUNCIONAL.
TAL VEZ. Ponga esto (estos) en un apéndice. Explicar con palabras. Trate de mantener estos en un pequeño número. He visto sugerencias de que un proyecto no debe tener más de 8 casos de uso explicados en detalle. No cubras todos los caminos "infelices" o nunca terminarás.
Es muy raro que cualquier pieza de s / w tenga un solo Caso de uso / Diagrama de caso de uso.
- Diagrama de flujo del proceso
TAL VEZ. Solo si agrega un valor significativo, de lo contrario está perdiendo el tiempo.
TAL VEZ. Solo si agrega un valor significativo, de lo contrario está perdiendo el tiempo.
- Requerimientos de seguridad
SÍ, si corresponde.
SÍ - obligatorio. Debo decir qué debe hacer la cosa (y con qué nivel de rendimiento).
QUIZÁS - si hay algo especial.
QUIZÁS - si es útil.
- Modelo de dominio (modelo de datos)
QUIZÁS - si es útil.
- Escenarios de flujo (éxito, alternativo ...)
QUIZÁS - si es útil.
- Horario (gestión de tareas)
NO. Esto no es lo que debería estar en una especificación. Se trata de horarios, planificación, etc.
TAL VEZ. Los objetivos no son requisitos, son cosas vagas, esponjosas, que no serían buenas, que sirven para enturbiar las aguas. Intenta y evita.
SI. Esencial. Dice lo que debe hacer la cosa.
NO. Parte de la planificación y gestión, no los requisitos de lo que está haciendo.
Explicación: Llevo más de 15 años escribiendo especificaciones para productos, software y sistemas complejos. Todas las cosas comerciales. Principalmente comercialmente exitoso e hizo mucho dinero para varios empleadores. Incluyendo la especificación para el desarrollo Agile s / w donde todavía necesita una especificación antes de saltar al desarrollo. El desarrollo REAL puede hacerse en cualquier proceso que desee, pero al final debe tener 3 cosas para tener éxito:
Sepa lo que quiere hacer. Y ESCRIBIRLO ABAJO. (Eso es una especificación)
Haz cosas para cumplir con el n. ° 1 anterior.
Haga un nivel de prueba de aceptación de la cosa contra la especificación (que es esencialmente "¿hizo lo que dijo que haría").