En busca del programador más barato, en busca del harakiri de una industria

¿Cuál cree Ud. que es el riesgo que más frecuentemente pasamos por alto en ingeniería software?
Los programadores incompetentes.
Hay estimaciones de que el número de programadores necesarios en los EEUU supera los 200.000. Esto es totalmente engañoso. No es un problema la cantidad; tenemos un problema de calidad. Un mal programador puede crear fácilmente dos nuevos puestos de trabajo al año. La contratación de más malos programadores sólo aumentará nuestra percepción de la necesidad de ellos. Si hubiéramos tenido más buenos programadores, y podríamos identificarlos fácilmente, necesitaríamos menos, no más.
— David Parnas (en una entrevista mítica)
Por mucho que lo haya escuchado no me acostumbro a ello. No se me va de la cabeza. El otro día, otra vez, estaba en una empresa grande, de esas que suelen ejercer el rol que en nuestra profesión solemos llamar “cliente”. Mientras hablaba con uno de los gerentes, me decía:
-No si yo estoy convencido de que si no vamos a mejores practicas de gestión software no vamos a ser competitivos. Pero te digo una cosa, eso mismo se lo cuento yo a todos esos proveedores que tenemos cada día “en la puerta” ¿y sabes lo qué me dicen? “que sí, que sí, que sí”, pero luego en lo único que realmente piensan es de qué Universidad sacar los becarios más baratos posibles.-
Y con la crisis, el tema ha ido a más.
No hace poco os contaba alguna conversación similar:
-Hemos dejado de invertir en buenos profesionales y en calidad porque en los pliegos de licitaciones que sacan grandes organizaciones lo que más se premia es el menor precio. La competencia tampoco invierte, hacerlo te hace ser menos competitivo.-
– Como la calidad no se paga, y lo que importa es el precio, es mejor contratar perfiles que no han estudiado informática, porque exigen menos salario, aunque pudieran desarrollar peor, pero eso no importa tanto.-
Y la cosa no solo afecta a la programación, en Testing, Calidad, Mejoras de Gestión de Proyectos, etc., en ocasiones, la cosa es aún peor. Ya os contaba en propongo eliminar las palabras “calidad software”, jamás volver a utilizarlas.
Con todo aquel que hablas este tema, todo el mundo te dice que no tiene sentido. Pero luego sigue siendo después de años y años la práctica de elección de proyectos y personas mas usada.
Así que decirlo, una y otra vez, y contar y explicar desde un lado y otro que contratar solo por precio no es razonable “porque al final el modelo se da la vuelta y el proyecto te va a costar el doble”, ni ponerle nombres llamativos (como deuda técnica u otros), ninguno parece ser la solución. No nos está funcionando después de tantos años.
Es un tema cultural, y esos temas son muy difíciles de cambiar. Aquí los negocios no se piensan con un horizonte de no más de 6 meses… “luego ya veremos”. Y quién decide las contrataciones… no comprende lo que cuenta este post ni, seguramente, lo leerá jamás.
Quizá la solución pase por un gran y tremendo caso de éxito o fracaso cercano a nuestro entorno.
Quizá estemos como en la fábula de la rana que muere hervida, aquella que se mete en una cazuela de agua fría, pero poco a poco se va calentando el agua, se pone tibia, y le parece agradable, pero la temperatura sigue subiendo, pero la rana no hace nada por salir… hasta que muere. Si la hubieran sumergido de golpe en agua a 100 grados… se habría salvado dando un brutal salto.

