Preferencia por el código desechable sobre los documentos de diseño
(softwaredoug.com)-
Imaginamos que el desarrollo de software sigue un flujo limpio y ordenado
- Se escriben documentos de diseño y se implementan funciones desplegando pequeños cambios mediante PR
- El historial de Git se ve limpio y bien organizado
- Pero la realidad es distinta
-
La diferencia entre los documentos de diseño y la implementación real
- Implementar un documento de diseño tal cual es una fantasía
- Cuando empiezas a programar, terminas modificando el contenido del documento de diseño
- Ningún plan sobrevive al contacto con el enemigo
-
Nueva metodología de diseño: inmersión en el código
- Se implementa un prototipo usando un PR en borrador
- Se recibe retroalimentación desde temprano para ajustar el enfoque
- Se documenta el PR en borrador como un registro histórico de ideas de diseño
- Hay que estar preparado para desechar por completo el PR en borrador
- A partir del PR en borrador, los PR avanzan gradualmente por etapas
- Cada PR se prueba por etapas y se refuerza su solidez
-
La importancia de la madurez
- Es importante tener la capacidad de desechar las ideas que ya se programaron
- Lo importante no es la cantidad de líneas de código, sino la transmisión del conocimiento organizacional
- Hay que alinearse temprano en las partes importantes para que el trabajo de prototipado no se desperdicie
-
Cómo usar los PR como documentación
- Los PR son una de las mejores formas de documentación para los desarrolladores
- Los PR son artefactos históricos que reflejan el estado en un momento específico
- Los documentos de diseño a menudo ofrecen información distinta de la realidad
-
La importancia de los prototipos
- Un prototipo vale más que 1000 documentos de diseño
- Para impulsar el cambio, hay que hacerlo con código y no con documentos
- La organización debe ver los prototipos como una pregunta, no como una respuesta
-
La utilidad de los documentos de diseño
- Son útiles para organizar y archivar retroalimentación de distintos interesados
- Son útiles cuando una idea es demasiado conceptual o de muy largo plazo
- Son útiles cuando expresar una idea por escrito es más eficiente que programarla
- Son útiles cuando la organización no tiene la disciplina para desechar la primera solución
- Proporcionan un entorno donde el personal junior puede cuestionar con seguridad las ideas de desarrolladores senior
-
El uso incorrecto de los documentos de diseño
- Se usan para ralentizar el proceso de desarrolladores menos experimentados
- Se usan como documentación, pero se vuelven obsoletos rápidamente
- Intentan resolver todos los problemas de diseño, pero los problemas reales se descubren programando
-
Si el equipo puede tener disciplina, hackear es mucho más eficiente que diseñar
- Se recomienda crear esa disciplina dentro de la organización
- Al final, el código tiene más fuerza que las palabras
1 comentarios
Opinión de Hacker News
El prototipado es una parte importante del proceso de diseño, y es necesario definir el problema y aclarar la solución.
Escribir es útil para explorar un problema, y hay quienes han pensado que entendían el problema, pero al escribir surgieron nuevas preguntas.
Hay experiencia usando soluciones temporales para terminar proyectos dentro del plazo.
El mayor problema de los documentos de diseño es que nadie los lee.
Hay una gran diferencia entre el feedback sobre código y sobre diseño.
Si la descripción del trabajo consiste en escribir mucho código para ver qué funciona, GPT puede reemplazar eso de forma más rápida y barata.
Casi nadie imagina que el desarrollo de software siga un flujo limpio y ordenado.
Hay casos en los que el código se apila como un Jenga y nadie quiere tocarlo.
Se prefiere un proceso que documente las decisiones de diseño usando un hilo continuo de comentarios.
Se sigue reflexionando sobre este enfoque, y en el peor de los casos se puede perder mucho tiempo.