Cita de Ray Ozzie sobre la complejidad en el desarrollo de software

Raymond Edward Ozzie es desde mediados de 2006 arquitecto jefe de software de Microsoft sustituyendo en ese puesto al mismísimo Bill Gates (que se ha declarado admirador de su trayectoria), antes trabajó en empresas importantes como Lotus Development e IBM, además de emprender aventuras empresariales de éxito (sus empresas terminaron siendo adquiridas por otras más fuertes). Dentro de su trayectoria profesional se especializó en el software de trabajo en grupo, formando parte del grupo de desarrollo de Lotus Notes, software con el que se comenzó a trabajar hace maś veinte años y que en la actualidad, con las sucesivas versiones que han ido apareciendo, sigue en la brecha con una gran cuota de mercado.

Además de la trayectoria profesional exitosa de Ray Ozzie, su nombramiento también ha sido resultado de su conocimiento y experiencia en la integración entre el trabajo en grupo e Internet y se haya visto en él la persona capaz de establecer un puente entre las soluciones de escritorio de Microsoft y el enfoque actual de usuarios y aplicaciones que no es otro que la red.

Una de las citas más conocidas de Ray Ozzie es que “la complejidad es destructiva. Chupa la sangre de los desarrolladores, hace que los productos sean difíciles de planificar, construir y probar, introduce problemas de seguridad y provoca la frustración de usuarios finales y administradores”.

No puedo estar más de acuerdo con él, cuanto más complejo es el software que se desarrolla más problemas tendrá en todas las fases de su ciclo de vida y por tanto, más esfuerzo y coste tendrá asociado. Es cierto que cada aplicación o sistema que se desarrolla tiene una complejidad inherente, pero también lo es el hecho de que los desarrolladores tendemos a añadir un plus de complejidad al producto. Esto es así porque en muchas ocasiones nos empeñamos en tirar de teoría a la hora de hacer los sistemas, en otras porque intentamos que el sistema esté integrado con todo lo integrable y en otras porque intentamos que la primera versión del producto sea la definitiva, en lugar de realizar desarrollos iterativos que reducen complejidad y permiten que los usuarios se vayan adaptando al sistema e ir moldeando con la experiencia los requisitos funcionales.

Hay que hacer convivir la simplificación con las necesidades en materia de organización de sistemas que esté implantada, es decir, lo más fácil por ejemplo es que la aplicación tenga su propio sistema de terceros, tenga en tablas propias información que se mantiene preferentemente en otras aplicaciones, que se rehúse a utilizar soluciones corporativas, etc…, pero si en todos los casos se aplicase esta filosofía de funcionamiento lo que tendríamos al final es una multitud de sistemas estanco con información redundante y con el paso del tiempo, incoherente. No es sencillo encontrar el justo medio en esto, como tampoco lo es determinar hasta dónde se llega en la primera versión del sistema ni qué soluciones aplicar a nivel funcional, de arquitectura, de codificación, etc…

En cualquier caso lo que hay que plantearse es que si hay dudas se vaya siempre por el camino más fácil (ya habrá tiempo de soluciones más elaboradas o complejas). Insisto, si hay dudas, si sistemáticamente vamos a por lo fácil resolveremos algunas cosas pero a la vez crearemos nuevos problemas.

Por otro lado, tal y como comenta Ray Ozzie, la complejidad es algo que al final sufrimos todos, cliente, proveedor, usuarios, departamento de sistemas, departamento de explotación y que provoca, al ser una fuente continua de problemas, un gran desgaste.

1 comentario

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 )

Google photo

Estás comentando usando tu cuenta de Google. 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 )

Conectando a %s

A %d blogueros les gusta esto: