
“En el principio creó Dios los cielos y la tierra. Y la tierra estaba desordenada y vacía, y las tinieblas estaban sobre la faz del abismo, y el Espíritu de Dios se movía sobre la faz de las aguas. Y dijo Dios: Sea la luz; y fue la luz. Y vio Dios que la luz era buena; y separó Dios la luz de las tinieblas.” Génesis 1:1-4
Salvando las distancias, y desde el mayor de los respetos, muchas veces los desarrolladores sentimos muy cercanas las palabras del Génesis en su descripción de la construcción del orden desde el más absoluto caos.
Pero, al igual que en el libro principal de las tres religiones monoteístas más importantes de nuestra actualidad, un desarrollador siente la inquietud de continuar construyendo una realidad profesional. Viéndose abocado a plantearse en algún momento la evolución desde construcción a organización.
Así los escalones están compuestos, de forma general, por:
Esto que parece sencillo y directo, realmente no lo es. El desarrollo es una compleja labor intelectual profesional basada en el estudio, el esfuerzo, el talento y la capacidad. Por lo cual el paso de un escalón al siguiente no es lineal según un factor determinado.
Así tenemos que un programador con talento puede hacer labores de Analista o arquitecto teniendo tres años de experiencia; o de un analista funcional que tenga un título universitario desde hace un año, que no tenga talento para el desarrollo, pero que tenga la titulación exigida por el cliente para el puesto.
el Líder de equipo es el cabo de una unidad de soldados, y el Jefe de Proyecto el sargento.
Cuando empezamos a picar código debemos de tener muy en cuenta que, en la mayoría de los casos, este va a ser un trabajo en equipo. Y que en cuanto hay más de tres personas, ya estamos hablando de multitud. Por lo cual nuestra propia naturaleza nos lleva a buscar un líder natural que ponga un poquito de orden al caos que se puede organizar.
Para ello se escoge a los mejores profesionales o los más reconocidos (que no es lo mismo) para gestionar los equipos. Estos son los llamados líderes de equipo y los jefes de proyectos técnicos.
Ambas dos, son personas que pican código. Puede ser que no todos los días, pero si son parte de la construcción del software. La diferencia principal es que el primero gestiona al equipo desde un punto de vista técnico puro y el segundo debe hacer labores de gestión y reporte a gerencia o dirección.
Para hacer una alegoría que haga más fácil el entender los roles, el líder de equipo es el cabo de una unidad de soldados, y el jefe de proyecto el sargento.
Estos dos puestos no implican un mayor sueldo, pero casi siempre es así. Lo que si requiere es una motivación especial por el trabajo. El tener talento para gestionar, coordinar y liderar personas. Y conocimiento y experiencia como para que el equipo lo respete técnicamente el mínimo imprescindible para que no lo menosprecien. Ya que en este escalón el poder de coerción es muy pequeño y, además no se puede ocultar la ignorancia técnica detrás de la burocracia de la gestión.
O sea, que si quieres llegar a liderar un equipo debes ser muy crítico contigo mismo en dos cosas: que nazca de ti el buscar el camino para ser mejor, y ver que eres capaz de hacer que un equipo lo siga.
Yo soy de los que piensan que el camino más completo para alcanzar estos puestos es viniendo del desarrollo, incluso más que de IT.
Pero hay muchos profesionales que vienen de otras áreas y llegan a los puestos de gestión por una certificación PMI, PMP, Prince2, etc. Los cuales, si no han tenido conocimiento técnico sobre desarrollo de software, tienen un gran riesgo de verse abocados al fracaso a causa de las singularidades de este tipo de proyectos informáticos.
El principal objetivo de los Jefes de Proyectos (no técnicos), Responsables de departamento o Directores Técnicos es el conseguir que la productividad de los equipos se mantenga o vaya a mejor. Además de reportar de forma entendible a Dirección o gerencia.
Esto último, que parece trivial, no lo es. Ya que la diferencia de glosario y de conceptos entre los que hacen las cosas y los que dirigen una empresa es, simplemente, abismal.
Debes estar más centrado en los procesos, las metodologías, en las métricas, en la trazabilidad y en la madurez de los equipos. Olvidándote, por que no vas a tener tiempo, del liderazgo técnico y priorizando a nivel del departamento.
Y, como experiencia personal, siempre echaras de menos el hacer “magia”. Por ello recomiendo mantener la programación aunque sea como un “hobby”, para mantenerte al día de las herramientas y evolución de nuestra profesión.
También a partir de este nivel en la empresa, habrás entrado en el conjunto de los “otros” y serás intrínsecamente menospreciado por todo desarrollador. Y cuanto mejor sea, más te despreciará. Ya que muchas de las decisiones que debes transmitir o tomar se basan en información muy alejada del código, y que tratan sobre la empresa.
Un buen gestor de proyectos pone al equipo por encima de las personas, y a la empresa por encima de los equipos. Lo cual lleva a choque de intereses y puntos de vista en muchos casos. Además de ser dirigido por dirección, que tiene una visión aún más amplia y compleja. Con objetivos primordiales como son la rentabilidad, la productividad, etc.
Así mismo, es prácticamente imprescindible poder comunicarte en ingles, tener conocimientos formales de gestión de proyectos y utilizar traje y corbata. Saber hablar en público, motivar a la gente y percibir cuando hay que sacar el látigo y cuando hay que tener mano izquierda.
El comercial, o vendedor, de toda la vida no requiere formación técnica. Con su talento, labia y cartera de clientes es capaz de vender prácticamente cualquier cosa. Y se nota si se tiene talento para ello. Y si además ha sido pica código, tiene una enorme ventaja sobre otros comerciales ya que sabrá de lo que habla cosa que sucede pocas veces.
Lo que ocurre es que nuestro sector es complejo hasta en las ventas; y si tenemos a un buen técnico; y lo ponemos al frente de equipos a nivel de gestión (como un Jefe de Proyectos); y le mandamos a tratar con clientes; y a realizar labores de comercial; y labores de recursos humanos; y lo sazonas con incentivos dependientes de los beneficios obtenidos con su unidad de negocio, tenemos a un Manager.
Figura multidisciplinar donde las haya. Y que se ha convertido en sus diferentes sabores (Director de Proyectos, Gerente Comercial, etc.) en un puesto clave en nuestra industria de desarrollo de software. También es cierto que está muy ligada a las cárnicas consultorías, en donde la gente es vendida al peso y abierta en canal. Y donde un manager puede vender programadores, como impresoras, llamándoles por el mismo nombre: recursos.
Por lo cual si tuviera que dar un consejo a un becario o a un profesional que no sabe si le merece la pena el esfuerzo de aprendizaje para poder ir escalando en su carrera profesional yo le diría: sigue tu ambición.
Vivimos una realidad que puede ser que cambie en un futuro, pero que ahora mismo te dice algo tan simple como que si quieres ganar más dinero debes ir pasando de funciones técnicas a funciones de gestión. Para, finalmente, olvidarte de escribir código.
Pero también ten en cuenta que no todos podemos dirigir/gestionar, lo cual significa que tarde o temprano se le dará el valor que tiene al conocimiento y experiencia que tiene un desarrollador de, por ejemplo, 20 0 25 años picando código. Y debería terminar siendo una carrera profesional desligada a la gestión.
Y, en cualquier caso, cuando has tenido la experiencia de desarrollar aplicaciones de software, la gestión de equipos o departamentos de programación te brinda grandes satisfacciones profesionales y personales.