domingo, junio 03, 2007

¿Qué nos hace buenos Ingenieros de Software?

En nuestra vida diaria tomamos decisiones basados en los modelos mentales que construimos del ambiente que nos rodea. En la medida en que seamos capaces de abstraer adecuadamente nuestro entorno, las decisiones que tomemos serán más efectivas y nuestros éxitos más frecuentes.

En la pintura, en la música, en la poesía, la capacidad de abstracción humana puede mostrarnos lo sublime de la esencia de las cosas, prescindiendo de aquellos detalles que pueden distraer nuestros sentidos. Matisse, en su "Mujer desnuda" es un ejemplo maravilloso de abstracción.

Y así como en las artes, en la Ingeniería y especificamente en la Ingenieria de Software, la capacidad de eliminar los detalles superficiales para quedarnos con un modelo general que simplifique el entendimiento de un problema complejo, es vital.
Pero ¿qué es la abstracción? ¿ Por qué se torna tan importante desarrollar estas habilidades para el éxito de nuestros proyectos, y mirando a largo plazo, de nuestras carreras?

La abstracción tiene 2 aspectos, el primero que enfatiza el proceso de remover todos los detalles superfluos con el fin de simplificar la realidad problematica que estamos atacando y la segunda, que incide en el proceso de generalización de aquellas propiedades comunes para extraer conceptos generales y sus propiedades (Por ejemplo, clases y sus métodos en POO)

De este proceso de abstracción obtenemos un modelo simplificado de la realidad compleja, en el que nos basaremos para diseñar e implementar nuestras soluciones de automatización o comunicaciones. De nuestra capacidad de abstracción depende, entonces, el éxito de nuestros proyectos.

Sin embargo ¿qué estamos haciendo para mejorar estas habilidades? ¿Existe alguna técnica, método, disciplina o principio fundamental que nos ayude en ese sentido?

Al parecer, las capacidades de abstracción se desarrollan en la adolescencia y solamente el 30% a 35% de los adolescentes logran alcanzar el nivel adecuado.

Sin embargo, el entrenamiento es indispensable. Los ejercicios que se plantean en los cursos de modelamiento y programación orientada a objetos (POO) son fundamentales para la práctica de la profesión en el futuro. Estos cursos deben ser fortalecidos y ampliados en contenido para el entrenamiento del futuro ingeniero de software. Igual en los cursos de postgrado y maestría, en los que la capacidad de eliminar y discernir los detalles superfluos de los fundamentales debe ser requisito indispensable para la obtención del grado. Como entrenamiento, talvez puedan modelar el proceso de pensamiento que los lleva a cada uno de ustedes a leer este blog.

1 comentario:

Mila Balarezo dijo...

Me atrapó el cuadro de Matisse, pintor que me gusta y la relacion con los ing de Software. =)