Ventajas que nos venden: El pan para hoy
Un ejemplo claro y público de esta filosofía lo podemos encontrar en la administración, como el Framework de desarrollo para microservicios de la Junta de Andalucía (ADA Fwk MS). Sobre el papel, la idea es fantástica: ofrecer un ecosistema donde el andamiaje está resuelto y el desarrollador solo tiene que preocuparse por la lógica de negocio. Es un inicio rápido, seguro y estandarizado. Es el "pan para hoy".
Desventajas a medio/largo plazo: el hambre para mañana
- El framework sobre otros frameworks (y el infierno de las versiones): Muchos de estos desarrollos corporativos no son más que un "wrapper" o envoltorio sobre tecnologías consolidadas como Spring Boot, Angular o React. ¿El problema? El mercado avanza a una velocidad vertiginosa, pero el equipo interno que mantiene el framework corporativo tiene una capacidad limitada. Como resultado, la organización se queda atrapada en versiones obsoletas. Spring Boot saca una nueva versión mayor, pero tú no puedes actualizar porque el framework corporativo aún no es compatible, exponiendo a la compañía a vulnerabilidades de seguridad y privando a los equipos de nuevas funcionalidades.
- Acoplamiento forzado y el peso de las dependencias (el síndrome del elefante): Al adoptar el framework corporativo, generalmente te obligan a bregar con dependencias que no necesitas. Esto significa que tu pequeño microservicio —que a lo mejor solo necesita exponer un endpoint REST básico— termina heredando transitivamente librerías para generar PDFs, clientes SOAP legacy, drivers obsoletos de bases de datos y motores de plantillas que jamás vas a usar. Este acoplamiento a dependencias innecesarias no solo engorda los entregables (los famosos JARs o contenedores hipertrofiados en Java) y penaliza los tiempos de arranque (algo fatal en entornos cloud modernos), sino que aumenta drásticamente la superficie de ataque. De repente, tu aplicación tiene que ser parcheada de urgencia por una vulnerabilidad crítica en una librería de procesamiento XML que tu código ni siquiera necesita, pero que el framework te ha obligado a tragar. También se podría mencionar en este apartado ese gran problema de diseño que te obliga a implementar métodos si heredas de alguna clase del framework; esos @Override con return null que tanto y tanto he visto, porque en tu proyecto nunca jamás se va a llamar a ese metodo o función pero que por obligación alguien debió implementar y encima devolviendo nulo.
- Documentación deficiente y la muerte de la "Developer Experience" (DX): En el mundo real, si tengo un problema con Spring o Angular, lo busco en Google, en StackOverflow o pregunto a la IA y tengo cientos de respuestas. Si tengo un problema con el FrameworkCorp 3.1, dependo de una wiki interna que probablemente lleve dos años sin actualizarse. Y eso en el mejor de los casos. En lugar de acelerar el desarrollo, pasamos horas depurando código ofuscado o librerías internas mal documentadas. El resultado es exactamente el contrario al perseguido: la experiencia y la moral del desarrollador caen en picado.
Minimización del progreso y fuga de talento: Al obligar a los desarrolladores a usar este marco de trabajo corporativo, se les aísla del mercado real. Dejan de aprender los estándares, patrones y frameworks modernos que demanda la industria para convertirse en "expertos" en una herramienta que solo existe en las cuatro paredes de esa empresa. El talento inquieto se frustra y desaparece.
El mismo martillo para todos los clavos: Es la famosa Ley de Maslow o Golden Hammer. Como hemos invertido cientos de miles de euros en crear este framework, ahora hay que usarlo para todo. ¿Una API compleja y transaccional? Framework corporativo. ¿Un microservicio ligero o un simple script de integración? Framework corporativo. Se fuerzan soluciones antinaturales solo por cumplir con la norma.
Un corsé para la innovación: Estos frameworks suelen ser muy rígidos. Si el proyecto requiere una base de datos NoSQL exótica o una librería de procesamiento asíncrono que no estaba prevista por los arquitectos originales, integrarla se convierte en una pesadilla burocrática y técnica. El framework encorseta las soluciones y asfixia la creatividad de los ingenieros.
Estandarización de las malas prácticas por falta de formación: Se tiende a pensar que el framework "lo da todo hecho" y que es "a prueba de tontos". Esto lleva a las empresas a recortar en formación de calidad. Se limitan a decir: "usa el framwork corporativo, ya te lo da hecho". La realidad es que acabas teniendo 50 aplicaciones construidas con el mismo patrón deficiente, propagando las mismas inconsistencias arquitectónicas a gran escala. Una arquitectura (por muy buena que parezca) nunca podrá sustituir a un equipo de desarrolladores bien formados en principios SOLID, Clean Code y diseño de software.
Opinión final
La abstracción es una herramienta poderosa pero, como decía Joel Spolsky, todas las abstracciones no triviales tienen fugas (leaky abstractions). Cuando esa abstracción te aísla del estándar del mercado, te condena a la obsolescencia.
El mero planteamiento de querer generar un marco de trabajo corporativo es una idea obsoleta. Hace 20 (o 30) años podía tener algún sentido, y no dudo que en aquella época se lograron casos de éxito, pero hoy en día, a la velocidad y grado de madurez existente en las herramientas que proporciona el mercado y sobre todo basadas en software libre, lo considero un gran atraso.
Desde mi experiencia, el enfoque moderno no debería ser crear un "framework dictatorial", sino proporcionar plantillas, librerías pequeñas y modulares (sin acoplamiento fuerte) y guías de estilo claras. Y sobre todo, la mejor inversión que puede hacer una empresa no es empaquetar código para que sus empleados piensen menos, sino invertir en la formación de calidad para esos empleados con el objetivo de que piensen mejor. Eso sí es pan para hoy, y un banquete para mañana.

Comentarios