Devolver el orgullo al nombre de "programador" para solucionar el déficit de programadores

miércoles, 30 de julio de 2008

Hace unas semanas atrás discutíamos en el foro de mi facultad acerca de las diferencias entre los títulos de "programador" y "desarrollador". En este foro comentaban maestros y alumnos acerca de esta distinción, entre los comentarios más frecuentes se encontraban que el programador simplemente codifica y el 'desarrollador' analiza, planifica, codifica y muchas otras cosas más. Esto me hace recordar la etapa del desarrollo de software de manera artesanal que tomó fuerza a finales de los 60's. Sin embargo, desde ese entonces, el desarrollo de software ha avanzado, aunque a pasos lentos que actualmente aun se sigue produciendo software a manos de técnicos y programadores artesanos.

Enrique Dans menciona el problema de la desvalorización de los programadores en su primer artículo referente al tema en Libertad Digital:

...el programador es considerado una especie de "obrero especializado", y sometido a una economía de salarios bajos, inestabilidad laboral, elevada rotación y fuerte incidencia de estrés.
Esta es la consideración que se tiene, cuando debería ser otra muy distinta.
Ser programador es un trabajo creativo, un papel indispensable en la economía de hoy que merece muchísimo respeto y que genera un elevado valor. Sin embargo, ¿dónde están los programadores? ¿Por qué no salen de las universidades, dispuestos a convertir esa hiperabundancia actual de ideas en código y a participar en esa revolución consistente en crear tantas actividades en el seno de la red? ¿Qué profesionales están generando las carreras de Informática o algunas Ingenierías, y por qué tienden a rechazar la idea de programar como si fuera un estigma o algo típico de obreros especializados?

En España, a este lado del túnel, se necesitan programadores. Y los programadores necesitan una reivindicación urgente de su profesión, que recupere el legítimo orgullo de quien crea, de quien desarrolla, de quien se responsabiliza de un todo, de quien se enamora de un proyecto y no se limita a ser un obrero en el mismo, sino un verdadero arquitecto. Se buscan programadores con orgullo y capacidad para serlo. Pero por lo que se ve, habrá que mirar debajo de las piedras.


Y México no escapa de este problema. Sumado a esto está la deserción de los estudiantes en las carreras de informática y sistemas computacionales, y las matrículas se reducen cada vez más. Como señala Emilio Osorio en la revista Software Gurú:
El desarrollo de software atrae cada vez a menos jóvenes, y muchos de estos cambian de carrera antes de graduarse... Mucho se ha hablado de las causas de esta crisis, algunos culpan a la falta de profesionalismo y experiencia real de los maestros, otros, al mal ejemplo que damos los que somos parte de esta industria: nuestras jornadas de trabajo, niveles de estrés y costumbres geeks no son muy atractivas para jóvenes de 18 años que sólo se quieren divertir.
Leyendo más acerca de porqué se ha infravalorado el título de programador he encontrado varias perspectivas. Una de estas alude a la poca importancia que le dan las empresas y casas de software a los programadores, viendo en ellos a simples máquinas mecánicas a los cuales se les dan unos planos de la construcción de un determinado software y produce código que hace lo que el analista le ha planteado. Tal como lo menciona Enrique Dans hablando acerca de la concepción común de un programador en la publicación de altianews de septiembre de 2007:
...mientras en nuestro entorno, la palabra “programador” define un trabajo de baja cualificación, casi mecánico, asociado al traslado de las especificaciones de un analista en líneas de código ejecutables por un ordenador, lo que las empresas necesitan no es eso, sino una noción más moderna del término: la de un profesional mucho más autosuficiente, con conocimientos de ingeniería del software, teoría de la computación, matemática, algorítmica e incluso nociones de estrategia de negocio, que desempeña una actividad de elevada cualificación y responsabilidad. Enrique Dans: “Programadores: cuando falla la base”
Otra de las rezones se da en el artículo mencionado son las instituciones académicas, ya que los profesores influyen en gran manera en los alumnos a despreciar el puesto de programador.
...mientras los profesores en las Escuelas Técnicas, insistiendo en el error y manifestando una clara incapacidad para formar a ese tipo de profesionales, se afanan en convencer a sus alumnos para que huyan de la programación como de la peste.
Ricardo Galli, creador de Menéame, también menciona este problema en su antiguo blog:

