La función más importante de una especificación es diseñar el programa . Incluso si está trabajando en el código usted mismo, y escribe una especificación únicamente para su propio beneficio, el acto de escribir la especificación, que describe cómo funciona el programa en minucioso detalle, lo obligará a diseñar el programa ...
... cuando diseña su producto en un lenguaje humano, solo toma unos minutos intentar pensar en varias posibilidades, revisar y mejorar su diseño. Nadie se siente mal cuando elimina un párrafo en un procesador de textos. Pero cuando diseñas tu producto en un lenguaje de programación, lleva semanas hacer diseños iterativos. Lo que es peor, un programador que acaba de pasar 2 semanas escribiendo un código va a estar bastante conectado a ese código, no importa cuán incorrecto sea ...
... Cuando escribe una especificación, solo tiene que comunicar cómo debe funcionar el programa una vez . Todos en el equipo pueden leer las especificaciones. Las personas de control de calidad lo leen para que sepan cómo se supone que funciona el programa y sepan qué evaluar. La gente de marketing lo usa para escribir sus vagos documentos de vaporware para arrojar en el sitio web sobre productos que aún no se han creado. La gente de desarrollo de negocios lo leyó mal para crear fantasías extrañas sobre cómo el producto curará la calvicie y las verrugas y esas cosas, pero atrae a los inversores, así que está bien. Los desarrolladores lo leen para saber qué código escribir. Los clientes lo leen para asegurarse de que los desarrolladores están creando un producto que les gustaría pagar. Los escritores técnicos lo leen y escriben un buen manual ...
Cuando no tiene una especificación, toda esta comunicación todavía ocurre, porque tiene que hacerlo , pero sucede ad hoc . La gente de control de calidad pierde el tiempo con el programa de manera involuntaria, y cuando algo parece extraño, van e interrumpen a los programadores una vez más para hacerles otra pregunta estúpida sobre cómo se supone que funciona la cosa ...
sin una especificación detallada, es imposible hacer un cronograma ... En muchas organizaciones de programación, cada vez que hay un debate de diseño, nadie logra tomar una decisión, generalmente por razones políticas. Entonces los programadores solo trabajan en cosas no controvertidas. A medida que pasa el tiempo, todas las decisiones difíciles se llevan al final ... Escribir una especificación es una excelente manera de concretar todas esas decisiones de diseño irritantes, grandes y pequeñas, que quedan cubiertas si no tienes una especificación. ..