Analogías y desarrollo de software II

Crónicas de Islandia IV: Consejos a viajeros

En el post anterior comentaba algunas analogías comunes en informática. En este post voy a comentar algunas un poco más avanzadas sobre desarrollo de software pero también muy comunes.

Desarrollo de software como construcción de objetos físicos

Aunque insisto en que el desarrollo es un proceso de diseño y no de construcción, esta analogía es un clásico y te encuentras la idea en casi todos lados.

Se considera que construir una aplicación es una actividad similar a construir un edificio o un avión. Se necesitan arquitectos, montones de documentación y maquetas, ingentes cantidades de dinero y numerosas cuadrillas y material especializado. Además se considera que el diseño es barato y la construcción cara. Por último este modelo mental invita a pensar en soluciones que permanecerán más o menos invariables a lo largo de muchos, muchos años.

Lo más importante que hay que decir sobre este modelo es que está completamente equivocado. Si lo veo asomar en un proyecto, sé que vamos a tener problemas, que el producto será inferior a lo que podría ser y que va a costar mucho más de lo que debería. Pero al menos es un modelo que puedes usar para comunicarte con el cliente. Y si demuestras que sabes más de construcción (estilos, historia, materiales, anécdotas sobre grandes obras…) que el interlocutor y haces una intensa labor de comunicación y pedagogía puede que consigas sacar el proyecto adelante en unas condiciones decentes. Pero en cualquier caso es un modelo terrible.

Desarrollo de software como viaje

En este modelo mental, el desarrollo es como un viaje. Sabes de donde sales, marcas un destino y estableces un presupuesto, tiempo y recursos a emplear. Con esos parámetros estableces los parámetros del viaje: Bussines, low cost, escalas, duración, fechas, extras…

Lo bueno de este modelo es que se entiende que cambiar de ruta o destino puede ser costoso o barato en diferentes etapas del viaje. Que un medio de transporte (tecnología, recurso) puede ser necesario en algunos casos. Que habrá retrasos en algunas etapas y eventos inesperados (tormentas, retrasos acumulados, accidentes). Pero creo que lo más interesante es que ofrece la posibilidad de aprender durante el viaje y cambiar de rumbo o quedarse en una etapa concreta si el cliente lo considera útil.

Lamentablemente este modelo mental no es muy común y tiende a despreciarse al parecer menos “definido” (lo cual es una mera percepción, pero es difícil convencer a alguien sin experiencia de esto), pero puede dar mucho juego si entendemos que algunos clientes quieren un viaje al África salvaje (grandes riesgos, incógnitas, mucho que ganar, caro…) y otros meramente quieren un crucero con todo pagado por el Mediterráneo (barato, en masa…). Con esta analogía entendemos que diferentes proyectos deben gestionarse, venderse y realizarse de manera radicalmente diferente. Que no hay una bala de plata.

Desarrollo de software como guerra

En este modelo mental el cliente es el enemigo y cada proyecto es una campaña militar que solo puede acabar en victoria o muerte. Es habitual encontrar este modelo en muchas grandes empresas, tanto como cliente, como proveedor. Y en esos entornos hostiles (las grandes empresas tienden a convertirse en reinos de taifas, grupos de presión e interés, cada uno con sus rencillas) es fácil transmitir esta visión y creérsela.

Lo interesante de este modelo es que es divertido. Me explico: Poder lanzar una ofensiva bélica contra el frente enemigo y conquistar cada una de las ciudades importantes en tiempo record y sin bajas, es mucho más interesante que poder entregar el módulo de gestión de inventario de una factoría de tornillos en tiempo y coste. Cada paso a producción produce héroes y gloria en lugar de trabajadores quemados y resultados mediocres. Y el fin de proyecto significa la vuelta a casa con medallas y desfile, en lugar del papeleo de cierre de esa web de abogados que acabamos de terminar.

La verdad es que este modelo solo me parece útil para motivar a la gente a continuar trabajando, o como forma de tratar con un cliente/proveedor realmente malo. Por eso, si necesitas recurrir a él significa que, o bien estas en un contexto de trabajo pésimo, o bien te estas convirtiendo en un sociópata muy competitivo que busca ganar por encima del resultado a largo plazo del proyecto. En cualquier caso, el uso de este modelo es una señal bastante clara de que deberías buscar otro lugar de trabajo lo antes posible.

Continuará…

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s