Me apetece hacer apología del puesto de programador, porque creo que es necesario por dos motivos fundamentales y relacionados: no se le considera un puesto apetecible por ser jerárquicamente bajo y no se tiene conciencia de que la experiencia en la programación sea útil. En resumen, que el puesto de programador no se considera de futuro[1]. Pero no es el futuro
profesional del programador[2] de lo que quiero hacer apología, sino de la labor del programador en si: difícil pero necesaria y apasionante[3].
Los buenos programadores son imprescindibles para que este mundo funcione. En la eterna, manida y estéril discusión de las atribuciones profesionales se suele denostar la labor de programador en favor de la figura del
arquitecto de software. No voy a entrar aquí en lo importante de una buena dirección y coordinación en un proyecto de desarrollo (que lo es), sino de lo importante que es el trabajo
de base. Porque el de programador en un puesto intrínsecamente bajo desde el punto de vista jerárquico. ¿Significa eso que es un trabajo rutinario, sin retos ni creatividad? En absoluto. Es un trabajo
muy decisivo, a veces creativo y de gran responsabilidad casi por definición.
Es difícil porque hacer software es intrínsecamente difícil[4][5] Y el creer que toda la dificultad se puede abstraer del programador hacia arriba en la jerarquía no deja de ser una especie de
pensamiento mágico alejado de toda realidad. Es prácticamente imposible hacer un análisis y diseño completos sin resquicios y teniendo en cuenta todos los
detalles del sistema final, tanto funcionales como de rendimiento y seguridad. Es muy frecuente que aparezcan aspectos dependientes de que la implementación sea óptima y adecuada al uso del sistema final.
Es de una gran responsabilidad porque, entre otras cosas, es muy fácil hacerlo mal y no es trivial descubrirlo[6]. El programador moldea con sus manos el sistema final que va estar funcionando, transforma en realidad, en funcional, un concepto ideal. Y es el que más directamente que se da de bruces con las limitaciones del mundo real, de las herramientas y los sistemas. Es el que, si es brillante, es capaz de dar soluciones a esas limitaciones o al menos no acrecentarlas. Pero un programador no muy hábil o simplemente poco disciplinado o descuidado puede provocar errores, tanto fáciles de detectar como demasiado sutiles para ser detectados cuando deben, en la fase más temprana posible del desarrollo.[7]
Tengo que decir que lo que yo entiendo por programador es lo que a veces se denomina "desarrollador", algo un poco más amplio que solo tirar líneas, pero me niego a renunciar a usar el término: me gusta decir programador, me gusta programar.
[1] Y es posible que no lo sea
:( Me gustaría pensar que, por lo que cuento después, lo es.
[2] Bueno, hay muchos futuros dentro del desarrollo. Uno, ascender. Otro, especializarse. Pero bueno del futuro
profesional prefiero que hablen los comentaristas...
[3] Obviamente hay mucho que comentar de los aspectos sociales del programador, que pueden condicionar, pero no hablaré de ellos. Para saber más
pasa por aquí ( bueno,
o por aquí)
[4] "The complexity of software is an essential property, not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence"
No silver Bullet, Frederick P. Brooks[5] Un poco más actual:
Software Is Hard, Kyle Wilson[6] Me gusta mucho la frase de
Brian Kernighan: "Depurar es el doble de difícil que escribir el código por primera vez. Entonces, si escribes código tan inteligentemente como te sea posible, no vas a ser, por definición, suficientemente listo para depurarlo" Depurar es otra habilidad quizás no demasiado valorada del programador experto.
[7] Metodologías de desarrollo y/o testeo adecuadas y acordes con el proyecto aceleran la caza de errores, pero la disciplina y experiencia del programador son la base del desarrollo de calidad.
Me conformaría con que me dejaran hacer mi tr
(Puntos:2)( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )
A mí lo que me gusta programar, y me gusta hacerlo bien. Pero la labor creativa que comentas solamente se da cuando te dejan hacerlo. Normalemente lo que te piden las empresas es que no te pares a hacer un programa bien hecho y estructurado, sino que hagas un churro que esté funcionando rápido.
Algunas veces he tenido que pelear con mis jefes para poder emplear más tiempo en hacerlo bien, otras veces lo he tenido que hacer a escondidas (sí, hacer las cosas bien a escondidas) y a veces me ha tocado hacer horas extras (no remuneradas, por supuesto) con tal de hacer un buen programa. Las peores veces no he tenido más remedio que hacer una porquería, y no me he sentido nada bien conmigo mismo.
Y es que por lo general no les importa que el programa vaya a ser difícil de mantener o de peor calidad. Si hay algo que va a tadar 100 en hacerse pero después 10 cada vez que tenga que mantenerse, prefieren que tardes 10 en hacerlo aunque luego te cueste 100 cada mantenimiento.
Envíos descartados por Mu [barrapunto.com]
El lenguaje ...
(Puntos:2)( Última bitácora: Miércoles, 28 Diciembre de 2011, 00:46h )
Ahi esta el futuro de los incapaces.
No estoy de acuerdo
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Domingo, 26 Junio de 2011, 17:42h )
Desde luego que está muy mal que los que no hacen su trabajo aún encima insulten y desprecien a quienes lo hacen en su lugar, pero limitarse a dedicarles unas palabras amables y unas palmaditas en la espalda no es que sea muchísimo mejor.
Salu2
Re:Si no eres jefe, no eres nadie
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
yo llevo 8 anios siendo desarrollador, no es tanto como mucha gente, pero si que es mas que algunos, como dice Mig21, soy programador, es mi trabajo y me gusta, he probado lo de ser jefe de proyecto, "programando" en el word y rellenando hojas de excel a base de emails... lo siento, no me gusta, y por eso lo deje para volver a ser programador.
lo que tu comentas es algo que yo tambien he visto y se ha comentado bastante por aqui (en algunas entradas de McPolu, por ejemplo), la idea general a la que me he enfrentado es que "si tienes mas de 30 anios y sigues siendo programador, eres un fracasado"
de todas formas, y aunque no sea lo habitual, si que hay opciones de futuro estrictamente tecnicas, la mayor parte de ellas pasa por ser arquitecto.
en este aspecto, la forma comun de ver a los "arquitectos" es gente que crea los disenios, se pasa el dia entre diagramas y UML y no tira una linea de codigo asi le maten, en mi opinion un arquitecto que no programa es un mal arquitecto y es muy posible que el solito lleve un proyecto al fracaso.
hago un inciso aqui para mencionar a la gente con titulo que dice que ellos no son programadores y que ellos "disenian"... bien, yo tengo titulo y llevo suficientes anios en esto como para saber que un disenio aparentemente perfecto puede fallar estrepitosamente si no conoces las peculiaridades de la plataforma, y esa cosas solo se aprenden de una manera: tirando lineas, probando cosas y aprendiendo de tus propios errores (y los de otros)
afortunadamente hay otro tipo de arquitectos, los que ademas de hacer diagramas si que programan, suele ser gente que lleva programando muchisimos anios, que se intenta mantener en la cresta de la ola y que, llegado el caso, se remangaran y se liaran a picar codigo como el que mas.
desafortunadamente, parece ser que este tipo de gente escasea, me siento orgulloso porque a lo largo de mi vida profesional he conocido a unos cuantos, he aprendido un huevo de ellos y espero, en el futuro, parecerme a ellos.
en cuanto a lo que hablas del extranjero, te diria, por mi experiencia en irlanda y en francia, que si y no, me explico.
si, hay jefes porque si, ahora mismo mi jefe directo (un Afrikaner viviendo en Londres) es un jefe de desarrollo que lo unico que ha hecho de programacion en su vida es un aplicacion en ASP (el antiguo), que encima no funciona (la he tenido que debugear yo), el tio esta al nivel de los peores jefecillos de chiringuitos espanioles que me he encontrado, por encima de el esta otro afrikaner (amiguito suyo del alma, viva el nepotismo!) que es un estupendo politico, habla de puta madre, pero no tiene ni puta idea de las responsabilidades que tiene (razon por la cual me largo de esta empresa en enero, por cierto, les he tenido que aguantar ya demasiadas chorradas y marrones)
al mismo tiempo, en esta misma empresa (es una multinacional), te encuentras con que el CEO es ingeniero informatico, estaba en el departamento de computacion distribuida de su universidad y asiste con regularidad a reuniones tecnicas y no solo conoce de que va el tema sino que hace preguntas inteligentes y aporta algo (acabo de tener una reunion con el, para presentar un proyecto de integracion de todas las aplicaciones en uso internamente de la empresa)
en mi anterior empresa, tambien en irlanda (aunque era una multinacional americana), el jefe de proyecto era un tio que se habia tirado programando 40 anios, y aunque no conocia exactamente el entorno que nosotros estabamos desarrollando (java, webservices...), si que entendia los problemas que iban surgiendo, ofrecia consejos u opiniones perfectamente validas (y siempre reconociendo que lo que estaba diciendo podia ser una chorrada) y era una gozada poder hablar con el claramente del estado de la aplicacion. Cuando se fue la jefa de la zona EMEA (otra informatica con titulo y varios masters), hubo dos candidatos a sust
Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
Re:--Machaca--
(Puntos:2)End Of Line