Quiero convencer a mis socios de que deberíamos tener una especificación y que los errores deberían corregirse antes de escribir un nuevo código. ¿Debo referirme a la prueba de Joel ? ¿Crees que la prueba de Joel está actualizada? Creo que no tener una especificación es una mala gestión del proyecto. ¿Estás de acuerdo con la prueba de Joel? ¿Podrías agregar algo? No menciona, por ejemplo, Open Source.
17
Respuestas:
Creo que la prueba de Joel está actualizada: está tan actualizada como la mayoría de las otras escrituras de software que son "intemporales".
Hacer desarrollo de productos (que incluye desarrollo de software) sin una especificación es una locura.
¿Cómo sabes a dónde quieres ir?
Solo hay un punto que haré sobre escribir una especificación (en realidad no creo que las especificaciones de Joel sean muy buenas ... mejor que nada, pero no tan buenas como podrían ser). Ese punto es:
Al escribir una especificación, diga solo lo que debe hacer el producto, no cómo se debe hacer.
Esto significa que no dicta los detalles de implementación en una especificación. Esa es una actividad de diseño y la dejas a la experiencia y creatividad de los diseñadores.
[Solo hay una excepción a esta regla: a veces se exige o requiere un detalle o método de implementación particular, en cuyo caso ponerlo. Por ejemplo, si el software debe estar escrito en PHP y esto no es negociable, entonces entra la especificación Debería haber muy pocos casos de esto.]
Podría agregar: no tener un seguimiento de errores es un acto de locura igual. Es simplemente la forma menos profesional y tonta de operar y provocará un gran dolor y sufrimiento.
fuente
Voy a jugar el abogado del diablo aquí y sugerir que la prueba de Joel no está actualizada. Es muy general. A medida que la tecnología ha madurado, las preguntas deberían ser más específicas que cuando escribió el examen.
Los documentos de especificaciones, al menos grandes documentos de especificaciones iniciales no son necesarios ahora que tenemos historias de usuarios y procesos de desarrollo ágiles. Esta pregunta debe cambiarse a "¿El nivel de documentación es apropiado para las soluciones que se están diseñando?" Las historias de usuarios más pequeñas y estrictas que se entregan cada dos semanas son mucho más útiles en la mayoría de los casos que un gran documento inicial que describe el producto en detalle. Sin embargo, si está construyendo el próximo Mars Rover, es posible que desee un documento de diseño detallado por adelantado. Si pregunta si una empresa tiene especificaciones de diseño, no me sorprendería escuchar una respuesta de "no realmente, en su lugar utilizamos procesos ágiles e historias de usuarios".
En segundo lugar, la pregunta de "construcciones diarias" debería cambiar a una pregunta sobre integración continua. A menos que esté creando un software que demore horas en construirse (que el 99.99% de los lugares no funcionará), la pregunta debe plantearse si la empresa utiliza la integración continua.
La mayor parte de la prueba de Joel realmente no ha salido en absoluto. Sigue siendo una buena forma de obtener una indicación del entorno de trabajo.
fuente