¿Cuál es la mejor manera de escribir documentación de software?

En mi opinión (desde la perspectiva de un desarrollador de software), hay cuatro niveles de documentación:

  1. Comentarios dentro del código fuente.
  2. Documentación de interfaz.
  3. Documentación del sistema.
  4. Documentación del usuario.

Mis dos centavos por cada uno:

  1. Use solo donde tenga que hacerlo. La necesidad de dicha documentación es a menudo un síntoma de código que no está estructurado para simplificar. Sin embargo, a veces hay buenas razones para seguir con código complejo (rendimiento, por ejemplo).
  2. Más es mejor, pero no pierdas el tiempo: por lo general, trazo la línea en la documentación de los privados. Siga las prácticas comunes de su plataforma / idioma.
  3. Escriba una buena documentación general del sistema (tal vez solo un readme.txt de inicio). Manténgalo cerca del código fuente: le sugiero que marque o reestructure el texto en el repositorio. ¡Actualice siempre con cualquier cambio! Manténgalo lo suficientemente corto como para leerlo en una hora o menos.
  4. Esto no es algo en lo que los desarrolladores de software sean generalmente buenos, pero los escritores técnicos sí lo son. Ayude a su escritor técnico pero no intente hacer su trabajo.

¿Quién es tu audiencia? La mejor manera de escribir documentación de software es para que su audiencia pueda entenderla y obtener la información que necesita de la documentación. No puede producir documentación relevante a menos que sepa para quién la está escribiendo y por qué la está escribiendo.

¿Necesita producir un documento de arquitectura que muestre cómo interactúan varios subsistemas?
¿Necesita producir documentación API que describa todas las interfaces públicas?
¿Necesita publicar su documentación en un sitio web?

Utilizo principalmente MS Word para la mayor parte de la documentación, así como comentarios en código y, de vez en cuando, las herramientas de documentación MS XML, ya que somos principalmente una casa de desarrollo de MS stack.

Otros idiomas pueden tener diferentes herramientas integradas y varias herramientas admitirán múltiples idiomas. Puede encontrar una comparación de herramientas aquí:
Comparación de generadores de documentación

Supongo que la pregunta está relacionada con la producción de documentación para desarrolladores.

La pizarra (tripit / pizarra) es buena. Tiene algunas peculiaridades, pero generalmente produce documentación limpia.

Swagger (el marco más popular del mundo para API) es algo imprescindible si está creando / exponiendo API RESTful.

Olvídate de las herramientas que fuerzan una estructura que no está de acuerdo con tu código. Escriba una descripción del dominio del problema, para que el lector sepa de dónde viene. Escriba una descripción de la jerga que usará. Escribe una descripción de cada algoritmo. Luego escriba el código usando un inglés descriptivo y exacto para las variables y funciones / métodos, etc. Dedique tiempo a esto. Cuando haya terminado, su código debería leerse como inglés. Eso es lo mejor que puedes hacer.

Aquí está la mejor aplicación de Android en la tienda de juegos para administrar sus documentos, tarjetas, datos bancarios, tarjetas de visita, contraseñas en dispositivos móviles. Funciona sin conexión y sin permiso de acceso a Internet. No tiene anuncios también. Puede administrar su licencia, identificación, hojas de calificación, etc. en un solo lugar. Aquí hay un enlace de la aplicación

Offline Document, Password, Bank Detail Manager – Aplicaciones de Android en Google Play

More Interesting

¿Alguna vez ha cometido un error importante en un servidor de producción?

¿Cuál es un buen objetivo de referencia para 'solicitudes por segundo' (RPS) y 'conexiones' de clientes para una aplicación web de producción?

¿Cuál es la diferencia entre la ingeniería informática y la ingeniería de software, y cuál es mejor en términos de calidad del trabajo y salario?

¿Cómo se puede usar la IA y el aprendizaje automático en los gráficos por computadora?

¿Qué se necesita realmente para trabajar como ingeniero de software integrado en un gran cuerpo?

Ayuda para elegir oferta de dos empresas?

¿Cuál es el proyecto más liviano en el que podría trabajar que me daría experiencia con los problemas que generalmente se preguntan en las entrevistas de ingeniería de software?

¿Cómo grabar o descargar desde LiveLeak? Hay un software que conozco, pero ¿cuál debo usar?

¿Cuáles son los mejores sistemas de software CMMS?

¿Es mejor obtener un título en informática o alguna experiencia práctica si quiero comenzar a programar?

¿Qué tan difícil es ingresar a las principales compañías tecnológicas de Silicon Valley desde un entorno universitario extranjero de bajo rango?

¿Qué es el software de microordenador y cuáles son algunos ejemplos?

¿Cuál es la solución para complicados procesos de construcción en el desarrollo de software?

Cómo desarrollar aplicaciones webgl con Visual Studio

¿Cómo seguirías para inventar un software o una aplicación que no existe? ¿Qué categoría de aplicaciones / softwares aún no se ha visto?