1 de junio de 2011

Sobre el proceso del software

Después de otro par de meses secuestrado por mis actividades académicas, decido regresar con esta entrada que habla sobre el llamado proceso del software.

Hace una semana hice entrega de un breve documento con toda una reflexión sobre el tema del proceso de desarrollar software haciendo uso de la metodología Personal Software Process (PSP), en base a la lectura de un artículo publicado en cierta revista de renombre, a solicitud de uno de los doctores en el posgrado, cuyo tema de investigación ha sido la Ingeniería de Software.

Fue hasta cierto punto divertido y hasta cierto punto frustrante a la vez, el intentar leer el rostro del doctor cuando tuvo frente a él este trabajo. Si bien su rostro no reflejó emoción alguna, tuve el privilegio de que mi trabajo fue leído con detenimiento de principio a fin.

Recuerdo que en una entrada anterior que trataba sobre Software orgánico, les conté sobre una antigua discusión que tuve con un amigo acerca de este tema, en donde presentaba algunos puntos de vista y mi postura ante esta temática.

Sin más preámbulos, he aquí un extracto de mis reflexiones en este trabajo que he presentado en el posgrado, titulado "La disciplina en el proceso del software":


El software no se produce, se desarrolla. Esta frase que se encuentra en el artículo no puede definir mejor a las actividades que realizan aquellos que ven en el software una caja mágica en la cual, pareciera que se puede obtener de ella cualquier cosa imaginable por cada persona, grupo de personas o empresa. Todo es posible.

Esta labor ve un lienzo en blanco o un bloque de mármol en cualquier necesidad que se tenga de una aplicación informática. Se puede entender entonces que se requiere de ciertas condiciones subjetivas para iniciar con los trabajos de transformar la nada en algo tangible, basados en la imagen de lo que hemos idealizado.

Hasta este punto, podemos decir que el desarrollo de software es un arte y que las personas que se dedican a este menester pueden ser considerados artesanos. Sin embargo, al igual que los alfareros o que los mimbreros, la técnica se debe de perfeccionar en busca de, por ejemplo, demorar menos en la materialización de esas ideas. Lo mismo debe de perseguirse con respecto al buen uso de las materias primas.

Es así que el llamado artesano debe de enfrentarse a un proceso más que a una actividad lúdica, en el cual, debe de adoptar una disciplina en sus actividades y tiene que establecer métricas para asegurarse de que su técnica va mejorando.

Como bien lo apunta el artículo, la diferencia entre los estudiantes y los ingenieros incorporados al ámbito profesional consiste en producir resultados de calidad que sean consistentes a lo largo del tiempo y por consiguiente, que puedan llegar a ser predecibles.

El trabajar con el proceso personal de software en el postgrado ha sido una decisión muy adecuada, ya que el alumno en esta etapa tiene la madurez suficiente para comprender el fin que persigue el implementar una disciplina en el proceso de desarrollo de software y el adoptar esta metodología.

No ocurre así en un nivel académico inferior en donde el alumno, al igual que lo hace el artesano, primeramente busca el tener el poder de materializar una idea mediante la experimentación con diversas herramientas y materiales, para formar una técnica primigenia que, si pudiera darse el caso, habrá de perfeccionarse con el tiempo.

La disciplina en el proceso del desarrollo de software efectivamente introduce a la ingeniería con sus números en esta labor que es considerada hasta cierto punto cálida y artesanal, pero marca la pauta entre lo subjetivo y lo objetivo, entre la incertidumbre y la confiabilidad. Da inicio pues a la transformación del burdo artesano en el refinado ingeniero de software.


Después de haber conocido y experimentado con PSP, queda claro que una disciplina en el proceso de desarrollo mejora la productividad y la calidad del software. Lo anterior se encuentra estadísticamente demostrado.

Lo que no podemos pensar es que un modelo de calidad de software termine por asesinar, literalmente, aspectos tan humanos como la creatividad y la personalidad, en la búsqueda de una producción indiscriminada, orientada al consumo.

No es lo mismo la búsqueda de mejorar las formas en las que se desarrolla el software, que la búsqueda de erradicar por completo el factor humano. El software se desarrolla, no se produce.


Los veré en la siguiente entrada.


Charles