archivo

Archivos diarios: agosto 4, 2011

Glenford J. Myers comenzó en este negocio hace más de cuarenta años en IBM. Es autor, investigador y emprendedor en el campo del desarrollo de software, arquitectura de ordenadores, comunicaciones y redes de ordenadores. Sus primeras publicaciones son de hace más de treinta y cinco años y se extienden hasta la actualidad.

Es muy significativo que una persona con esta experiencia haga la siguiente reflexión (traducción libre): “Intentamos resolver un problema apresurándonos en el proceso de diseño para tener tiempo suficiente una vez finalizado el proyecto para descubrir los errores que cometimos cuando nos precipitamos en el proceso de diseño”.

El desarrollo de software tiene mucha memoria y lo que se te ha olvidado o no has querido hacer, después termina llamando a la puerta cobrándote intereses.

Son muchos autores los que consideran que la búsqueda de la solución perfecta en el desarrollo de software requiere de un esfuerzo exponencialmente superior al necesario para conseguir una buena solución, teniendo en cuenta además que la perfección es un concepto abstracto y que no se va a terminar de conseguir nunca.

En los proyectos desarrollo de software hay que buscar lo práctico, la Ley de Pareto es una regla muy útil y que debemos tener siempre en cuenta.

Otra regla muy interesante es la Ley de Parkinson en la que se indica que siempre que el proyecto esté abierto se tenderán a hacer tareas independientemente de la utilidad real de las mismas.

Otra referencia, la tenemos en el Principio 90-90 o de Cargill que al fin y al cabo es una versión de la Ley de Pareto adaptada al desarrollo de software.

Una solución “perfecta” requiere en muchos casos la introducción de una complejidad técnica y o funcional en el software que provocará precisamente el efecto contrario al que se está buscando. Es necesario huir de la complejidad o por lo menos de toda aquella que no sea necesaria para conseguir un producto que satisfaga las expectativas del usuario. David Gelernter define muy bien esta situación cuando comenta que: “La belleza es la última defensa contra la complejidad”.

La ingeniería del software no busca desarrollos perfectos sino que busca proyectos bien ejecutados. Los principios y metodologías ágiles persiguen lo mismo.

Bjarne Däcker, es un profesional que se merece todos mis respectos, empezó como programador en Ericsson en 1966, por lo que lleva 45 años en este negocio y es por ejemplo miembro de la Real Academia Sueca de Ciencias de la Ingeniría, sin embargo no estoy de acuerdo con su siguiente cita: “Un sistema software debería ser como una sinfonía de Mozart: Perfección en todos los niveles”.

Tal vez la ejecución final deseable de un sistema de información debería ser esa e incluso hay aplicaciones que gestionan sistemas críticos (aquellos en los que un fallo puede provocar pérdida de vidas o poner en peligro la continuidad de una organización) donde la calidad exigible a los resultados es muy alta.

Sin embargo, la búsqueda de esa perfección por sistema puede provocar que el proyecto entre en una espiral donde no salga beneficiado nadie.