...más del 70% de los alumnos de las ingenierías informáticas están completamente desmotivados y/o desinteresados por su carrera, especialmente la programación.

Quizás se debe a que durante muchos años de habló que era la “carrera del futuro”. Quizás también se deba a que ser un buen programador es cada vez más difícil y que obliga a un esfuerzo intelectual muy importante. Quizás también se deba a la “falta de perspectiva” de cómo es la profesión en los centros importantes: mucho esfuerzo pero a la vez mucha autoconfianza y coraje.

Seguramente los profesores tenemos parte de esas culpas. Conozco a muchos que piensan que un “ingeniero no necesita programar”, conozco también a muchos que ya no se acuerdan de cómo se programa. Pero también conozco a muchos profesores que son unos monstruos programando y dando clases, pero esos justamente son los más “odiados” o ignorados por esa gran mayoría de alumnos que sólo desean aprobar las asignaturas de la forma más sencilla, segura y sin liarse demasiado el coco. Así muchas veces terminan festejando al profesor que les cuenta batallitas por que así sí que aprenden “cosas prácticas” y útiles.

Pero sí, los profesores –incluido yo–, somos parte importante del problema

Aunque los artículos hablan acerca del problema en España, en México he visto el mismo problema en mi propia universidad, tal vez no de forma tan extrema, pero si intentando convencer a los estudiantes de buscar un "nivel más alto" como lo es el Ingeniero de Software o "Desarrollador", los cuales según la concepción generalizada, programan menos y están más arriba en la escala jerárquica empresarial.

Otro problema son los sueldos de los programadores, que como ya he mencionado antes, las empresas desvalorizan la labor del programador, así que pagan bajos sueldos. Sin embargo, a estos mismos les urgen programadores.
...la empresa cree que necesita programadores a la vieja usanza, y pretende pagar dos duros a quienes son, en realidad, profesionales capaces de destilar ideas en código y convertir el proyecto en realidad. Y ante semejante estímulo, los profesionales simplemente rehuyen la confrontación y buscan otras metas. Y es que pasar de obrero a arquitecto no sólo requiere un nivel superior de cualificación. Supone, además, que existan incentivos para ello.
A diferencia, otros se arriesgan a opinar que no es que falten programadores, los hay, lo que hace falta es motivación. Se refieren a la motivación del programador, pero esto no es sino un reflejo de lo que tales programadores han aprendido durante su carrera y de la manera en la que ven el puesto de programador. Aunque lo que menciona Jordi Abad en su blog es muy cierto:
...el trabajo de programador está asociado a la base de la estructura jerárquica de una empresa. Esto implica: bajos salarios, mala reputación y comerse muchos marrones de las capas superiores de la pirámide. Es un trabajo muy poco agradecido. A pesar de ello se trata de un trabajo necesario e imprescindible por parte de una empresa que se dedica a programar software.
Ricardo Galli propone además sus propios puntos de vista referentes a las causas que generan estos problemas:
  1. Las empresas grandes que pueden pagar bien a los buenos programadores tienen obsoletas estructuras piramidales que lo único que logran es quemar a los buenos programadores en menos de un año.

  2. Las puntas de esas pirámides suelen ser aquellos que no quieren saber nada de programación y se dedican a ascender, delegando toda responsabilidad a los “analistas senior”, que a su vez delegan y culpan a los “analistas junior” y así abajo en la cadena hasta llegar al buen programador que está a punto de dejar porque ya está quemado.

  3. Empresas grandes que venden carne de ingenieros al kilogramo pagando salarios de becarios y haciendo verdaderas chapuzas porque al final nadie es el responsable. ¿Alguien recuerda al web del Congreso y tantas otras administraciones por ejemplo?.

  4. Las administraciones y grandes empresas, como tienen problemas en mantener a sus buenos programadores (por 1 y 2), contratan ingenieros al kilogramo a las que se dedican a venderlos.

  5. Las empresas pequeñas buscan programadores “básicos”, que sepan un poco de Visual Basic, con suerte Java, y montón de otras cosas como instalar MS Office o “un servidor Linux”.

  6. Muy pocas empresas tienen asumido que sus programadores requieren un entrenamiento inicial especializado en lo que va a hacer –que no puede brindarle ninguna universidad o ciclo formativo– y que esos programadores también necesitan una formación continua –vía cursos específicos o tiempo y tranquilidad necesario para trabajar en proyectos con técnicas y métodos más modernos y diferentes–.

  7. El problema de la disfunción metacognitiva, muy generalizada entre los informáticos.

  8. Existe una especie de presión a las universidades para que “formen profesionales adecuados al mercado del trabajo”. Ese mensaje ha calado profundo en muchos profesores, pero aún más entre los alumnos que exigen que se les enseñe Java desde primero –y nada más que Java– porque es lo que demanda el “mercado laboral” y que hace que pasen olímpicamente de otras asignaturas que marcan diferencias, por ejemplo álgebras o conceptos complejos de la “ciencia de la computación”.

  9. Quizás por #6, muy pocos programadores dedican tiempo a leer, aprender y navegar mucho por Internet, que se ha convertido en la fuente principal y fundamental para aprender las nuevas técnicas, tendencias y formas de llevar adelante proyectos. Existe una especie de sentimiento generalizado –que todavía no puedo comprender, con lo guapa y divertida que es la informática y programación– de “en mi poco tiempo libre me olvido del ordenador”…

