¿Por qué los programadores odian hacer documentos?

Diferentes habilidades.

Un programador de reciente creación (que viene del final del profesional o del académico) tiene una mentalidad de tipo técnico – académico / retorcido (dudo en decir Ingeniería).

La documentación, especialmente cuando se trata de S / W es una tarea muy diferente, incluso en comparación con otras disciplinas de ingeniería. La cantidad de abstracción y / o creación de una conexión desde cómo hasta lo que puede ser inmenso, especialmente dado que un programador no está lidiando con un fenómeno físico (a diferencia de un ingeniero).

Como resultado, la documentación en el mundo de la programación comienza a tomar un gran giro creativo, algo que un tecnólogo de nueva creación aborrece (y en la mayoría de los casos puede ser débil).

La situación cambia con interés, experiencia y / o dominio del lenguaje.

La mayoría de los programadores profesionales (profesionales, a diferencia de los mercenarios) generalmente superan estos problemas y pasan a convertirse en docentes decentes.

No todos odian escribir documentos. Escribí suficiente documentación (como JavaDoc) para una biblioteca que desarrollé para crear un libro de seiscientas páginas. Debido a que era el estilo JavaDoc, podría actualizarlo a medida que cambiaba el código. Y como estaba detallado, la gente no tenía que hacerme tantas preguntas.

Mis conjeturas sobre por qué las personas evitan escribir documentos:

  1. Falta de práctica en la redacción de inglés simple (o el idioma de destino elegido). No solía escribir mucho, luego tenía una clase en la que escribía media hora al día. Al final de las siete semanas, tenía menos dudas en escribir.
  2. Relacionados: el inglés no es su primer idioma, pero los documentos deben estar en inglés. Y no quieres cometer errores.
  3. Falta de comprensión completa del código o de cómo funciona. Si no tiene una comprensión clara de lo que está sucediendo, no puede describirlo.
  4. Incluso si usted entiende, la falta de práctica para describir de manera sucinta lo que hace una función.
  5. Preocúpate que requerirá mucho mantenimiento. Esto se relaciona con el # 1, ya que si solo toma unos segundos actualizar el texto, queda claro que el mantenimiento no será oneroso. Pero también está relacionado con el siguiente punto …
  6. Falta de conocimiento de herramientas como JavaDoc, Doxygen, jsdoc y similares. Si necesita buscar en algún otro archivo para agregar documentos, entonces sí, es mucho más esfuerzo y es más probable que quede desactualizado.

Esas son mis hipótesis. Algunas personas me han dicho que “las pruebas son los documentos”, pero eso es tan trivialmente erróneo que no creo que sea la motivación subyacente. A veces, unas pocas palabras que describen la intención pueden ser más efectivas que una docena de casos de prueba.

Ahora, si realmente quiere decir documentos, no documentación, ¿por qué querrían los programadores hacer algo que realmente no hace el trabajo? Si los documentos son para enfocar mis pensamientos o delinear un diseño, entonces genial, estoy a favor de ellos. Pero si se trata de informes a la administración superior sobre el progreso, o las propuestas de proyectos, o cualquier otra cosa que no haga su trabajo, lo haré si es necesario, pero no me gustará.

Porque no esta programando

Personalmente, cada vez que no estoy programando no me siento tan productivo, aunque sé que no es racional todo el tiempo.

Bueno, y también los documentos suelen estar desactualizados, lo que se siente mal … hay un bloqueo mental en la construcción de cosas que, según usted, requerirá mucha atención continua y se sincronizará manualmente con alguna fuente de verdad. Es por eso que creo que el archivo readme.md estándar se ha convertido en el único confiable para la documentación de repos.

Porque sienten que agregaron suficientes comentarios al código y, por lo tanto, no hay necesidad de documentación adicional.