0 comentarios en “En busca del programador más barato, en busca del harakiri de una industria”

  1. Me encantan estos post sobre el funcionamiento de la profesión.
    ¿Esto solo ocurre en España? Cuando tenga algo de tiempo me gustaría comparar pliegos de licitaciones equivalentes entre varios países, a ver como varía el enfoque de los proyectos.
    En Alemania, donde llevo menos de un año trabajando, noto un mayor respeto por las cosas bien hechas. Eso sí, como contrapartida a veces tengo la sensación de que todo avanza mucho más lento.
    En España somos mucho más flexibles de cara a buscar soluciones a los problemas, lo cual puede ser o un gran valor o una fuente de ñapas.
    Saludos

    1. Este problema no es nuevo, desde que yo recuerdo en mis inicios en el area de IT, siempre el criterio determinante para la toma de desiciones en las esferas adminmistrativas ha sido el precio, en otras palabras «cuanto me cuesta», claro esta que cuando se hacen decisiones basadas en tal criterio a la larga los resultados son desastrozos. Han transcurrido muchos anos y por lo que leo las cosas siguen igual.
      Es una verdadera lastima que no se tome en cuenta el verdadero talento y capacidad de las personas, hablo al menos en el campo de IT, existe tambien otro criterio aun mas delicado y discriminatorio y es la edad del candidato, por experiencia propia se que aun despues de los 50 un buen profesional del area de tecnologia sigue siendo productivo, en todo sentido y mucho mas estable en el ambito laboral que una persona de menor edad.

      1. yo tengo 50 anyos y no me veo igual de productivo, y mucho menos en cuestiones de desarrollo de SW, cosa de la que estoy hastiado y quemado.

  2. En España tenemos la absurda creencia de que es mejor lo barato y rápido pero si pagas cacahuetes tienes monos.
    Invertir en un buen profesional/proveedor ahorra dinero a largo plazo pero en general sólo se mira la inversión inicial del desarrollo, el mantenimiendo del cutre-código que genera una oferta de un proveedor/profesional sospechosamente barato incrementa el coste por encima de la oferta de un proveedor más caro porque es mejor.
    Como se tiene la absurda idea de que el software tiene fallos «per se» y que no pasa nada si se pone en producción con fallos o errores «ya se corregirán» es lo que se suele decir.
    Pero no es cierto, cualquier proceso de ingeniería que genera algo que soluciona un problema debe generar un producto sin fallos y el sofware no es una excepción.
    Al final si se apuesta por un desarrollo de calidad «más caro» inicialmente, es cuando realmente se ahorra dinero.

  3. El problema que tenemos en España es cultural y momentario, al igual que en la antigüedad se iba al herrero para sacarte un diente (algo impensable ahora), ahora se contrata a cualquier persona como informático, quizás dentro de unos años consigamos «madurar» y darnos cuenta que el trabajo de informático también debe ser realizado por profesionales, esto beneficiará tanto al trabajador (con un sueldo digno) como al cliente (con un software bien desarrollado).

  4. Hola,
    tu artículo me ha parecido muy interesante, me gustaría aportar mis impresiones después de llevar ya casi dos años trabajando como freelance en Holanda.
    – Me he encontrado con gente que utiliza la metodología ágil «correr como pollo sin cabeza» por aquí también como lo veía en España, pero son más los que realmente llevan una verdadera organización en el desarrollo de los proyectos (aunque creo que esto también ha mejorado mucho en los últimos años en España).
    – La percepción en la industria del programador/desarrollador es distinta, aquí me da la sensación de que se valora más este trabajo que en general en España (ojo, hay muchas excepciones también), y esta es para mí la raíz de muchos de los problemas en consultorías, puesto que el nivel de desconocimiento de la tecnología es muy parecido al que pueden tener un los clientes allí, pero el respeto marca diferencias.
    – También me ha dado la sensación como a chete que a veces el desarrollo sea más lento por querer hacer las cosas bien, pero eso a la larga ahorra dinero al proyecto, ya que el mayor gasto de tiempo en un proyecto si no se hace bien no es en desarrollo, sino en depuración/testing, donde se puede producir mucho sobrecoste y donde se pone en juego la estabilidad real de lo desarrollado.
    – Los becarios están ahí para formarse y para sacar algo de trabajo mientras tanto, pero la responsabilidad debe recaer en otras personas, ya que están siendo pagadas para ello, ese es un punto más difuso en general en tradicionales consultorías españolas.
    Mi conclusión es: Mientras haya alguien que pueda vender ese software a un precio y alguien pague por ese servicio, seguirá pasando, valorar la calidad de algo es muy difícil para mucha gente por simple desconocimiento de la tecnología.
    Saludos!

  5. Lo caro no es sinónimo de mejor. Ni lo barato, por supuesto. Yo defiendo lo más barato de entre aquello que cumpla con mis mínimos de calidad, y creo que el problema es «tan sólo» de no conocimiento de lo que supone la calidad, no de querer lo más barato.
    Aunque no programo desde que terminé la carrera, vamos que no he ejercido, sigo este blog y otros de desarrollo de software y aún no he visto nada de autocrítica dentro del sector. Cuando hay un problema, normalmente la culpa no es de uno sólo.
    Pongo un ejemplo, ¿conocéis alguna web de una desarrollador web para pymes que especifique las calidades mínimas que ofrece? Está muy bien que «se adaptan al cliente» (¡faltaría más!), pero eso no quita que vendan desde sus propias landing pages qué les diferencia en calidad de otras desarrolladoras, para que los clientes no sólo las midan por el nº de líneas de código / horas / funcionalidades que pican y además sean más evangelizables en temas de calidad de software.
    Doy por hecho que al cliente no se le va a hablar en términos de deuda técnica o complejidad ciclomática, pero sí se le puede hablar en términos de claridad y escalabilidad del código. ¿Alguna desarrolladora para pymes que hable de esto y de forma sencilla en su web (blog no me vale)?

  6. Las culpables de la mala calidad son las carnicas:
    Aka:
    Everis, indra, accenture, etc etc,…
    Subsubsubcontratan hasta la muerte para proyectos zombis. Que si te muerden infectan.
    Y despues esta la gente que acepta sueldos miserables y que les manden inutiles.
    Esto no solo pasa en España por desgracia… Se está exportando.

  7. Buen articulo y puedo confirmar mucho de lo que dices. Hace poco un ejemplo de un colega mio. Estaba en un proyecto donde en 2 semana resolvio problemas que no podrían resolver en 6 meses.
    Pero el por dejar su hijo en el colegio no podía llegar antes de las 10:00 (horas flexibles?).
    Lo despidieron porque la consultora prefería tener alguien sentado en una mesa de 09:00 a 18:00 antes de tener alguien quien resuelve las problemas y trabaja entre las 10:00 y 20:00..
    Spain is different

    1. Efectivamente es lo que comentas, en españa prima la mentalidad de estar en la oficina calentando la silla antes que la de la eficiencia en el trabajo.
      También el trabajo de programador es de los peor considerados y por ello tienden a pagar poco, no tendiendo en cuenta la experiencia ni las capacidades del programador.
      Como en todos los sitios hay excepciones, pero por lo general en españa prima éste tipo de mentalidad y así nos va.

  8. En Chile, pasa algo muy parecido a nivel de licitaciones. Los que preparan la licitación ponen sus criterios técnicos, pero luego, pasa a la parte administrativa que «de facto» mete en la valoración final de la oferta un 40% en la parte económica. Por lo tanto al final es casi imposible cumplir con el «bueno, rápido y barato: elige dos»

  9. «Nunca hay tiempo para hacer las cosas bien pero sí para hacerlas dos veces»
    El software mal hecho genera trabajo lo cual es algo que les encanta a las empresas de outsourcing o bodyshopping. Y no solo genera trabajo de programación, genera también mucho trabajo de gestión, algo con lo que están encantados los managers que encuentran así una manera de justificar su trabajo y su sueldo.
    Lo anterior hace que en España el programador se vea como un asset reemplazable y con contratos precarios.

  10. Me gustaría saber cuál es la política en formación fuera de España. Aquí las empresas rara vez forman a sus empleados por temor a que se vayan, sin pensar en que lo que retienes es un programador sin formación u obsoleto. Y cuando lo hacen, muchas veces es fuera del horario de trabajo, castigando al empleado con jornadas de sol a sol.

  11. ¿Quien decide cuando un programador es bueno o malo?
    Lo digo porque he visto a programadores altamente cualificados y experimentados fracasar en entornos empresariales, y no por culpa suya.
    Creo que hay que mirar el problema con más perspectiva. La programación es algo que no debe ceñirse a la informática. No solo los informáticos deben saber programar. Los que llevan un negocio, que depende en mayor o menor medida de un software producido por la misma empresa deben tener, por lo menos nociones de que y como se puede, y debe, programar algo.

  12. Algunos tienen claro hace muchos años que en esto de la ingeniería del software lo más importante son las personas, un ejemplo es este magnifico articulo de Alistair Cockburn que todo el mundo que se dedique a esta profesión debería leerse:
    http://alistair.cockburn.us/Characterizing+people+as+non-linear,+first-order+components+in+software+development
    El primer punto del manifiesto ágil también lo dice.
    Si a pesar de la ingente cantidad de literatura y profesionales respetados que llevan años y años apuntando en esta dirección algunos siguen sin comprenderlo, pues bueno, yo tengo la esperanza de que la selección natural poco a poco vaya haciendo su trabajo.

  13. Hace un par de semanas estaba el jefe de mi empresa en la puerta de la misma fumando tras haber llegado de una comida con unos clientes; eran las 18:30 (debo estar hasta las 18:15) y lo que me dijo fue «¿Ya te vas…? ¿Te vas a casa a jugar al ordenador eh? Es que a mi lo que me gusta es que la gente esté en la oficina, aunque no haga nada, pero que esté».
    Y así le luce el pelo a la empresa.

  14. Si, esto es muy cierto. Desde una empresa pequeña era difícil competir con las grandes consultoras , pero gracias a estas practicas suicidas de pan para hoy miseria para mañana, los pequeños tenemos oportunidades. Mi empresa apuesta, por programadores veteranos de mas de 40 años para los puestos de analista y arquitectura, gente con experiencia y creativa, antes se los despedía que enorme error. Nos hemos dado cuenta que son el recurso mas valioso, los juntamos con jóvenes desarrolladores, buenos programadores, creando un ambiente de colaboración buscando la excelencia, es la única manera de lograr un buen producto, que sea imaginativo, disruptivo y que realmente sirva para automatizar procesos y sea productivo, no un producto de marketing bonito, que no sirve para nada y falla mas que una escopeta de feria. Que sigan con estas practicas, porque a nosotros nos beneficia que lo hagan rematadamente mal.

  15. Creo que hay otro tema que no analizas Javier, y es que el reponsable de la consultoría (gerente o como quieras decirle), se tiene que embolsar entre el 35 y el 70% del coste del proyecto SÍ O SÍ.
    Eso implica que si la licitación baja de 180000 a 120000, la única solución es o bajarle los salarios a los trabajadores o directamente contratar becarios.
    Después pasa lo que pasa… Y digo yo, ¿no sería más sostenible ganar menos pero tener la licitación más años? Claro que la mayoría de licitaciones se resuelven también por chanchulleo, así es que…

  16. ¿Sabes que algo muy parecido sucede en el mundo de la traducción? La mayor parte de las empresas buscan buscan traductores baratos, no eficientes.
    Supongo que escribir un programa, es como hacer una buena traducción, lleva tiempo y exige experiencia por parte del que lleva a cabo la labor y eso hay que pagarlo. Me encuentro a muchas personas que se quejan de que no entienden las instrucciones de un aparato o que ven un folleto y no están seguras de lo que quiere decir, siempre les digo que denuncien, que llamen a la empresa o le escriban un e-mail quejándose vehementemente, ya que las instrucciones forman parte del producto o servicio que han comprado.
    Lo que sí te puedo asegurar es que tanto en los EEUU como en España los precios pagados por los servicios de traducción son muchas veces irrisorios. He trabajado para varios países y me he dado cuenta de que lo que más influye sobre el precio y el aprecio de la profesión es la educación que sobre el tema tenga la gente. Es decir en los países donde se hablan más idiomas (hablo de lenguas extranjeras, no regionales), paradójicamente es donde mejor se pagan las traducciones. ¿Y por qué? Pues supongo (no lo sé) que es porque la gente es más consciente de lo que cuesta traducir y aprender un idioma en profundidad.
    A ese respecto creo que una posible solución es que los que os dedicáis a la ingeniería informática (programadores, expertos en seguridad y demás) os unierais para pedir a los gobiernos que en vuestros respectivos países se introdujeran las ciencias de la computación en primaria y en secundaria como materia obligatoria; y que esta asignatura tuviera un temario completo (aprender como funciona un ordenador, cómo montarlo y desmontarlo, algoritmia básica, etc.) y que fuera impartida por personal cualificado, nada de profes de mates o lengua dando clases de Excel, es decir por licenciados en ciencias de la computación/ingeniería informática.
    Así no solo crearíais más puestos de trabajo dentro del sector público, en una materia que además es esencial conocer, sino que por otra parte crearíais una generación mucho más preparada y consciente de la necesidad de este tipo de conocimientos, y de la dificultad de su aprendizaje.
    Por cierto en el Reino Unido ya se ha puesto las ciencias de la computación (Computer Science) como materia obligatoria en las escuelas. Un motivo para alegrarse. 🙂

  17. Otra anecdota deprimente: sé de una gran consultora tecnológica que lleva como 10 proyectos del mismo tipo vendidos, usando un software propio. Pero cada proyecto empieza de cero, con desarrolladores nuevos, repitiendo los mismos errores una y otra vez y malgastando en horas de programación. Los proyectos raramente dan beneficios. Si hubieran mantenido el grupo de programación, la experiencia y el software del primer proyecto, ahora tendrían un software sólido y serían muy competitivos, con un gran margen de beneficio. Parece que sólo se tienen en cuenta los proyectos pasados a nivel comercial, para vender que «eso se ha hecho muchas veces». Y los clientes se sorprenden de que en cada proyecto haya bugs y errores básicos.

  18. Veo que todos teneis claro lo que ocurre, llevo 27 años en TICs y lo tengo claro pero ni aunque ocurra un desastre esto va a cambiar. ¿Alguien sabe que una de las mayores entidades financieras de este pais lleva años pagando un equipo esperto de desarrollo para areglar su Contabilidad de lustros???.
    Y a que se debe? Pues a lo que comentais subcontratacion barata y con N subniveles de empresas intermediarias pagando miserias a programadores y analistas que ni siquiera son INFORMATICOS. Como dice el refranero español «lo barato sale caro» pero hay demasiados intereses creados para que esto pueda cambiar y tantos sobres como los que se mueven en otros terrenos.

  19. Javier
    Buenas Javier, e aquí mi pregunta, acabo de terminar Ingenieria Informatica superior, en mi mundo laboral no me dedico a programar, estoy en Business Intelligence , pero no obstante he salido de la carrera con esa sensación de que no tengo ni idea de nada y menos aún de Informatica, mis proyectos y examenes me centre en aprobar como fuera, y tengo la sensación de ser un pésimo programador, Que me recomiendas para enderezar mi rumbo y aprender programación de la mejor manera posible. nunca se sabe que ramas habrá que tocar en el futuro y cuando mas sepas de todo mejor. Si alguien del foro me puede ayudar también se lo agradeceria

    1. Y para qué narices quieres programar? yo llevo 25 anios programando y me siento un desgraciado por ello. Lo que quiero es dejarlo de una vez para hacer eso de Business Intelligence por lo que tu has empezado. Pues disfruta tu privilegiada situación y olvidate de limpiar chapapote.

  20. Yo solo voy a comentar que la solución no es solo la de contratar gente que haya estudiado informatica, desde luego, porque ingenieros superiores malos de cojones, me he encontrado yo a patadas en 14 años.

    1. Sergio Antonio Espósito Pérez

      El problema no es darle o no oportunidades a los becarios. El problema son las «consultoras» que ponen a becarios en puestos donde hace falta gente con experiencia.

  21. Pues lo que comentas, hace años que lo veo aquí en Argentina. Se fomenta el escalar posiciones rápido y desalienta la especialización. Por eso, no está bien visto un desarrollador con 10, 15 años de experiencia, en vez de aprovechar sus conocimientos, se lo denigra diciendo que está en ese puesto porque no fue lo suficientemente inteligente para llegar a gerente. Y así se va degradando la profesión.
    Trabajo en el mundo del software hace casi 20 años, y lamentablemente, cada vez es más común este problema de quiero pagar poco, entonces, a codificar rápido, y que el producto salga como está, se recorta en testing, en análisis, y en consecuencia la calidad es pobre.
    Y la respuesta tampoco está en las certificaciones de calidad (ISO, CMMI, etc) porque la mayoría de las empresas sólo lo hacen por la «chapa, el certificado», y particularmente en Argentina por los subsidios que obtienen por Ley de Software y los fondos gubernamentales que les ayudan a certificar. A ninguna empresa le interesa la calidad, y luego lloran cuando pierden clientes o dinero porque tienen que invertir en resolver los errores que ellos mismos generaron.
    Pero he aquí otro gran engaño de la propia industria… los grandes clientes contratan un desarrollo a A, pero luego siguen moviendo mucho dinero con los «mantenimientos» que les contratan a B y C. Y así siguen realimentando el problema, hoy el negocio está en el servicio de mantenimiento de aplicaciones, o sea, corregir errores que no debieran estar!!! (para quedar bien, agreguemos algunas nuevas funcionalidades)
    Es triste saber que no es una realidad sólo de Argentina.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This
Ir arriba