Mi enfoque sería similar al de Christophe Razafimahatratra.
Además, yo haría:
- Prepare una serie de breves documentos de diseño que se centren en las opciones de diseño clave, las alternativas que consideró y por qué eligió el diseño que implementó. Esto salvará a las personas en el futuro (incluido usted mismo) de adivinar sus opciones de diseño y facilitará la reconsideración cuando los requisitos o la tecnología hayan cambiado.
- Prepare diagramas de modelo de datos de alto nivel que describan las estructuras de almacenamiento persistentes y las estructuras internas importantes. Una imagen vale mas que mil palabras.
- Documente cualquier esquema de codificación / encriptación complejo o especializado, algoritmos, gramáticas de lenguaje o protocolos. (Si su aplicación admite algo como CSV, asegúrese de documentar la gramática que realmente admite o haga referencia a un estándar que admita. Para cosas como JSON o XML, no es necesario documentar la gramática general, pero podría ser útil decir algo sobre el estructura y semántica de su uso específico de la misma en la aplicación.)
- Documente lo que un desarrollador necesitaría saber sobre el entorno técnico para la aplicación, como qué software se necesita para construirlo, dónde obtener ese software, si se necesitan licencias (y cómo / dónde obtenerlas) y cómo construir eso.
- ¿Qué es un WebSocket en términos simples? ¿Cómo puede un servidor enviar datos a un cliente sin una conexión abierta larga?
- ¿Cuáles son los mejores elementos de la interfaz de usuario (controles, patrones, etc.) que han surgido recientemente en sitios web modernos y aplicaciones web?
- ¿Dónde empiezo a aprender a hacer una aplicación web simple?
- ¿Cuál es el mejor editor de texto HTML 2016?
- ¿Existen bases de datos distribuidas disponibles gratuitamente que estén diseñadas para escalar a miles de millones de usuarios en tiempo real? Si es así, ¿Que son?