reloj analógico (interior)

Ese discurso del time to market, de que todo depende de la velocidad de poner algo en producción, de si los tiempos son muy convulsos y se necesita una increíble rapidez de reacción para dar respuesta a las necesidades de negocio, etc., etc. ya está muy manido, pero eso no quiere decir que no sea cierto.

Y hablando de velocidad de desarrollo, nos encontramos con una paradoja curiosa: cuántos más recursos tiene una empresa y más personal dedicado, parece que es más lento desarrollar algo. Esto en un principio, no debería ser así por supuesto ¿cómo puede hacer más cosas y más rápido una startup con dos personas que una empresa con cientos de empleados?

Y  no me refiero únicamente a ideas geniales o una gran innovación, en el que a una única persona se le ocurre una gran idea y la pone en marcha. Me refiero a la funcionalidad más sencilla.

Pongamos el caso de un servicio sencillo, simplemente una consulta de cualquier recurso que haya en la empresa, por ejemplo, la localización y detalles de una oficina. Para entendernos, me estoy refiriendo una simple consulta SQL sobre una base de datos relacional ¿Cuanto se podría tardar en hacer este servicio REST? Creo que si se tarda más de un par de horas es un fracaso. Pero una vez implementado ¿Cuanto se tardaría en pasarlo a producción? Si se tarda más de un día debemos considerarlo otro fracaso ¿no es así?

Pero ¿cuánto se puede tardar en la realidad…? pues no es extraño ver plazos de una semana para implementarlo y otra semana (quizá dos) para ponerlo en producción. Y con esto estoy obviando todos los tiempos “administrativos” para conseguir el presupuesto, asignar recursos para hacerlo, etc. etc…. ¿Podemos permitirnos tardar un mes en tener un simple servicio de consulta en producción?

¿Cuáles son las causas para esto? ahí va una pequeña lista, por supuesto no es exhaustiva…

  • Creo que hay demasiados departamentos implicados
    • Para hacer este servicio sencillo, en una empresa grande, es posible que tengamos coordinar 7 u 8 departamentos (Metodología, Arquitectura, Gestión de entornos, Bases de datos, Administración de entorno web, etc. etc.)
    • Creo que los equipos de desarrollo deberían ser más responsables de lo que hace, incluso, ¿por qué no? de llevar el software a producción y hacerse cargo de él.
  • Los skills de los desarrolladores
    • En España, al menos, el modelo más extendido es el de la factoría de software y en demasiadas ocasiones, las personas que tienen que hacer estos desarrollos no tienen los suficientes conocimientos o experiencia. Muchas veces, el modelo se basa en añadir fuerza bruta (muchas horas/hombre con un coste/hora muy bajo) en lugar de contratar a verdaderos expertos que en mucho menos tiempo y con mayor calidad nos harían el desarrollo (y con un precio final menor).
  • La metodología
    • Un problema que se tiene en las grandes empresas es que la metodología normalmente se enfoca en la gestión de proyectos muy grandes, con decenas de personas y varios años incluso. Esto hace que para hacer un proyecto pequeño exista demasiado “overhead”, excesivo trabajo burocrático…
  • Las herramientas
    • Muchas empresas homologan unas herramientas (pueden ser las más caras del mercado) y obligan al desarrollador a usarlas. No hay libertad para que el equipo de desarrollo pueda elegir las que mejor convenga para el tipo de proyecto o las que mejor conocen. Y eso que muchas veces, estas herramientas más adecuadas son gratuitas frente a las carísimas herramientas “oficiales”.
  • Los pasos a producción
    • Creo que debería darse más libertad al equipo de desarrollo, aunque sea una simple herramienta de autoservicio o que la propia herramietna de integración continua sea capaz de desplegar automáticamente (en el entorno de Integración, por ejemplo).

Conclusión

En el desarrollo de aplicaciones y servicios tenemos un problema, y por desgracia es un problema bastante grave. Es necesario cambiar los hábitos y procedimientos, dar más libertad a los equipos de desarrollo exigiendo que sean auténticos expertos.

En una empresa hay mucho talento y potencial, pero es necesario encontrar la fórmula para poder aprovecharnos de esto, de sus grandes recursos, simplificando los procedimientos, la forma de hacer las cosas, y dar más libertar a estos grandes profesionales. Por nuestra parte, también, tener una actitud abierta al cambio…

Foto: Bill Adler