¿Debe un jefe de proyecto saber programar (o haber sido programador)?

Hace unos días volví a presenciar por enésima vez en mi vida este tan repetido debate… ¿debe un jefe de proyecto saber programar (a haber sido programador antes)?
Los que decían “no”, que un jefe de proyecto no tiene porqué saber programar, argumentaban que más que saber programar un jefe de proyectos debe saber gestionar equipos, gestión de proyectos, liderazgo, temas económicos, rrhh, motivación, etc.
También comentaban que pensar que un jefe de proyecto tiene que haber pasado antes por programador era una visión anticuada que, además, había frustrado la profesión de muchas personas a las que les gustaba la informática, la parte de gestión de proyectos, pero no programar, y que por no pasar por la época de programar acababan abandonando esta profesión. Y al contrario, excelentes programadores dejaban de serlo para convertirse en malos jefes de proyecto, por que no les gustaba gestionar, pero ese era el único camino en la evolución profesional de un programador.
Dentro del grupo del “no”, había un subgrupo que iba más allá y, cómo no, sacaba el típico ejemplo de… sí, sí, es el ejemplo que estás pensando… “los arquitectos no tienen porqué saber poner ladrillos”.
Como sabéis los que lleváis tiempo pasando por el blog, lo de comparar el desarrollo software con la arquitectura, la industria, etc., es una de las cosas más peligrosas que nos ha pasado como profesión, ya lo he contado muchas veces, por lo que no me voy a extender de nuevo con ello (te dejo un post, razones por las que fabricar software no es lo mismo que fabricar coches o construir casas), por lo que es un ejemplo que hay que usar con mucho mucho cuidado.
Desde la parte del “sí”, la que argumentaba que un jefe de proyecto sí tiene que saber programar, o haber sido programador, el argumento principal era que sólo quien ha programado antes sabe realmente lo que pasa en un proyecto software. Comentaban que si no te gusta programar no deberías haberte metido en la profesión informática.
Y ponían múltiples ejemplos de “managers” y jefes de proyectos con conocimiento nulo de tecnología y programación (abogados, economistas, LADE, etc.) que cometían todos los días autenticas aberraciones en la gestión de un proyecto software, del tipo a medir productividad por líneas de código, añadir gente a proyectos retrasados, pensar que el ciclo de vida en cascada es la única manera de gestionar, sobre documentar pensado en que eso daba seguridad, pedir cosas imposibles, etc. (salieron casi todas las que te comenté en aunque muchos no las quieran reconocer, 8 cosas a tener claras si llevas un equipo de desarrollo)
Finalmente, la mayor parte de ambos grupos, los del «sí» y los del «no», parece que llegó a una especie de acuerdo, respecto a que un buen jefe de proyecto sí debía tener cierto conocimiento técnico, y de programación, y cierto conocimiento de gestión (incluyendo aspectos psicológicos, emocionales, rrhh, económicos, etc.).
Entonces, comenzó otro nuevo debate… ¿lo ideal sería que el jefe de proyecto fuese un ex-programador que aprendiese gestión o alguien con conocimientos de gestión (aspectos psicológicos, emocionales, rrhh, económicos, etc.), aunque nunca hubiese programado, pero que se formase en tecnología y programación?
… y tu que opinas?

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

