archivo

Archivo de la etiqueta: James Horning

Las cicatrices son el framework más valioso en nuestra profesión es algo en lo que la mayoría estamos de acuerdo. Hasta que no terminas por llenarte de barro no aprendes la lección por mucho que te hayan intentado aconsejar antes.

Estamos tan convencidos de que vamos por el camino correcto que no prestamos atención a que todos los mapas indiquen que vamos en la dirección equivocada.

A veces incluso tenemos que caer varias veces en el mismo charco para terminar de darnos cuenta de que nos estamos mojando.

Pero el conocimiento se encuentra ahí, en descubrir qué hemos hecho mal y por qué, debiéndose analizar también el contexto en el que hemos actuado. No es posible realizar un buen análisis y obtener unas conclusiones adecuadas sin analizar en qué entorno o contexto hemos realizado nuestro trabajo, tal vez el problema no se encuentra en haber actuado de una determinada forma sino en haberlas puesto en práctica en un contexto que no era el adecuado.

Jim Horning tiene una cita que resume perfectamente el papel de la experiencia y de los fracasos en nuestro desarrollo personal y profesional: “El buen juicio proviene de la experiencia. La experiencia proviene del mal juicio”.

Una de las citas más conocidas de Horning es la siguiente: “Nada es tan simple como esperamos que sea”.

¿Es este un enfoque pesimista que aplicar al desarrollo de software o refleja una realidad?, ¿según ese planteamiento deberíamos optar a la hora de hacer una estimación o una planificación por la opción más conservadora?.

La respuesta a estas preguntas es compleja.

Es cierto que el desarrollo de software está sometido a la incertidumbre y que el grado de incertidumbre no es siempre el mismo, ya que dependerá de muchas variables: tipo de cliente, el cliente en sí, la complejidad del proyecto, la tecnología, etc…

En base a esto tengo claro que una estimación o una planificación tiene que estar acorde a ese contexto. Puedes hacerlas teniendo en cuenta la existencia de circunstancias ideales, pero después debes aplicar un factor corrector que adapte las mismas a la realidad del contexto en el que se va a trabajar, tú lo agradecerás, pero el cliente a la larga también (aunque eso implique unas estimaciones en coste o planificación superiores a las que tal vez tenía pensado).

Jim Horning lleva más de cuarenta años en este negocio dedicándose principalmente al campo de la investigación. Doctorado en Stanford, desarrolló los primeros años de su carrera laboral en la Universidad de Toronto, pasando después siete años en el Xerox Parc (entre 1977 y 1984), tras esa etapa siguió desarrollando su labor investigadora en otras entidades y centros.

Hay una cita de Horning, que refleja en gran medida la complejidad del trabajo que realizamos, ya sea cuando realizamos el mantenimiento evolutivo o adaptativo de un sistema o realizamos un desarrollo siguiendo un enfoque iterativo e incremental donde en cada iteración se pasan a producción partes funcionales del software: “La ciencia informática es la única disciplina en la que nosotros consideramos la construcción de una nueva ala a un edificio como si fuera un mantenimiento”.

Y es así, podemos cometer errores de gran impacto cuando se realizan modificaciones sobre un sistema en producción: funcionalidad mal implementada o mal especificada que puede afectar a una función de negocio importante, efectos colaterales, etc… y que después pueden obligar a tener que actuar con urgencia lo que a la vez puede traer consigo nuevos problemas.

El desarrollo de software es así, tal vez por eso nos gusta tanto a la par de que nos trae muchísimos (demasiados) problemas.