(Algunos) Pensamientos sobre ingeniería de software

El silver bullet del desarrollo es el programador, o mejor dicho: su experiencia personal. La tecnología, la plataforma, los procesos, las metodologías son importantes, pero no tan importantes como tener buenos desarrolladores.

Y no me refiero a personas que sepan “todo”, sino a personas que se estén preguntado todo el tiempo si las microdecisiones que toman cuando construyen el código son buenas o son cuestionables. Ahí está la diferencia entre un buen artefacto y uno malo. De esas microdecisiones emerge la calidad (o no) como característica.

Además, si la construcción de software es equiparable al proceso de adquisición de conocimiento del dominio, entonces quienes construyen el artefacto (todos, cada uno con su parte) son los que deben tener el conocimiento concreto sobre el dominio. O mejor dicho, en el juego de preguntar sobre el dominio y construir el artefacto es que van a terminar sabiendo mucho sobre el dominio, que quedará cristalizado como artefacto (es conocimiento empaquetado).

Por eso creo que el proceso y la metodología son menos importantes: no se puede reemplazar con nada el conocimiento del dominio que adquiere quien construye el artefacto. Es como estudiar: uno termina aprendiendo.

Y todos los años el proceso recomienza, cada estudiante debe estudiar otra vez, no hay manera de trasvasarle el conocimiento como si fuera un líquido. Ningún proceso o método “reemplazará” el tiempo que le tomará a un programador “estudiar” el dominio, conocer la aplicación… Esto lo sabe cualquier desarrollador que haya tenido que trabajar con código de otro…

En esto entrará también la documentación. No es lo mismo estudiar con o sin documentación. Como tampoco es lo mismo dar una clase sobre helicópteros que pilotear uno: en la guerra no hay tiempo de escribir el manual. En fin.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Mauro Gullino blog © 2014