viernes, 21 de julio de 2017

Entender el trabajo del desarrollo software


La tecnología es bella y absorbente en sí misma.

Y el desarrollo software es bello y absorbente en sí mismo. Prendados de la belleza del propio software, entusiasmados por el desafío que significa hacer un programa o implementar una nueva tecnología, los desarrolladores profesionales pueden a veces olvidarse de cuál es el verdadero sentido de su trabajo.

El desarrollo software profesional rara vez es un objetivo en sí mismo. Está al servicio del negocio. Sirve para crear un producto vendible, o para automatizar procesos, o para disponer de un canal de relación con clientes, o para integrarse con proveedores, o para medir la actividad, o para... 

Una tecnología, por atractiva y elegante que resulte para el desarrollador, no es un fin si no está al servicio de los objetivos del negocio, si no nos ayuda a conseguirlos o mejorarlos.

Puede resultar algo triste para el desarrollador más vocacional...pero es así. Y mejor tenerlo claro.

En el libro 'The DevOps Handbook' se menciona a Randy Shoup, antiguo director de ingeniería de Google. Cuando describe el ambiente en el equipo que desarrolló Google App Engine dice:

everyone knew that our job was not to 'write code' but it was 'run a service'.

Esa es justo la idea. El trabajo no es hacer código por sí mismo, sino disponer de un servicio.

Si en Google lo tienen claro, el resto también puede ¿no?