Leo en este artículo una reflexión acerca de que al área de negocio no le importa cómo está hecho tecnológicamente una funcionalidad o servicio de negocio siempre cuando funcione. Y eso me suscita una reflexión.
Creo que todos hemos oído alguna vez, en algún despacho, aquello «no me importa como está hecho mientras funcione«. Como ya comentaba anteriormente en este blog, parece que la única preocupación es desarrollar la aplicación lo antes posible y ponerla a disposición del negocio. También se suele decir, que a los responsables de la empresa (los que en definitiva pagan el sueldo a los empleados de T.I) no les interesa la tecnología con qué está hecho este software. Evidentemente esto es muy importante hoy en día, con tanta competencia por atraer a un nuevo puñado de clientes.
Mi opinión es que esta mentalidad conlleva riesgos y costes que pueden permanecer ocultos y que es conveniente sacar a la luz. Evidentemente, como profesiones T.I. no debemos agobiar a personas que no son técnicas con un discurso basado en la tecnología (seguro que si nos paramos a mirar una presentación que hayamos hecho hace poco abundaran las siglas tipo WSDL, SOAP, XML, ESB, SOA y cosas por el estilo) olvidándonos exponer que lo principal es mostrarles como con esta tecnología les vamos ayudar a mejorar su negocio. Pero es nuestra responsabilidad, también, no dejar de explicar con un lenguaje accesible los pros y los contras de las decisiones técnicas más relevantes.
Si sólo primamos la velocidad de desarrollo, nos encontraremos por ejemplo con aplicaciones web que:
- no separan la lógica de presentación, de la lógica de negocio, ni esta última de la lógica de acceso a datos. Una vez entregado la aplicación y puesta en producción nos encontraremos que su mantenimiento va a ser un auténtico problema. Un mínimo cambio en una tabla nos obligará a cambiar toda la aplicación.
- Por supuesto, tampoco será reutilizable. Cuando otra aplicación necesite esa misma lógica de negocio tendrá que volver a implementarla. Y esto se repetirá n veces. En dos o tres años nos encontraremos con decenas de aplicaciones que hacen lo mismo y que tienen la lógica de negocio repetida.
- También nos encontraremos con otros problemas no ya funcionales, sino técnicos pero que tendrán un gran impacto sobre el servicio que damos a nuestros clientes. Si primamos únicamente la velocidad de desarrollo y hacemos las aplicaciones «como sea» nos encontraremos que no escalan bien, que no soportan 20 usuarios concurrentes y que dejan de prestar servicio en el momento menos oportuno.
- Que tienen errores y que no son tratados correctamente, que no dejan trazas para que podamos investigar que les está ocurriendo. Con un código fuente ilegible, no documentado y difícil de mantener. En definitiva, tal vez en un año o dos, tendremos que hacer de nuevo la aplicación.
¿Merece la pena primar únicamente la velocidad de desarrollo?
19/01/2011 at 22:27
¿Cómo alguien llega a la conclusión que será más rápido si
no se lo hace bien? Algo no bien hecho (no digo mal), será más
difícil de ajustar, corregir, adaptar, mantener, evolucionar, etc.
Si lees «Clean Code» de Robert C. Martin, lo deja muy
claro.
20/01/2011 at 08:55
Completamente de acuerdo en que la parte técnica es muy
importante para la reutilización y mantenimiento de las
aplicaciones. No obstante, en mi opinión, la gente de negocio no
tiene por qué saber nada de ello. Es el responsable técnico quién
se debería encargar de que el desarrollo de una aplicación siga las
buenas prácticas definidas por la experiencia. Es también el
responsable técnico quien debería estimar el tiempo de desarrollo.
Sólo en el caso en que la estimación del responsable técnico supere
el plazo previsto por el negocio habría que comunicar al negocio
decisiones que minimizarán el tiempo de desarrollo en contra de,
por ejemplo, un mejor diseño.
20/01/2011 at 09:07
El negocio no tendría porque conocer siquiera cuestiones técnicas… El problema es que Negocio es el que tiene que pagar el proyecto, y si ven que hay dos opciones: una cuesta 100 y la otra 150 ¿Cual elegirían? Habría que explicarles que merece la pena la segunda porque es cuestión debido a determinadas características técnicas.
21/01/2011 at 11:27
Voy a decir un «Sí» entre comillas. Depende de la empresa.
El negocio debería confiar en su responsable técnico para tomar esa
decisión. Si el responsable técnico dice que es mejor (a la larga)
pagar ahora 150 pues adelante. Pero estoy de acuerdo en que en la
práctica sí será necesaria cierta explicación de por qué.