El Cuento de Paco y La Ingeniería Del Software
El Cuento de Paco y La Ingeniería Del Software
El Cuento de Paco y La Ingeniería Del Software
software
Por
Sergio Martín
Nota inicial: debido a que la Ingeniería del Software es un tema muy aburrido,
sobretodo cuando uno se inicia a él, he decidido contar de qué va el tema por
medio de una especie de cuento, para entender sólo la idea básica (qué es, para
qué se usa y por qué se usa). En mi caso me encanta la Ingeniería del
Software, es más una buena parte del grado que estoy cursando va de ello.
Hasta ahora sé lo suficiente de esta rama, como para haber aprobado una
asignatura anual sobre ingeniería del software al final de mi antigua carrera.
Paco no era un chico normal. Para nada. Para empezar, él en vez de nacer con
un pan bajo el brazo, nació con su propio driver para el manejo de la placenta.
Cuentan que antes de aprender a hablar castellano, aprendió C puro. Incluso a
los cuatro años ya había creado su propio compilador. Y cuando cumplió siete
años, ya tenía lista su propia distribución de Linux.
Pero no todo fue oro. En la adolescencia fantaseo con cosas prohibidas como
fueron un Windows XP pirata, aunque en una máquina virtual, y toda una
pandilla de endemoniados programas privativos. En esa temporada su camello
se llamaba Internet Explorer, él se dedicaba de distribuir sus virus en forma de
esos programas. Se metía en foros y se reía de los usuarios que se tragaban las
bromas pesadas que acababan con sus ordenadores en la casa de aquel vecino
informático, siempre disponible para echar un cable cuando un ordenador se
rompía en el vecindario. De forma paradójica, el adolescente Paco también era
uno de esos vecinos informáticos que arreglaban ordenadores gratis.
Para Paco las asignaturas de letras siempre fueron para fracasados (pero él
bien que las aprobaba raspando), y una vez que terminó su bachillerato se
enfrascó en una, para él apasionante, carrera de cinco años llamada Ingeniería
Informática Superior, lo cual, desde su simplista punto de vista, le dio total
legitimidad para sentirse superior ante los alumnos de magisterio.
Allí, entre asignaturas a las que fusilaba con matriculas de honor con sólo su
mirada, conoció a su gran, verdadero y único amor. Al principio, lo típico, que
si los primeros tonteos, que si te toco una variable por aquí, que si te rodeo
con un bucle. Y luego ya fueron a saco, que si te meto una multitarea pero
antes pongo una protección synchronized. Ella tenía un nombre, ella se
llamaba Java.
Pero con lo que Paco no contó es que cualquier carrera de informática es una
carrera que, básicamente, comienza por el final y acaba por el principio (un
paréntesis: no quiero decir con esto que todas las asignaturas de último curso
deban de ser de primero). Si al principio la asignatura más importante era la
que trataba más sobre informática, al final es la que trata más sobre economía
y empresariales aplicada a la informática. Organización del trabajo,
diagramas, Metrica 3, documentación,… Todo un cumulo de letras que a Paco
le dejó KO mientras la malvada asignatura reía y reía sobre él. El gran
enemigo de Paco se llamaba Ingeniería del Software, y le persiguió durante
toda su vida.
Porque cuando Paco creyó que ya había acabado con Ingeniería del Software,
con un notable (la nota más baja de su carrera), resultó que su enemigo nunca
moría. Eran como el bien contra el mal, la vida y la muerte, el escepticismo
científico y la pseudociencia, Sonic y Dr. Robotnik,… Ingeniería del Software
siempre estaba allí, desde el proyecto fin de carrera de Paco, hasta todo
trabajo que pisó. Él decía que sólo quería ser un programador por tal de no
saber nada de Ingeniería del Software. Sin embargo, el resto de compañeros
suyos sí optaron por subir de categoría, estando cada vez más y más en
contacto con la Ingeniería del Software, hasta llegar a Jefe de Proyecto, que
era para Paco como declararse un esbirro de la Ingeniería del Software.
Hasta que un día le tocó a él. La vida adulta le obligó a comportarse bien, a
enderezarse, y tomar la senda de la Ingeniería del Software. A Paco ya le
tocaba vivir con su novia de carne y hueso y dejar de una vez de ser un
parásito de sus padres. Y cuando llegó ese día, la Ingeniería del Software y él
se sentaron en una misma habitación para firmar las paces. En el contrato
ponía un nombre temible para Paco, y era ‘Analista’.
Así que la Ingeniería del Software se sentó delante suya, con traje, corbata y
zapatos. Los dos bandos extremos alcanzarían un pacto final. Y se reprodujo
el siguiente dialogo entre ellos:
– ¿Qué verdad?
– Claro que sí, rata del conocimiento. Dime Paco, ¿cuándo fue la última vez
que dejaste un comentario en el código? ¿Sabes que ayer otro becario más
rogó a los pies de los de recursos humanos que ‘por favor, sáquenme de este
proyecto, no puedo más’, tras intentar entender una sola línea de un programa
hecho por ti? El pobre, él sólo quería comenzar su carrera laboral tras terminar
la universidad. Pero claro, resulta que, tras tantos años que has estado como
programador, más del 80% del código de esta empresa ha sido creado por ti,
lo que está causando un gasto enorme en personal cualificado. Además de un
código complicado y difícil de entender, ni un misero comentario explicando
qué haces. Han habido tantos que no han soportado las pruebas, Paco. Tantos.
– Eso es mentira.
– Ah, sí. Con que ésas tenemos. Ahora verás. – Y la Ingeniería del Software le
pasó a Paco una hoja con un subprograma – Venga, valiente, adivina qué hace
eso.
– Pues ya lo pone aquí, en el título
“eliminaUsuarioConContraseña50EnEstadoErroneo9586”.
– Tú fuiste Paco. Tú, nada más llevar dos meses trabajando en esta empresa.
Y éste es sólo un ejemplo del gran mal que has dejado aquí. Al contrario que
tus compañeros, nunca quisiste usar ni siquiera el más mínimo de mis
fundamentos: comentar el código y dejar las cosas claras para que otro
programador cualquiera las comprenda con tan sólo echar una ojeada. Cosas
como ésta le costó jugarse a más de uno de tus antiguos jefes el puesto, debido
a que no se verificaban las principales normas de calidad del software, y
tenían que mentir en la fichas de calidad (pero tuvieron suerte porque nadie
intentó contrastar datos). Sí, eres un gran programador y eres capaz de
resolver problemas muy difíciles, y por eso eres útil para esta empresa, y por
esto es por lo que te quieren ascender. Pero antes de subir debes pensar que
nunca hiciste caso.
>> Pienso que ahora te aplicarás como todos, estoy seguro. Cuando tengas
que organizar un proyecto con diagramas, cuando tengas que echar un cable
para que tus superiores planifiquen los proyectos y estimen horas (teniendo
siempre en cuenta que el rendimiento de cada persona es diferente), cuando
tengas que pensar en que el cliente quiere un producto de calidad, ajustado a
lo que él quiere, e intentando siempre inferir lo que él intenta decir qué quiere,
pero no te lo dirá explícitamente (pues poca gente sabe lo que realmente
quiere cuando va a comprar algo). E incluso más de una ocasión teniendo que
rechazar a tu querida Java como opción para un proyecto, porque no se adapte
a lo que quiere el cliente.
>> Y también tendrás problemas. Puede que tengas que hacer el esfuerzo de
escribir documentación de análisis mientras los programadores hacen sus
tareas, puede que el cliente le diga a tu equipo, de forma clara, que el producto
no tiene nada de lo que dijo, y tengas que volver a dibujar diagramas. Tendrás
que sacar requisitos casi de la nada en más de una ocasión. Discutirás con
otros analistas e incluso con jefes de proyecto. Sin contar la documentación de
cada cosa que hacéis, pues todo debe quedar perfectamente detallado, desde la
funcionalidad hasta las pruebas.
>> Y te alejarás de la programación progresivamente, hasta llegar a Jefe de
Proyecto, puesto en el cual tendrás que ocuparte más de la planificación del
proyecto, la documentación de calidad, las largas reuniones, el contacto
directo con el cliente, y de viajes. Porque esto es realmente lo que aceptaste
ser al elegir una ingeniería informática.