Como bien lo ha dicho, he visto mucho de esto con mis compañeros de clases y colegas de trabajo. A muy pocos de ellos les llama verdaderamente la programación y muy pocos leen y se mantienen actualizados. En la región sur de México existen muy pocas empresas especializadas en desarrollo de software, y los que están, ofrecen bajos salarios y no tienen mejores prácticas de desarrollo. A esto también me quiero referir, a la centralización de las empresas en el Edo. de México, Monterrey y Guadalajara. Esto provoca que muchos jóvenes con deseos de superación y con grandes capacidades pierdan de la oportunidad de poder desarrollarse profesionalmente ya que vivien en otros estados.

También quiero citar a una publicación de
BusinessWeek en donde señala una importante consultora acerca del déficit de talentos en la India para el 2010.
Building showpiece campuses the size of many U.S. colleges is just one way big Indian employers are battling to hold on to budding engineers, designers, and finance specialists... Today, companies face high turnover, escalating salaries, and shortages of qualified workers and managers. Less than a quarter of companies surveyed in 2006 in India by McKinsey & Co. said they were meeting recruiting needs. By 2010, McKinsey predicts, India will face a shortfall of 500,000 staff capable of doing work for multinationals.
Con este problema en puertas, las empresas Indias están necesitando trabajadores para las multinacionales y atrayendo mano de obra de los países vecinos y de América Latina, con lo que deberemos afrontar más rápidamente este problema. Menciono esto porque, debido a los sueldos de un programador en México en comparativa con otros países, parece ser que hace falta concientizar de la importancia del programador, el cuál es la parte más activa e importante de una empresa. Como bien dos programadores crearon Google, Microsoft y Apple. En salarios, los programadores mexicanos se encuentran en el lugar 20 de los países con mejores sueldos (tablas de salarios en México), justo debajo de España y Corea, ocupando Hong Kong y Suiza los pirmeros puestos.

Parte de la solución reside en el cambio de mentalidad del profesorado y del gobierno. Por ejemplo, en Argentina, según el periódico La Gaceta, se está diseñando un programa de becas para las carreras de TI y así poder incrementar el número de matrículas y reducir las bajas para lograr afrontar los nuevos programas económicos del país.
El flamante programa contempla la entrega de 6700 becas, con una inversión total de 52 millones de pesos para el período 2009-2013 que serán destinadas a jóvenes de todo el país que estudien en universidades nacionales.
Las becas serán destinadas a quienes estudien las carreras de Ingeniería Electrónica, Ingeniería en Telecomunicaciones, Ingeniería en Computación, Ingeniería Informática, Ingeniería en Sistemas de Información, Licenciatura en Informática, Licenciatura en Análisis de Sistemas, en Sistemas y en Ciencias de la Computación.
Cambiando la mentalidad de los empresarios (los de más alto nivel jerárquico) , la academia, y estrechando la brecha academia-sector productivo es como se logrará incrementar nuevamente las matrículas en las carreras de TI y mejorar la economía nacional con base en el conocimiento.

