Cómo documentar correctamente un proyecto de desarrollo web a medida
He perdido la cuenta de las veces que he abierto un repositorio heredado y me he encontrado un README vacío -- o peor, un README que mentía. Un proyecto de desarrollo web a medida no está terminado cuando pasa a producción. Está terminado cuando otro desarrollador puede clonarlo, entenderlo y modificarlo sin llamar a nadie. Eso casi nunca pasa.
El patrón se repite: equipos que invierten meses en una plataforma sólida entregan al cliente un producto sin especificaciones actualizadas, sin guía técnica, sin nada que permita retomar el trabajo sin fricciones. El coste: mantenimiento inflado, dependencia del equipo original y cada cambio futuro convertido en ingeniería inversa. Vamos a ver cómo evitarlo.
Por qué la documentación es crítica en proyectos a medida
Cuando trabajas con WordPress o Shopify, el framework te da contexto. Cualquier desarrollador con experiencia en esas plataformas abre un proyecto ajeno y se orienta rápido. Las convenciones hacen el trabajo pesado.
En un desarrollo a medida no tienes esa red de seguridad. Las decisiones de arquitectura, los flujos de negocio, las integraciones con terceros, las reglas de dominio específicas... nada de eso se deduce del código. Si no está escrito, no existe para quien no participó en el diseño. Así de simple.
Documentar no es un gasto. Es una inversión medible en tres frentes:
- Menos horas de mantenimiento. Un equipo que hereda un proyecto bien documentado localiza, entiende y modifica componentes mucho más rápido.
- Menos errores tontos. Cuando las reglas de negocio están escritas dejan de depender de la memoria de un solo desarrollador. Y la memoria falla.
- Más autonomía para el cliente. Una buena documentación de usuario permite al equipo interno resolver dudas operativas sin abrir un ticket al proveedor.
Tipos de documentación que necesita un proyecto web a medida
No toda la documentación sirve para lo mismo ni la lee la misma persona. Un proyecto completo debería cubrir, como mínimo, estos bloques.
Especificación funcional
La especificación funcional describe qué hace el sistema desde la perspectiva del negocio. Nada de detalles técnicos aquí: requisitos, flujos de usuario, reglas de validación, roles y permisos, criterios de aceptación. Punto.
Este documento es el contrato real entre cliente y equipo. Se redacta antes de escribir la primera línea de código y se actualiza cada vez que cambia el alcance. Si no haces esto, luego vienen las discusiones del "yo pedí X" contra "nosotros entendimos Y". Su formato habitual:
- Descripción general del proyecto y objetivos.
- Listado de módulos con sus casos de uso.
- Diagramas de flujo para los procesos complejos.
- Matriz de roles y permisos.
- Requisitos no funcionales: rendimiento, disponibilidad, seguridad.
Documentación técnica
Esta va dirigida al equipo de desarrollo -- el actual y el que venga después. El objetivo es que cualquier profesional cualificado pueda entender la arquitectura, levantar un entorno local y trabajar con el código sin tener que preguntar "oye, y esto por qué está así".
Lo mínimo que debería incluir:
- Arquitectura general. Diagrama de componentes, stack tecnológico, patrón arquitectónico (MVC, microservicios, monolito modular) y la justificación de las decisiones. El "por qué" vale más que el "qué".
- Estructura del repositorio. Organización de carpetas, convención de nombres, ficheros clave. Parece trivial hasta que te toca buscar la configuración de colas en un proyecto con 400 archivos.
- Guía de configuración del entorno. Paso a paso para levantar el proyecto en local: dependencias, variables de entorno, base de datos, servicios externos. He visto onboardings de tres días convertirse en media hora con una buena guía de setup.
- Flujo de trabajo con Git. Estrategia de ramas, convención de commits, code review, política de despliegues.
- Decisiones de diseño (ADR). Los Architecture Decision Records son oro puro. Documentan por qué se tomó cada decisión, qué alternativas se evaluaron y en qué contexto. Cuando seis meses después alguien pregunta "por qué usamos Redis aquí", el ADR responde sin arqueología.
Documentación de API
Si el proyecto expone o consume APIs, cada endpoint necesita su ficha: ruta, método HTTP, parámetros de entrada, formato de respuesta, códigos de error y ejemplos reales. No ejemplos genéricos con foo y bar -- datos que se parezcan a lo que el endpoint maneja de verdad.
El estándar de facto es OpenAPI (antes Swagger). Genera documentación interactiva desde la especificación, facilita la integración con terceros y permite automatizar pruebas contra la propia spec.
Puntos que marcan la diferencia:
- Documentar casos de éxito y de error. El 404 y el 422 importan tanto como el 200.
- Versionar la API y reflejar cambios en la documentación.
- Mantener la spec sincronizada con el código real, idealmente generándola de forma automática.
Guías de usuario
Las guías de usuario van dirigidas a quienes operan el sistema cada día: administradores de contenido, personal de atención al cliente, responsables de operaciones. No necesitan saber qué hay un Nginx detrás; necesitan saber cómo dar de alta un producto o cómo exportar un informe.
Una buena guía de usuario:
- Organiza el contenido por tareas, no por secciones de la aplicación. "Cómo crear una campaña" le dice más al usuario que "Módulo de campañas".
- Incluye capturas de pantalla anotadas cuando la interfaz no es autoexplicativa.
- Anticipa errores frecuentes y explica cómo resolverlos.
- Se actualiza con cada release que toque la interfaz o los flujos de trabajo.
Documentación de traspaso (handoff)
Esta es, probablemente, la más ignorada de todas. Y la más cara de no tener. La documentación de traspaso permite transferir el proyecto a otro equipo, sea interno del cliente o un nuevo proveedor.
Un documento de traspaso completo incluye:
- Accesos a todos los entornos (desarrollo, staging, producción) y servicios de terceros.
- Inventario de infraestructura: servidores, dominios, certificados, CDN, servicios cloud.
- Estado actual del proyecto: funcionalidades completadas, deuda técnica conocida, tareas pendientes.
- Contactos clave y acuerdos de soporte vigentes.
- Procedimientos de despliegue y rollback.
Cuándo documentar: el momento importa
Uno de los errores clásicos es dejarlo todo para el final. En la práctica eso significa que la documentación no se hace o se hace a toda prisa bajo la presión de una entrega. Resultado: un PDF de 10 páginas que nadie va a leer porque no refleja la realidad del sistema.
La documentación tiene que ser un proceso continuo, integrado en el flujo de trabajo diario:
- La especificación funcional se redacta en la fase de análisis y se revisa en cada iteración.
- La documentación técnica se escribe a medida que se construye cada componente. El README del repositorio se crea el primer día. Primer día, no último.
- La documentación de API se genera o actualiza con cada endpoint nuevo o modificado.
- Las guías de usuario se elaboran conforme se completan funcionalidades, no cuando ya estás empaquetando la entrega.
- La documentación de traspaso se va alimentando durante todo el desarrollo, registrando accesos e infraestructura desde el arranque.
El truco que mejor funciona: incluir la documentación en la definition of done de cada tarea. Si no está documentada, no está terminada. Sin excepciones.
Herramientas para documentar proyectos web a medida
La herramienta concreta importa menos que la disciplina. Dicho esto, elegir bien facilita la adopción.
- Confluence o Notion para documentación funcional y guías de usuario. Colaboración en tiempo real, versionado, organización jerárquica.
- Markdown en el repositorio para documentación técnica. README.md, CONTRIBUTING.md, carpeta docs/. La documentación viaja con el proyecto. Si haces checkout de una rama antigua, ves la documentación de esa versión. Un wiki externo no te da eso.
- OpenAPI / Swagger para APIs. Swagger UI o Redoc generan interfaces navegables desde la spec.
- Diagramas como código con Mermaid, PlantUML o draw.io. Se versionan con el código, sin licencias extra.
- ADR Tools para gestionar Architecture Decision Records con estructura consistente.
Lo que importa de verdad: que la documentación sea accesible para su audiencia, versionada, y que mantenerla no sea un suplicio.
Cómo mantener la documentación viva
Documentación desactualizada es peor que no tener documentación. Genera falsa confianza y puede provocar errores graves. He visto a gente seguir un runbook obsoleto y tumbar producción un viernes a las seis de la tarde.
Cuatro prácticas que funcionan:
- Incluirla en las revisiones de código. Si un PR cambia un comportamiento documentado, la documentación se actualiza en el mismo PR. No en otro. No "la semana que viene".
- Asignar un responsable. Sin un responsable explícito, la responsabilidad se diluye y nadie revisa nada.
- Automatizar lo automatizable. Documentación de API generada desde el código, diagramas de base de datos desde el esquema, changelogs automáticos. Menos trabajo manual, menos desfase.
- Revisar en cada release. Antes de cada despliegue a producción, verificar que la documentación refleja el estado real del sistema.
El impacto real en costes de mantenimiento
Los números son claros. Según estudios del sector, los equipos que trabajan con código mal documentado dedican entre un 40 y un 60 por ciento más de tiempo a mantenimiento comparado con proyectos bien documentados. En desarrollos a medida, donde la rotación de personal y los cambios de proveedor son habituales, la diferencia es todavía mayor.
Un caso que he visto repetido: empresa contrata desarrollo a medida, el proveedor entrega sin documentación, dos años después necesitan cambios. El nuevo equipo necesita semanas solo para entender la arquitectura antes de tocar una línea. Esas semanas son miles de euros que se habrían ahorrado con una inversión modesta en documentación.
La documentación no es un PDF -- es una práctica de ingeniería
Documentar un proyecto de desarrollo web a medida no es un extra ni un capricho de gente perfeccionista. Es una práctica profesional básica que protege la inversión del cliente, reduce costes futuros y permite que el software evolucione sin fricciones.
La clave: tratarla como parte del proceso de desarrollo, no como un apéndice que se añade cuando ya no queda presupuesto. Especificaciones funcionales, documentación técnica, documentación de API, guías de usuario y documentación de traspaso forman el conjunto mínimo que todo proyecto serio debería incluir.
Si estás planificando un proyecto de desarrollo web a medida y quieres que la documentación se gestione de forma profesional desde el primer día, hablemos sobre tu proyecto. Una buena documentación empieza por una buena planificación.
Preguntas frecuentes
Las dudas más comunes. Si la tuya no está, pregúntanos
En Tangram no queremos que la información pase por una cadena interminable de intermediarios donde se pierden los detalles importantes.
Contarás con un interlocutor que coordinará la comunicación y trasladará las decisiones al equipo responsable de tu proyecto.
Cuando sea necesario profundizar en cuestiones de estrategia, diseño o tecnología, podremos involucrar a los especialistas correspondientes.
Así tendrás una comunicación organizada, sin necesidad de gestionar personalmente a todos los profesionales que intervienen.
Queremos que tengas acceso al conocimiento de un equipo especializado, sin sufrir la complejidad de coordinarlo.
No tendrás que averiguar a quién escribir cada vez que tengas una duda.
En Tangram contemplamos la figura del Account Manager como interlocutor principal, encargado de acompañarte durante el proyecto, coordinar la comunicación y facilitar el seguimiento de las decisiones.
Nuestra metodología incluye reuniones de revisión, canales de comunicación y herramientas para que puedas participar en el trabajo.
La organización concreta, la frecuencia de las reuniones y los canales disponibles se establecerán según el proyecto contratado.
Lo importante es que sepas con quién hablar, en qué punto está tu proyecto y qué decisiones necesitan tu participación.
Sí, podemos valorar una colaboración con los profesionales que ya trabajan en tu empresa.
No siempre tiene sentido sustituir un equipo que conoce bien tu negocio. En muchas situaciones, lo más útil es complementar sus conocimientos con especialistas en determinadas áreas.
Podemos estudiar qué responsabilidades asumiría Tangram, cuáles mantendría tu equipo y cómo coordinar las decisiones para evitar duplicidades.
La forma concreta de colaboración dependerá de la organización, las herramientas y las necesidades del proyecto.
No se trata de reemplazar lo que ya funciona, sino de aportar el conocimiento que necesitas para llegar más lejos.
No tienes por qué cambiar de proveedor para explorar una colaboración con Tangram.
Durante nuestra trayectoria hemos trabajado con agencias y consultoras, participando en proyectos en los que cada empresa asumía una parte diferente del trabajo.
Esa experiencia nos permite comprender la importancia de definir responsabilidades y coordinar a los profesionales implicados.
Podemos valorar una colaboración para cubrir necesidades concretas que tu proveedor actual no ofrece o para reforzar determinadas áreas.
Si tienes una relación profesional que funciona, no queremos que la rompas sin motivo. Queremos encontrar dónde podemos aportar valor.
La confidencialidad es especialmente importante cuando hablamos de nuevas ideas de negocio, información económica, estrategias comerciales o desarrollos tecnológicos.
En Tangram tenemos experiencia trabajando en proyectos sujetos a acuerdos de confidencialidad, motivo por el que no podemos mostrar públicamente muchos de los trabajos en los que hemos participado.
Si tu proyecto requiere un acuerdo de confidencialidad (NDA) antes de compartir información sensible, podemos revisar sus condiciones y acordar cómo proteger esa información antes de entrar en los detalles.
Entendemos que la confianza empieza por respetar lo que todavía no quieres hacer público.