De Programador a Manager, el camino profesional de un desarrollador

“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.


De becario a Arquitecto


La carrera profesional del desarrollador de aplicaciones software en nuestro país es marcada directamente por el coste laboral. Si bien esto ha sido una enorme fuente de negocio y beneficios para el mercado primordialmente basado en las consultorías (alquiler de mano de obra), también ha generado una distorsión en donde la calidad y el talento son criterios secundarios, a favor de los años de experiencia que son “vendibles”, y por ende, imputables a un proyecto.

Así los escalones están compuestos, de forma general, por:

  • Becario. Figura poco utilizada ya que representa un coste importante en formación y en el futuro profesional tiene mucho riesgo de no aportar ningún beneficio. Solamente a los más válidos se le ofrece integrarse en plantilla.

  • Programador junior. Prácticamente un becario en plantilla y pagado. El sueldo suele ser muy bajo y no se debiera esperar que sea productivo. Se le introduce en equipos o trabajos para que se vaya autoformando.

  • Programador. A partir de uno o dos años de experiencia, para muchas empresas, ya se espera que sea productivo y que se integre en equipos

  • Programador senior. A partir de los tres años, más o menos, se considera que ya es alguien que sabe enfrentarse a prácticamente cualquier cosa y de sacar un proyecto adelante.

  • Analista programador. Un programador sénior de unos cinco años de experiencia, que ya es capaz de realizar análisis funcionales, tomar decisiones por si mismo o, incluso, ser el líder de un equipo.

  • Analista. Un profesional con suficiente experiencia como para poder elaborar los análisis funcionales de las aplicaciones. Es el primer paso hacia el abandono del ?picar código?, aunque es imprescindible un amplio bagaje técnico.

  • Arquitecto. Figura que solamente se utiliza en grandes proyectos o corporaciones que se ocupa de la descripción y análisis arquitectónico del proyecto. Elabora documentación técnica, toma decisiones y basa su conocimiento no solamente en la experiencia empírica si no en el estudio de la ciencia de la computación.

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.

Puestos de liderazgo técnico

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.

Gestión de proyectos


A partir de este punto dejas de ser un desarrollador de software, más que por afición o estudio.

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.

Comerciales


Por último, dejando la Dirección fuera de este artículo ya que aun estoy intentando descubrir cómo se llega a Director, tenemos una rama en donde se puede desembocar partiendo desde desarrollador becario. La rama comercial.

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.

Crece según tu ambición


Una de las fuerzas más potentes de motivación laboral es el sueldo. Bueno, realmente esto es una generalidad burda que da para escribir uno o más artículos relacionados con el tema de la motivación. Pero démoslo por bueno.

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.

Portada de Genbeta