lunes, junio 06, 2011

La importancia de ser humilde

Una última palabra de consejo general cuando nos preparamos para estudiar las reglas específicas de diseño. Para producir grandes productos, los diseñadores, incluso los mejores, nunca deben sobrestimar el valor de su experiencia. Todo proyecto ambicioso de software es un nuevo reto: no hay recetas seguras.
El diseño de un gran producto de software es una nueva aventura intelectual. Demasiada autoconfianza puede hacer daño. Cuantos más libros se hayan leído (o escrito), cuantas más clases se hayan seguido (o impartido), cuantos más lenguajes de programación se conozcan (o se hayan diseñado), cuantos más software O-O se haya examinado (o producido), cuantos más patrones de diseño se hayan aprendido (o diseñado), cuanto mayor sea el número de reuniones a las que haya asistido (o se hayan moderado), cuantos más colegas con talento se hayan conocido (o contratado), cuanto mayor sea el número sea el número de proyectos en que se haya colaborado (o dirigido), mejor preparado se estará para lidiar con un nuevo desarrollo. Pero no vaya a pensar que sus experiencias lo hacen infalible. En el diseño de software avanzado no hay sustituto para el pensamiento fresco y las ideas creativas. Todo nuevo problema reclama nuevas ideas; y cualquiera, desde el experimentado jefe de proyecto hasta el último recluta, puede tener la visión correcta de una cuestión particular; y cualquiera se puede equivocar. Lo que distingue al gran diseñador no es necesariamente el tener menos ideas malas, sino el saber cómo descartarlas, venciendo a su orgullo y quedándose con las buenas ideas, hayan sido o no de su creación. La incompetencia y la inexperiencia son obstáculos obvios en la búsqueda de la solución correcta; el engreimiento puede ser igual de malo.

Fuente: Bertran Meyer "Construcción de Software Orientado a Objetos"