Cómo evitar depender completamente de un proveedor tecnológico
Que tu empresa dependa de un solo proveedor para operar o modificar su software es un riesgo evitable. Estas medidas lo reducen desde el primer día.
Leer artículo →La documentación mínima que un proveedor debería entregar al cerrar un desarrollo de software: manuales, diagramas, guías de despliegue y más, para que tu empresa no dependa del proveedor original.
Un proyecto de software no termina cuando el código funciona en producción. Termina cuando tu empresa —o cualquier equipo técnico que contrates en el futuro— puede operar, mantener y modificar ese software sin depender de quien lo construyó. La diferencia entre un escenario y el otro suele estar en algo que muchas empresas no piden porque no saben que deberían pedirlo: la documentación.
La documentación no es un adorno ni un gesto de buena voluntad del proveedor. Es un entregable del proyecto, tan importante como el código mismo. Sin ella, el conocimiento sobre cómo funciona el sistema, cómo se despliega, cómo se recupera de una falla y cómo se modifica queda exclusivamente en la cabeza de las personas que lo construyeron. Y cuando esas personas no están disponibles —porque cambiaron de trabajo, porque la relación comercial terminó o porque pasaron tres años y ya no recuerdan los detalles—, ese conocimiento desaparece.
Este artículo lista la documentación mínima que deberías exigir al finalizar un proyecto de software. No es una lista exhaustiva —cada proyecto tiene particularidades—, pero cubre lo esencial para que tu empresa no quede atada a un proveedor por falta de información.
La documentación debe figurar como un entregable explícito en el contrato, con el mismo nivel de obligación que el código. Si el contrato no la menciona, el proveedor puede argumentar —con razón— que no estaba en el alcance. La guía sobre qué debe contener un contrato de desarrollo incluye este punto.
Es el mapa del sistema. Explica cómo está organizado el software, qué componentes lo forman, cómo se comunican entre sí y por qué se tomaron las decisiones técnicas que se tomaron.
Debe incluir:
Una buena forma de evaluar si la documentación de arquitectura es suficiente: ¿un desarrollador competente que nunca vio el proyecto podría entender cómo está organizado el sistema después de leerla? Si la respuesta es no, falta información.
Es el manual de instrucciones para poner el software en funcionamiento en un entorno nuevo. Si mañana necesitás migrar el sistema a otro servidor, a otro proveedor de nube o a una infraestructura propia, esta documentación es lo que hace posible hacerlo sin el proveedor original.
Debe incluir:
Mientras que la documentación de arquitectura y despliegue está dirigida a equipos técnicos, la documentación funcional está dirigida a los usuarios del sistema —sean internos o externos— y a quienes necesiten entender qué hace el software sin entrar en cómo lo hace.
Debe incluir:
Si en el futuro otro equipo técnico va a modificar o extender el software, esta documentación es lo que les permite hacerlo sin tener que hacer arqueología del código —leer cientos de archivos para entender cómo funciona algo que debería estar explicado en un documento—.
Debe incluir:
Este bloque cubre lo que hay que hacer para que el sistema siga funcionando en el día a día y lo que hay que saber para reaccionar cuando algo falla.
Debe incluir:
Recibir un paquete de documentos no es lo mismo que recibir documentación útil. Para verificar que lo que te entregaron cumple su propósito, hacé estas tres pruebas:
Prueba 1: despliegue limpio. Pedile a alguien con conocimientos técnicos —puede ser un desarrollador de confianza que no haya participado en el proyecto— que intente levantar el sistema desde cero usando solo la documentación de despliegue. Si no puede, la documentación no sirve.
Prueba 2: modificación guiada. Pedile a ese mismo desarrollador que haga un cambio pequeño pero representativo —agregar un campo a un formulario, modificar una validación— usando solo la documentación para desarrolladores. Si necesita preguntarle al proveedor original cómo hacerlo, la documentación no sirve.
Prueba 3: recuperación simulada. Simulá una falla —"se borró la base de datos" o "el servidor no responde"— y verificá que los procedimientos de recuperación son completos y ejecutables. Si algún paso dice "contactar al proveedor", ese paso es una dependencia no resuelta.
La documentación que se escribe al final del proyecto, contra el reloj y después de meses sin documentar nada, es sistemáticamente peor que la que se produce durante el desarrollo. Exigí que la documentación sea un entregable progresivo: cada hito del proyecto debe incluir la documentación correspondiente a lo construido en ese hito.
Pedir documentación no es un capricho de quienes "no entienden de tecnología y necesitan que les expliquen todo". Es una decisión que protege la inversión. Un desarrollo de software puede costar decenas o cientos de miles de dólares. Que todo el conocimiento sobre cómo opera ese activo resida exclusivamente en el proveedor que lo construyó es un riesgo de negocio que ninguna otra industria aceptaría.
Imaginá que encargás la construcción de un edificio y el arquitecto te entrega las llaves pero no los planos. Cuando necesites hacer una ampliación, o reparar una filtración, o simplemente entender por dónde pasan los cables, vas a depender de que el arquitecto original esté disponible, recuerde lo que hizo y quiera ayudarte. En el mundo físico, eso es impensable. En el mundo del software, es la norma.
No tiene por qué serlo. La documentación que describimos en este artículo no es un lujo ni un costo adicional: es parte del producto que estás comprando. Exigila desde el contrato, verificá que se entregue durante el proyecto —no al final— y comprobá que sirve antes de dar el proyecto por terminado. Tu independencia tecnológica futura depende de eso.
¿Quieres evaluar cómo aplicar esto a tu proyecto?
Cuéntanos tu caso →