0 comentarios en “¿Debe un jefe de proyecto saber programar (o haber sido programador)?”

  1. Sí. Sencillamente porque en pleno siglo XXI debería saber programar TODO EL MUNDO que trabaje en un campo técnico. Aunque sean macros de Excel. No es una cuestión de que se sea jefe, director, arquitecto… Es una cuestión de ser profesional, entender tu mundo y, ¡qué cojones!, ahorrarte mucho trabajo.
    La cosa con los jefes de proyecto es que deben saber programar por principios, pero no deberían meterse en cuestiones puramente relacionadas con el código, porque para eso están los expertos a los que se supone que coordina y dirige. Debe entender pero no ser un cuello de botella o una referencia dudosa. Es como cuando de pequeño te decían que tenías que estudiar «para ti»; alguien que dirige un tipo de trabajo debe conocer ese trabajo, en qué se basa, como piensa un experto en ese campo; aunque no sea capaz de replicar ese trabajo (y por Dios, ¡que no lo intente!).

    1. De acuerdo con Dani, todo el mundo debería saber programar, pero el problema es que aquí se le llama jefe de proyecto a cualquier cosa y a veces se confunde la figura del product manager con el de program manager o team leader….

  2. He tenido la suerte de estar en muchas situaciones y compartir con muchos estilos gerenciales. Hay multitud de variables para poder responder a esta proclama. Intentaré acotar las ideas:
    En una empresa que permite a sus jefes de proyecto implantar su estilo propio de gestión puedes compartir tarima con un jefe Excel (imputar, no hay horas extras pero hazlas, dedícale un 11,47% de tu tiempo a…) , un jefe Sauron (los ojos en tu nuca), un Sherpa (el facilitador), …
    En una empresa que tiene plantillas para todo los jefes también pueden implantar su estilo propio, os dejo esa reflexión.
    Y es que desde mi punto de vista, los jefes son necesarios, pero necesitamos jefes de la era de la información, no de la era industrial.
    El software, por ejemplo, en su creación es un proceso pasional, artístico, artesano, profesional, no repetitivo, apegado al intercambio de ideas. No he dicho nada que no haga un artista de retratos, y no creo, salvo en Corea del Norte, que alguien aplique plantillas a tal proceso artístico.
    Necesitamos jefes que patrocinen las ideas en la organización, jefes con un potencial alto en relaciones humanas, resoluciones de conflicto y que clarifiquen o faciliten la clarificación de objetivos. La definición de felicidad es «la sensación que experimentamos al alcanzar un objetivo», de ahí que podamos citar ejemplos de buenos jefes técnicos y no técnicos, porque la técnica es importante, pero no a expensas del objetivo, de lograr una meta y celebrar los logros.
    Al final del día, todo lo hacemos por dinero, y al jefe también le pedirán cuentas y le pedirán que maximice el ROI.
    Ser un buen jefe no es nada fácil. Buenos jefes hay pocos. Necesitamos artesanos de la gerencia.

  3. Un clásico!!
    Creo que no tiene por qué haber sido programador pero que, si no lo es, tiene que entender muy bien el proyecto y muchos detalles técnicos. En el mundo de la publicidad, por ejemplo (sé que no es exactamente al que te diriges pero es en el que me muevo yo), hay muchos directores de proyectos digitales que no tienen ni idea de web y esa falta de conocimiento técnico suele provocar incrementos en costes y tiempos que disgustan tanto al cliente como a los programadores.
    Saber tratar a un programador, comprender qué es un cambio «tonto» y qué es un cambio que supone horas y horas de trabajo es totalmente necesario, ya vengas de haber sido programador o no.
    Gracias por el artículo! Muy interesante, como siempre 🙂

  4. Hola: Yo he sido jefe de proyecto en varias ocasiones y no tengo ni idea de programar. Vamos, algunas nociones muy básicas. En esta historia creo que confundimos el hecho de saber programar con la complejidad del hecho de comprenderlo. Al final, independientemente de saber o no saber hacerlo, el jefe de proyecto se tiene que preocupar sobre todo del punto de origen-desarrollo-punto final y establecer un perfecto timing con el resto del equipo.
    Como jefe de proyecto una de las primeras cosas que aprendí es a establecer un «multiplicador de programador» por lenguaje de programación. Desgraciadamente es algo que solo puedes averiguar cuando trabajas directamente con un programador y es una cifra basada en la estimación de la terminación en tiempo de una parte del proyecto y el tiempo real en el que se terminaba. Había gente que tenía un excelente x1,5 mientras que otras personas era x3 o x4. Cuando has trabajado varias veces con un mismo programador, más fiable se convierte esa cifra que ayuda muchísimo a definir tiempos totales de desarrollo según estimaciones y ofrecer deadlines más realistas.

    1. ¿Y en algún momento te has planteado que los multiplicadores, los tiempos, los recursos, los puntos función están muy bien para un momento particular y para un sector particular pero que todo eso no es ni de cerca comparable a la satisfacción del cliente y a la calidad de su producto?
      Os leo escribir variables y fórmulas y estimaciones y en ninguna está descrito nada que le sirva al cliente en la entrega del producto.
      La jefatura de proyectos ES UNA PROFESIÓN y como tal debéis profesionalizaros. Si hay instrucción, claro que la hay, demasiada dicen el mismo Fayol o el mismo Taylor en sus libros. Espero que no estéis pensando que un Postgrado de Gerencia o un MBA sirvan sólo para hacer «Networking» porque eso si que son €60.000 muy mal gastados por cabeza.
      Necesitamos buenos jefes de proyecto, que sepan liderar, que sepan dialogar, que sepan escuchar y que tengan claros los objetivos y pongan claros los objetivos.
      Jefes buenos hay pocos, porque requiere un esfuerzo importante serlo.

  5. Un JP no tiene porqué saber programar ni haber programado pero sí es imprescindible que sepa cómo programar A.K.A METODOLOGÍA.
    En mi vida he hecho nada con SAS y hay que ver la cara que ponen algunos «ejpertos» en SAS con los que trabajo cuando les propongo optimizaciones a su código por simples principios metodológicos básicos.
    Y sí, he programado mucho y aún lo sigo haciendo.

  6. Hola,
    En mi opinión, un Jefe de Proyecto NO es un Programador Senior y, por tanto, ni tiene que «haber sido programador» ni «saber programar». Es un gestor que tiene que dirigir a su equipo, planificar sus tareas, realizar un seguimiento, etc.
    Si tuviese que «saber programar», la siguiente pregunta sería ¿en qué lenguaje? ¿Tendríamos Jefes de Proyecto especializados por lenguaje o deberían saber programar «en todos»? La respuesta es en ambos casos, negativa; lo que debe tener un Jefe de Proyecto es conocimientos básicos de algún, o algunos lenguajes; pero igual que debe tener conocimientos de economía, metodologías, sistemas, etc.
    Las «aberraciones» de las que hablas vienen de una clara falta de formación y de las malas costumbres que se heredan en esta «profesión». Y es que, como no existe una «carrera» de Jefe de Proyecto, la mayoría hemos llegado a estas responsabilidades desde otras profesiones y, muchas veces, desde titulaciones que poco tiene que ver con el trabajo a realizar, con la evidente falta de conocimientos y experiencia necesarios que ello supone.
    Aunque no son la solución definitiva al problema, basta ver como ITIL, PMP y similares no insisten demasiado en la necesidad de que los gestores de proyecto sepan programar, sino que dan más prioridad a otro tipos de conocimientos y experiencias.

    1. Saber programar no implica ningún lenguaje específico, ni que sea un ninja en ninguno. Un jefe de proyecto de cualquier disciplina tiene que reunir varios conocimientos, entre ellos como se construye el producto que su empresa produce (valga la redundancia). En nuestro caso esto último es saber programar. De la misma manera que un jefe de proyecto industrial debe saber que tipos de problema tiene una cadena de montaje (por ejemplo), un jefe de proyectos de una empresa IT debe poder hablar de tu a tu con su equipo de problemas de programación, aunque sea el peor programador del grupo.

  7. Si no es tecnico almenos debe delegar a un arquitecto software que se encarge de lo tecnico. Lo que no puede ir bien es un jefe no tecnico que directamente supervise a programadores. ¿Si yo no he puesto nunca un ladrillo como voy a supervisar a un paleta? Un jefe no tecnico pasa a ser un cliente del proyecto: mira resultados, pero sin meterte.

  8. Pues eso si no los «programadores» españoles sabemos programar en muchas ocasiones (somos equipos reactivos con los problemas que esto lleva + tirar líneas de código no es saber programar) encima le metes a un tio para que gestione un proyecto que no sabe cómo de importante es la formación, el testing o la calidad software pues pasa lo que pasa:
    Responsables despotas sobrevalorados y con falta de visión para acometer los proyectos Software.
    Si sale mal es que el equipo era una mierda y todos(o la parte del equipo que no se callaba) la a la calle. Si sale bien el Jp, el gerente y su p*** madre promocionan y simplemente certifican lo «buenos gestors de equipos» que son, aunque no sepan cual es la diferencia entre Kanban, Scrum o en que nivel se mueve XP o que NO siempre hay por qué aplicar metodologías ágiles.
    Lamentable, muy lamentable. Y si, es una evidencia que si quieres gestionar un proyecto software DEBES haber trabajado como desarrollador/coder/programador/picador.
    Desarrollar software es un ejercicio intelectual, artesanal y al que hay que dedicarle cariño puesto que es la base tecnológica de todo proyecto software.
    Panderetas para todos.

  9. “los arquitectos no tienen porqué saber poner ladrillos”
    Pero todo arquitecto sabe lo que es un ladrillo, que se ponen en paralelo unos encima de otros y que se unen con masa, lo que les ayuda a realizar su trabajo y al solicitar una pared.
    Por la misma razón, un jefe de proyecto debe tener nociones de programación.

  10. La eterna pregunta….
    Por desgracia en España para ser jefe de proyecto hay que saber de todo, programar, dar soporte, arquitecto de sw, analista, cambiar una bombilla…
    Creo que habría que empezar por educar a las empresas a distinguir entre un jefe de proyectos y una navaja suiza.

  11. Como todo en esta vida, hay que saber donde están tus límites.
    Para mí, que mi líder tenga experiencia o no, no es tan relevante como que sea humilde y conozca sus limitaciones y se ayude del conocimiento de su equipo o colegas para abarcar las cuestiones que su conocimiento no le permite.
    Si eres técnico y lideras, asume que habrá conceptos de gestión que ni conocerás de oídas.
    Si eres gestor y lideras un equipo técnico,asume que necesitaras asesoramiento en la materia.

  12. Creo que este vídeo resume bien el por qué sí debe tener conocimientos de programación (y sentido común):
    https://www.youtube.com/watch?v=BKorP55Aqvg
    La equiparación de un jefe de proyecto a un arquitecto es efectivamente erronea. Yo particularmente prefiero equipararlo con un entrenador de un deporte de equipo: necesita conocer lo que es ser jugador (aunque haya sido como deportista aficionado) para enfatizar con la gente a la que tiene que organizar.
    Además esta equivalencia vale también para el tema de salarios: para cobrar más no debería ser necesario «medrar» de posición sino ser bueno en tu puesto, pero ese es otro tema… jejeje.

  13. Se ha dicho antes, pero da para otro debate… ¿entiende todo el mundo lo mismo de la frase «saber programar»?
    ¿Es saber algorítmica?
    ¿Es haber programado en algún lenguaje (que no tiene porqué ser aquel que se usa en el proyecto se gestiona)?
    ¿Es programar el backend, el frontend, en BBDD, todos, alguno?
    Interesante.
    Saludos

  14. Como alumno de Ing.Informática, mi opinión es, que una persona que conozca mejor como se lleva a cabo un projecto, será por norma general una persona mas capaz de gestionarlo, que alguien sin estos conocimientos.
    A muchos compañeros mios no les gusta la gestión, por ello no obligaría a nadie a ejercer ese cargo, ni a presionarle a ello para obtener mayor poder económico.
    A nivel personal, todo el tema de Gestión, Agile, Scrum, y demás me parece muy interesante.
    Programar me parece interesante, pero prefiero la parte de análisis de los proyectos, y la gestión de estos.
    Es mi punto de vista, algo deformado, ya que es lo que más me gusta de mi es especialidad de Software

  15. Raul De Los Santos Caceres

    Mi opinon.
    Es que NO debe ser un programador pero debe conocer por lo menos las caracteristicas del Lenguaje que se esta utilizando en el proyecto.
    Por Ejemplo me todo Liderar un equipo de 10 Desarrolladores GENEXUS herramienta de desarrollo de origen uruguayo muy popular en esta parte de Sudamerica, como es un ambiente de Desarrollo o de Generacion de Aplicaciones con posibilidades de tocar su sintaxis, tuve que tomar un curso para conocer como Gerenciar, como controlar, como medir el desempeño de sus programadores y la productividad de los mismos. Pero nunca programe una simple aplicacion.
    Me sirvio muchisimo a la hora de gestionar el proyecto.
    Por lo que opinno ue no debe ser Programador pero debe conocer los lenguajes que utiliza su equipo.
    Saludos desde Paraguay.

  16. Interesante temas para discutir con un buen café.
    Recuerdo cuando estudiaba producción de televisión. Mi profesora siempre me decía que para llegar a ser Director de Cámaras debía aprender a recoger los cables. Efectivamente aprendí a recoger los cables y valoré mucho el trabajo de todos en el set cuando fui director de cámaras.
    He trabajado algunos años como Director de Proyectos y no soy programador. He aprendido por «fricción» como dirían mis colegas. Considero importante que un Director de Proyectos en el sector del Software sepa de sistemas, de programación, de tecnología. No veo mandatorio que sea un programador. De hecho, estoy apuntado aun curso de Programación para no programadores en Udemy. Más bien lo veo como algo motivante conocer algo nuevo y tener más información para aportar con mejor criterio con mi equipo de colegas.
    Saludos!
    Irwin Franco
    @cafedejoe
    Guayaquil-Ecuador

  17. Creo que un jefe de proyecto que no sepa programar, o nunca haya sido programador, aún siendo muy hábil en otras áreas, puede tener problemas desempeñando su trabajo y estar en desventaja con otro que sí sepa programar.
    Necesita un mínimo, a partir de ahí, que tenga más o menos conocimientos de programación o conozca más o menos lenguajes no va a marcar la diferencia.
    Por buscar un símil, ser programador y teclear rápido.
    ¿Es necesario que seas un maestro en mecanografía para ser buen programador? No, pero es necesaria una habilidad mínima.
    Ya puedes ser un excelente programador, conocer todos los entresijos del lenguaje, todos los patrones de diseño, que como teclees a paso de tortuga te vas a encontrar en desventaja frente al resto.
    Necesitas un mínimo, a partir de ahí, teclear rápido no es lo que marca la diferencia entre un buen y un mal programador.
    El debate podría derivar en si los empresarios de empresas tecnológicas necesitan saber programar.
    http://www.initcoms.com/blog/necesitan-los-empresarios-de-empresas-tecnologicas-saber-programar/
    Saludos.

  18. Pues yo digo que debe tener nociones de programación, saber la naturaleza de que son las entrañas de la construcción. Dificilmente alguien que no tenga experiencia no sabra como construir. Los que no saben programar al menos tienen empatía con el programador

  19. Cuantos menos niveles jerarquicos existan entre el programador junior y el jefe de proyecto mas necesidad de saber programar.
    No es lo mismo un proyecto de programador + jefe proyecto que un jefe de proyecto tengo 10 analistas funcionales a su cargo que puedan argumentar tiempos y esfuerzos.

  20. Un jefe de proyecto, que tiene a su cargo programadores, muy por seguro debe haber programado en algun momento. de pasar de junior a senior y evolucionar a jefe de proyecto. es el paso siguiente la carrera de programacion, un programador, poco o ningun caso hará y mucho menos vera como lider a una persona que no sabe de lo que esta hablando. y sobretodo al tipico jefe que te pide resultados pero no sabe lo que quiere o hay que hacer y al final te hara trabajar el doble de lo necesario.
    esta ya muy desgastado el tema de liderazgo, un lider se escoge y no se impone y un programador admira mas a los de su especie porque sabe que podra aprender mas cosas de su lider.

  21. Mi pequeño aporte, la realidad del día a día pesa mucho y por mucha formación, y teorías
    Arquitecto: SI te pagan por saber hacer planos, pero NO, por No saber poner ladrillos.
    ¿Qué aporta un sindicalista liberado después de 2 años sin pasar por su puesto de trabajo?

  22. Quisiera entender que se entiende por jefes de proyecto.
    Cómo este está dentro de la estructura de un equipo de trabajo.
    Son parte del equipo, son contrapartes, en ambos casos he escuchado el nombre, duplicando y triplicando a veces el nombre y cumpliendo distintos roles.
    Solo eso

  23. Si estamos encaminados a equipos autogestionados creo que la respuesta cae de maduro.
    Dentro del mismo equipo técnico, es decir, del equipo capaz de construir el proyecto, tienen que haber capacidad de gestionarse, seguramente existirán quienes tengan mas capacidad técnica y quienes tengan mas capacidad de gestión.
    Lo que si creo que no es lo que se esta necesitando, son personas que solamente sepan administrar un proyecto, como una línea de tiempo, con inicio y fin y nada mas.
    Si puede ser útil gente que vele porque la buena administración del proyecto, en forma de control cruzado (sobre todo en empresas grandes). Pero aquí ya nos metemos en como estructuramos una compañía.

Dejar un comentario

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