En Slashdot, encontré el martes de la semana pasada el post de Chuck Connell, sobre su trabajo de investigación en Ingeniería de Software, "Principios de diseño de software". En dicho post Connell hace una pregunta a la comunidad que sigue el popular agregador de noticias, sobre cuáles son los principios que se deben seguir para asegurar un software de calidad. No había tenido tiempo de comentar sobre él porque toda esta semana la he tenido bastante ocupada en la oficina, pero ahora que es sábado y puedo disponer de algo de tiempo hablaré sobre dicha investigación.
Primero algo de antecedentes, Connell esta desarrollando una tesis de investigación para obtener su título de PhD en Computer Science en Tufts University. Dicha investigación busca delinear los principios básicos que permitan un diseño de software de calidad, es más el ha publicado un paper sobre el terrible estado del software en la actualidad que ha titulado "La mayoría de software apesta".
En el paper que mencione Connell propone ciertas características que debe tener el software, para ser considerado "bello" o de calidad, estas son:
- Cooperativo
- Forma apropiada
- Minimalismo del sistema
- Componentes singulares
- Localización funcional
- Facilidad de lectura
- Simplicidad
Y a lo laro del documento describe cada una de estas propiedades que son necesarias para que un software sea "bello". Al parecer este trabajo de investigación esta redescubriendo la polvora, un poco más y concluirá que el mejor modelo para desarrollo de software es el Open Source, al parecer nadie le ha dicho a Connell que lea "La Catedral y el Bazar", de Eric Raymond. En general todo lo que comenta Connell no sería más que una formalización del documento escrito por Raymond y que le valiera el reconocimiento mundial hacer más de 8 años.
Lo que me parece raro es que las instituciones educativas de todo el mundo ignoren el excelente documento de Raymond, porque el explica claramente por qué el desarrollo de software cerrado es un modelo que produce naturalmente software de menor calidad. La regla de oro que enuncia Raymond en su paper es que a más ojos vean el código, más fácil es detectar errores y corregirlos. Con lo que se concluye de que no importa la metodología que se emplee para desarrollar software, si éste es cerrado y sólo accesible por los programadores, les tomaría a estos mucho tiempo llegar a un nivel de calidad aceptable, así que software de calidad o "bello" como dice Connell y modelo propietario de código cerrado son dos objetivos incompatibles entre sí.