Ser Ingeniero, o no ser... informático

Estos días se está moviendo por Twitter bajo el hashtag #InformáticaSoluciónYA, la equiparación de las Ingenierías Informáticas al resto de Ingenierías. No me voy a meter con el movimiento, porque muchas cosas de las que solicitan son sensatas, y tienen todo del sentido del mundo. Lo que me asusta, es algunas de las cosas que se dicen. Y es que mucha gente insinua que los Ingenieros Informáticos (con mayúsculas) son los mejores. Así, sin miedo. Para mucha gente, si no has estudiado una carrera, eres un intruso. Alguien que le está quitando el pan a un buen informático de carrera.

La metáfora del arquitecto

Una de las comparaciones típicas que se suelen hacer, es la de comparar la informática con la arquitectura. Un arquitecto con carrera, diseña un edificio. A partir de este diseño, se construye un edificio. De la misma manera, un informático con carrera, diseña un sistema informático. Y en base a ese diseño se construye el sistema. Así dicho parece bonito. Una gran metáfora. Pero no deja de ser una gran mentira.

Un sistema informático, tiene una gran carga de incertidumbre. Y es algo que se acentúa cuanto más grande es el proyecto. Imaginad que a un arquitecto le dicen: “Mira, queremos construir un edificio. No sabemos cuantas plantas, pero tenemos claro que el tejado va a ser azul. Así que tú vas construyendo el tejado, y cuando sepamos cuántas, plantas va a tener, hacemos el resto del edificio”.

La informática es una disciplina muy joven, pero si algo ha quedado claro con los años, es que es difícil aplicar muchas de las técnicas que se utilizan en ingeniería o arquitectura. Por ejemplo, los metodologías de diseño en cascada, más propios de las ingenierías, suelen acabar en fracaso. Entre otras cosas, por la incertidumbre que sufre todo proyecto de software.

La creatividad (o caos), del desarrollo de software

El desarrollo de software, es en general, un proceso creativo. Aunque usemos técnicas estandarizadas, patrones de diseño o frameworks, al final lo más probable es que dos programadores (sean ingenieros o no) solucionen el problema de forma diferente. Bueno tan diferente, que seguramente las soluciones ni se parezcan. Y si ambos comparan su solución, probablemente acabarán horas discutiendo, sobre por qué su solución es mejor. ¿En cuántas ingenierías pasa esto?

Y es que al final, tirar código, es algo personal, y depende mucho de la persona que lo haga. Depende mucho de su preparación, pero mucho más de su experiencia.

El peso de la experiencia

La experiencia es algo que siempre pesa. En cualquier profesión, sea ingeniería o no, lo más lógico es que alguien con experiencia sepa hacer las cosas mejor que alguien sin experiencia. Lo curioso del desarrollo de software, es que no necesitas ir a la universidad para adquirir esa experiencia. Si cogemos a dos chavales de 19 años y ponemos a uno a estudiar Ingeniería Informática (con mayúsculas), y al otro a foguearse programando pasará una cosa curiosa. Suponiendo que el universitario termina la carrera en cuatro años (cosa nada fácil), a la hora de buscar trabajo, el chaval que no estudió carrera, posiblemente esté mucho más preparado que el ingeniero.

Y es que algo que tiene la informática que no tienen otras ingenierías, es que el conocimiento está disponible para todo el mundo. Si quieres ser Ingeniero Industrial (con mayúsculas) es bastante difícil que consigas serlo siendo autodidacta. Pero desarrollar y diseñador software puede hacerlo cualquiera que tenga ganas de aprender y aplicar lo aprendido. Tienes libros, blogs, charlas técnicas, proyectos reales de código abierto … Hay mil maneras de aprender a ser un buen programador.

No hay huevos a firmar un proyecto

Una de las cosas que piden algunos ingenieros es poder firmar proyectos como hacen ingenieros o arquitectos. Que haya proyectos que tengan que ir avalados por un Ingeniero Informático (con muchas mayúsculas) o no puedan llevarse a cabo. Yo debo ser muy tonto, pero no tendría pelotas valor, para firmar un proyecto software tal y como se desarrolla hoy en día. En serio, si un edificio se cae, la responsabilidad puede recaer en el arquitecto (incluso penalmente). ¿Alguien que haya trabajado en algún proyecto mediano se atrevería a firmar un proyecto de una consultora? A mí me temblarían las piernas.

Titulitis, elitismo y egocentrismo

Mucha gente piensa, que por haber estudiado una carrera, es mejor. Y lo siento, pero no es así. Se puede ser tan buen programador con carrera, como sin haberla estudiado. Y se puede ser malo de la misma manera. Yo conozco ingenieros que son verdaderos zotes. Y autodidactas que me dan 100 vueltas a mi y a otros ingenieros. Y también he visto autodidactas que son un zote. Hay de todo, por lo que generalizar, siempre es un problema.

Al final lo que importa es tener ganas por aprender, de entender lo que se hace (más allá del copy & yank), de leer mucho código y de programar mucho código.

Es algo que puede hacer cualquiera que se lo proponga. Y es lo bonito de esto. Y como he leído hoy en Twitter: “si un filólogo progama mejor que tú, es que algo estás haciendo mal”.



¿Quiéres que te avisemos cuando se publiquen nuevas entradas en el blog?

Suscríbete por correo electrónico o por RSS