Para finalizar quiero recomendar y citar una
entrevista al Dr. Carlos Montes de Oca en Software Gurú:
...el dueño de una fábrica de coches sale a las 6 de la tarde, y ahí tiene su fábrica, con su valor intacto; puede venderla y recuperar su inversión. En cambio, el dueño de una fábrica de software, a las 8 de la noche que sus empleados ya se fueron a su casa, está descapitalizado. Lo único que tiene son escritorios y unas máquinas depreciadas.
No perdamos el orgullo de ser programadores, las empresas están cambiando a darnos mayor importancia porque nos necesitan. Y no pretendamos llamarnos Desarrolladores (Developers) solo porque la gente que no programa crea que es un nivel más alto.

11 comentarios:

Marcs dijo...

Muy buena disertacion, hace poco en el foro encontre un articulo que publicaron de que en la India, su mejor tactica es el estudio de ciencias y todo ese rollo, lo que llamo mi atencion es la declaracion de un empresario que dice: "Al finalizar su escuela secundaria, un estudiante indio habrá destinado 2 millones de minutos en su formación intelectual. El estudiante estadounidense pasa aproximadamente 900 horas en la clase y 1.500 horas en frente a la televisión".
Aunque el problema radica en varios puntos importantes del porque se desprestigia al programador, lo cierto es que los estudiantes no quieren pasar el mayor tiempo de su vida de estudio, "estudiando", "programando" y quieren pasar la clase y obtener su titulo sin mayor problema ni sacrificio.
Queda claro que concientizar a las empresas, universidades y organizaciones de que la base de nuestro mundo tecnologico radica en esas personas "que no tiene vida social y que estan en el zotano de la empresa" abrirá puertas a mas personas que realmente quieran ser programadores.
Por ejemplo aqui en Playa del Carmen son pocas los empresarios que piensan que la automatizacion de sus negocios es la mejor inversion que pueden hacer. La mayoria piensa que es un gasto. Pero ese... es otro tema.

Jorge Ruiz Aquino dijo...

Si, y la India ya nos ganó el partido en cuanto a desarrollo de software tmbn, no solo en matemáticas, y ahora lo está haciendo China. Como dice el Dr. Montes de Oca, el único nicho que nos queda es la cercanía con los E.U., a ver si sabemos aprovecharlo.
En cuanto a concientización, tienes mucha razón, sin embargo es posible, lo han logrado en otros países, la cosa está primero en comenzar con la academia, que deben comenzar a enseñar lo que se usa en el mercado laboral, y estrechar la brecha que hay entre la industria-academia, y sobretodo con las transnacionales que son las que saben más de esta necesidad.

Baldemar dijo...

"No perdamos el orgullo de ser programadores, las empresas están cambiando a darnos mayor importancia porque nos necesitan. Y no pretendamos llamarnos Desarrolladores (Developers) solo porque la gente que no programa crea que es un nivel más alto."
Mas bien te estas sintiendo inferior por que solo codificas, el ser desarrollador , aparte de programar es otras cosas.Nunca se asume que el desarrollador no codifica.
Cuando salgas al mundo real a trabajar, y no solo "depto. de sistemas" veras que hay mas cosas que hacer que solo programar(que es mi favorita).

Baldemar dijo...

Otra cosa,crees que con cambiar un nombre se solucionara el deficit de programadores?
Yo lo dudo...o igual y entran mas, pero al ver las tareas que hay que hacer se saldrian de la carrera.

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Jorge Ruiz Aquino dijo...

@Baldemar: Y lo dice alguien que aprendió a programar antes de salir de la carrera solo por la presión de esa situación? jajaja

Baldemar dijo...

¿Que tipo de argumento es ese?
Eres experto en crear cortinas de humo.
Respondiendo a ese pobre argumento:
Entonces tengo mas merito, por que llevo poco tiempo en la programacion y he aprendido muchas cosas rapidamente, mas de 1 persona me lo ha dicho.

Baldemar dijo...

Un tip para tu blog, debes de poner un enlace de:"Continuar leyendo", no todos los lectores quieren chutarse el articulo y estar bajando el scroll.

Jorge Ruiz Aquino dijo...

@Baldemar: Gracias por el tip, hay muchas cosas que mejorar, pero eso con el tiempo. Por lo demás, da igual.

Casidiablo dijo...

Excelente artículo! Si me permites pongo una pequeña referencia de el en mi blog, en la entrada en donde discutimos practicamente lo mismo ;)

Jorge Ruiz Aquino dijo...

Claro, yo tengo tu blog en mi lector RSS. Y pondré tmbn la referencia a tu blog en mis links favoritos.