La documentación de programación es odiada universalmente. ¿Qué se puede hacer para que sea realmente bueno?

Oh, por dónde empezar …

Bueno, te lo diré – al principio. La documentación (y el software) que no apestan están diseñados para no chupar desde el principio. Cuanto más cerca del final de una fase de desarrollo considere la documentación (o, más precisamente, la historia que le contará a las personas sobre su software), más la documentación (y, a menudo, el software) apestará. ¿Por qué? No fue diseñado para no chupar. Sencillo.

Si no diseñas algo para no chupar, lo más probable es que te vaya a chupar.

Cuando el software está diseñado desde el principio con la documentación en mente, el software tiende a encajar de manera más limpia. Esto es, en parte, porque a lo largo del camino, las personas preguntan “¿cómo va todo esto cuando lo describimos? ¿Cómo va a funcionar esto cuando una parte se usa con otra? ¿Qué aspecto tendrá el código cuando las personas apliquen nuestras clases y métodos? “Esa perspectiva ayuda a eliminar mucha confusión en el código y reduce la necesidad de una explicación compleja. Esa perspectiva también casi hace que la documentación se escriba por sí misma.

Un caso más común, o por lo que parece por la forma en que se formuló la pregunta, es el de “bueno, obtendremos el código resuelto, luego estará listo para los forjadores de palabras (para entrar y tratar de tener sentido de nuestro diseño y explicárselo a los demás … .oh, y se enviará la próxima semana … oh, y no hay documentos de proyecto, porque somos ágiles).

¿Cómo diablos podría alguien pensar que el enfoque entregaría documentación de calidad? Bueno, no lo hacen, y no lo hace. Y, eso parece estar bien con todos (porque, hey, enviamos, ¿no?).

Pero, así es como se obtiene la documentación que apesta.

Entonces, ¿cómo se obtiene una buena documentación?

  1. Considere la documentación desde el principio, al igual que considera cualquier otra característica o aspecto de la aplicación / producto.
  2. Tenga un producto sólido que sea utilizable (esto se aplica a las API, BTW).
  3. No invente más términos y conceptos nuevos de los que necesita (y retroceda y reemplace aquellos con algunos términos en lenguaje sencillo, también).
  4. Usa los términos y conceptos que tengas constantemente. Si te encuentras diciendo que “el usuario lo resolverá”, eso significa que no está terminado y tienes más trabajo por hacer.
  5. Involucre al (los) escritor (es) desde el principio y pregúnteles, “¿cómo se verá / suena esto en la documentación?” Si dicen algo extraño, pregunte cómo puede mejorarse.

Hay más, pero si solo sigue estos pasos, producirá un producto y documentación que son mejores que la mayoría.

Hacer que las personas que son menos que expertos lo escriban para que luego sea revisado por un experto. Esto puede parecer contrario a la intuición, pero la persona menos experimentada seguirá entendiéndolo por sí misma y usará analogías y otros dispositivos para entenderlo. La persona experimentada lo entiende en su forma pura, pero probablemente no pueda comunicar eso de una manera que una nueva persona pueda entender, ya que tienen muchos años de experiencia lejos de ser nuevos. Algunos de los blogs más útiles que he leído son de personas que están haciendo algo por sí mismos por primera vez.