He comenzado a leer ‘the pragmatic programmer’ y la verdad es que me está gustando mucho. El libro se hace facil de leer pues está estructurado en puntos cortos, de 2 ó 3 páginas que puedes leer sin agobiarte. Cuando tengo delante un texto largo en inglés la cosa se me pone bastante cuesta arriba, pero la manera en que está estructurado el libro es ideal para gente como yo que tiene un nivel de inglés regular.
La primera reflexión que me ha gustado está en el prefacio del libro, donde se reivindica el oficio de programador. Los autores dicen que si bien el desarrollo de software debe ser abordado con técnicas de ingeniería, existe un oficio de programador que no debe ser minusvalorado. En el libro se hace una comparación entre la construcción de catedrales en la edad media, donde las técnicas de ingeniería eran muy limitadas, con la ingeniería civil de hoy en día. Está claro que esta disciplina ha avanzado enormemente, pero cuando se visita una catedral de la edad media no dejamos de sorprendernos de lo buenos artesanos que la construyeron y de como su excelente labor ha perdurado todo este tiempo, por ejemplo la de los maestros canteros o vidrieros. Lo mismo pasa ahora cuando te haces una casa: el arquitecto puede hacer un proyecto fantástico, pero cómo no des con un buen albañil, con un buen carpintero y con gente que conozca bien su oficio lo tienes claro.
En desarrollo de software pasa lo mismo. Puedes tener un diseño fantástico de una aplicación, pero necesitas un programador que te la haga. Y como en todos los oficios hay programadores buenos y malos, y muchas veces es el programador el que marca la diferencia pues, igual que el resto de oficios, un buen programador es capaz de encontrar soluciones a lo que se hizo mal en el diseño. Un programador pragmático es aquel que se preocupa de su oficio, de estar al día, de mejorar continuamente en todas sus facetas profesionales – que son muchas – y que piensa lo que está haciendo cuando programa y no trabaja con el piloto automático puesto.
Es curioso que haya mucha gente que piense que los programadores son la escala más baja dentro de la profesión informática, y que muchos programadores intentan ser otra cosa pues piensan que de esta manera avanzan en la profesión. Sin software un ordenador es un trasto totalmente inservible y sin embargo el trabajo de programador esté tan poco reconocido, incluso dentro de la profesión.
Una vez me llamaron de una tienda de ordenadores para comprarme un programa para un señor que les habia encargado un ordenador con uno de mis programas, pues este señor decía que lo que quería era mi programa. El de la tienda no sé que ganó con el ordenador, seguro que más que yo con el programa, pero aquello me llenó de satisfacción.
Creo que el símil es correcto. La mentalidad predominante piensa que el trabajo de un programador es bastante parecido al de un albañil. Al menos en lo que respecta al número de horas de trabajo que se deben hacer al día.
Creo que es un error. El gasto intelectual no es el mismo. ¿Quién puede rendir 10 horas diarias tirando código de calidad? Pero puedo estar equivocado, claro 😀
Así, mientras te meten el la facultad que «lo bueno» es dedicarte a hacer análisis y a cobrar una pasta y que eso de «picar código» es para los de FP, el resultado es gente poco preparada que apenas se aclara con el Delphi o el VB y hace… bueno, el mercado está ahí, inundando de porquería y cuando te encuentras algo en Fox ya puedes darte con un canto en los dientes.
Sin buenos arquitectos no se podrían hacer grandes edificios, y sin buenos «obreros» tampoco.
Depende del tamaño del proyecto el que un sólo programador bueno pueda hacerlo o necesites un equipo. No es lo mismo hacer una caseta de campo que «La Ciudad de las Artes y las Ciencias» (por ejemplo).
Para proyectos grandes necesitas a profesionales que controlen la vision global, mientras otros profesionales realizan las tareas al detalle, unos sin los otros lo llevan mal, porque si quien dirige no tiene a quien dirigir…. mal, pero si quien realiza el trabajo final (picar código) no tiene quien marque las pautas, quien indique las líneas maestras, mal tambien.
Porque…. ¿Podría un albañil buenisimo hacer un edificio sin planos, sin especificaciones? Seguramente si, lo terminaría haciendo, pero no sería yo quien viviera allí 😉
Está claro que en un grupo de programadores las cosas se pueden tomar por decisión democratica, pero eso no siempre es lo más eficaz, porque las discusiones «filosóficas» pueden durar días y mientras no se avanza en ninguna dirección.
Yo llevo toda mi vida profesional haciendo programas en solitariom, programas a medida según lo que necesitaban mis clientes. Pero ahora que debo hacer programas estandar, que funcionen en entornos hetereogeneos, entornos que no controlo yo, reconozco (cosa que hasta ahora no terminaba de hacer) que la función del «manager» del equipo es necesaria, que es mejor programar en equipo que en solitario. No es lo mismo programar que montar una empresa para producir programas.
En resumen, tanto son necesarios los buenos programadores como los buenos ingenieros/analistas.
Siceramente me parece absurdo con todo respeto el simil programador-obrero, ya que de mano para ser obrero no hace falta estudiar nada ni tener ningunos conocimientos tecnicos y sin embargo para ser programador es necesario como minimo tener el titulo de la fp el cual en muchos sitios no es sencillo de obtener, ademas de un buen nivel de ingles.
Otro punto que me gustaria acalarar es que en una obra entre un arquitecto y un peon hay muchos mas puestos de diversa importancia tales como capataz de obra, aparejadores, peritos y demás al igual que en cualquier empresa informatica además de ingenieros y prgramadores hay otros tantos puestos intermedios, no simplifiquemos tanto las cosas.
Asi que por favor y con todo respeto dejemos de comparar dos profesiones tan dispares en todos los aspectos como el las de ser obrero ó programador.
un saludo.