Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

mig21 (7781)

mig21
  reversethis-{moc.liamg} {ta} {pb12gim}
https://twitter.com/yapw

Hola, soy Miguel. Algo que pueda ser relevante aquí... Uhmm... Me gusta escribir en mi bitácora de BP [barrapunto.com] y en su clon en blogspot: Yet Another Programming Weblog [blogspot.com]
Me gustaría que Barrapunto fuese un sitio con más discusiones técnicas y trato de hacer lo que está en mi mano. De todos modos, también me gusta leer flames ;)

No creo que te interese, pero en Lecturas aleatorias [blogspot.com] dejo registro de los libros que voy leyendo...

Esta es toda mi información de usuario :)

Down Kill Up Publicidad

Bitácora de mig21 (7781)

Jueves, 18 de Octubre 2007

El programador (una apología)

09:15h.
Programación
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.
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por Mu (11278) el Viernes, 19 Octubre de 2007, 01:05h (#972965)
    ( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )
    Perdona que haya leído tu post sólo por encima (por las horas que son), pero quería dejar un comentario, tal vez mañana saque algo de tiempo y me acuerde de leerlo bien :P

    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)
    por Robert h Quinn (17819) el Viernes, 19 Octubre de 2007, 10:36h (#973072)
    ( Última bitácora: Miércoles, 28 Diciembre de 2011, 00:46h )
    con mas futuro en el mundo de la programacion no es Java, Erlan, Ruby o C. El mejor lenguaje para ascender en Powerpoint.

      Ahi esta el futuro de los incapaces.
  • No estoy de acuerdo

    (Puntos:2)
    por NotFound (9262) el Viernes, 19 Octubre de 2007, 17:02h (#973255)
    ( http://barrapunto.com/ | Última bitácora: Domingo, 26 Junio de 2011, 17:42h )
    El trabajo del programador es programar, no adapatar al mundo real las ideas que los diseñadores, arquitectos, ingenieros, analistas... (sustituya aquí por el término, título o categoría laboral que esté de moda) han planeado para el mundo de Platón. Hacer diseños que funcionen en el mundo real, y modificarlos cuando se vayan viendo los defectos del diseño original, es su trabajo, no el del programador. Por ese trabajo cobran y para él han (o deberían haber) estudiado.

    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
  • por sammael (16347) el Viernes, 19 Octubre de 2007, 10:50h (#973079)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    iba a contestar a Mig21 diciendole que estaba totalmente de acuerdo con el, pero quizas pueda aportar algo mas contestandote a ti.

    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.
    [ Padre ]
  • Re:--Machaca--

    (Puntos:2)
    por Electroyonki (26375) el Sábado, 20 Octubre de 2007, 12:11h (#973477)
    Pero hombre, no esperarás entrar nuevo a una empresa y que ninguno de tus comañeros sea gilipollas.
    --
    End Of Line
    [ Padre ]
  • 2 respuestas por debajo de tu umbral de lectura actual.