Crecimiento profesional dentro del desarrollo de software

Hola a todos

Escribo este post con el fin de conocer su punto de vista acerca del crecimiento profesional. Extraigo el siguiente fragmento de un libro que recientemente leí:

“los años de experiencia desarrollando arquitecturas de software se tiran a la basura porque la única menra de prosperar (ganar mas dinero lógicamente) es pasar al [siguiente nivel] como mannager”… “la mentalidad empresarial dominante que te premia con asumir [mas responsabilidad] lo que consigue es perder un magnifico técnico y ganar un pésimo gestor.

Me interesa mucho saber su opinión acerca de si les gusta ese paso a gestor o de lo contrario como han hecho para seguir creciendo dentro del mundo del desarrollo sin caer en las garras del tedio administrativo.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

huy

Trabajé casi 10 años en una empresa donde me hicieron eso varias veces. "Oye, veo que programas bien chido y los demás te hacen caso, te vamos a poner de [líder|gerente|jefe|director|arquitecto de software]". Y lo hacía mal, porque no me gustaba, y me regresaba a programar. Eso pasó varias veces en ese lugar, hasta que me fui. Incluso alguna vez un cliente le dijo a mi jefe de aquél entonces: por qué hiciste jefe a este wey? Estás perdiendo a un excelente programador para tener a un jefe mediocre". Y ni siquiera me sentí insultado; al contrario, pensé A VER SI ASI ENTIENDEN. Pero no.

Tu libro está equivocado. Es cierto que pasar a ser manager es una manera de ganar más dinero, pero eso es sólo si te gusta. Ni siquiera digo "siguiente nivel" porque creo que simplemente es algo distinto. Un manager no es más que un programador, desde ahí vienen los problemas. Si estás en una empresa que piensa así, vete. En serio. Porque la otra manera de ganar más dinero, es en otro lugar; porque lo cierto es que si te quedas de programador en una empresa, como no subes de puesto, pues te van subiendo muy poco el sueldo; lo típico es que la manera de pedir aumentos es amenazar con irte y que te ofrezcan aumento para quedarte, pero eso genera resentimiento de ambos lados (la empresa dice, este cabrón ya me va a empezar a amenazar cada que quiera aumento, no es leal; y tú dices, estos cabrones me pudieron haber aumentado pero no lo hicieron hasta que amenacé con irme). Pero pues vas adquiriendo experiencia, y cuando apliques a otro lugar puedes pedir un sueldo bastante más alto y negociar algo que jamás te van a ofrecer en tu trabajo actual.

Al menos eso he visto con varios conocidos de unos años para acá; la manera de incrementar su sueldo de manera significativa, sin tener que dejar de programar, es cambiando de trabajo. Y además en una de esas te encuentras ya con un lugar donde aprecian tus habilidades de programador en vez de menospreciarte y decirte que sólo si "subes" a ser manager vas a ganar más.

Los managers son necesarios, y bastante útiles, pero no son más ni menos que los programadores. Se requieren habilidades distintas. Existen manager técnicos, gente que programa bien y adicionalmente tiene las habilidades y conocimientos para ser manager y le gusta hacer ese papel.

Imagen de SuperSerch

Historia antigua

Es lamentable, pero ocurre muy seguido, por buscar un mejor ingreso muchos buenos desarrolladores terminan en puestos donde no son tan competentes, y esto es responsabilidad de la empresa.

A mi me parece que si una empresa ve valor en lo que un empleado entrega/produce debería reflejar ese valor en la situación laboral de ese empleado y eso refleja la cultura de la empresa. Si para la empresa la única manera de mejorar la situación de un empleado es subirlo en el organigrama o ve el Seniority como años de trabajar, quizás no sea el lugar mas adecuado para trabajar.

Imagen de edgarh2e

El detalle esta en el "desarrollo profesional" de cada empresa

El detalle esta en la definición que las empresas tienen de "desarrollo profesional".

Considero que todas las empresas deben tener diferentes niveles de desarrollo y crecimiento por roles o perfil (esto implica tanto aumentar responsabilidad y sueldo).

Lo ideal es que las capacidades de cada persona sean analizadas y encontrar el mejor enfoque para el desarrollo profesional de esa persona (Si es que lo desea), se puede crecer en cualquier perfil o incluso cambiar de responsabilidad siempre y cuando se tenga definido y limitado el alcance de esas responsabilidades y los requerimientos mínimos.

Culturalmente tenemos un problema, ya que el enfoque de crecimiento (profesional y económico) es "delegar más y hacer menos" y eso es lo que se debe cambiar, desde nuestro rol como programadores e incluso como lideres o administradores.

Recomendaría el siguiente libro, puede dar un punto de vista muy objetivo sobre lo que implica crecer en un perfil técnico o incluso saber si el lugar en donde estas es el adecuado para ti:

The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change

Imagen de wdonet

Management != Programming

Concuerdo con @ezamudio respecto a que Management y Programming son dos areas diferentes, considero que ambos deben tener career paths bien acotados pero como caminos distintos, ya que sus responsabilidades y habilidades son distintas.

Un programador con deseos de moverse al management deberia probar primero lo que es un Tech Lead ya sea de manera organica o impuesta como rol por la empresa pues esta relacionada a la responsabilidad de delegar. Aunque definitivamente no es todo lo que implica el management.

Tambien concuerdo con @edgarh2e sobre que cada persona tiene habilidades y gustos distintos, por lo que debe analizarse a si mismo para encontrar su mejor enfoque en el ambiente laboral. De esta manera puede aportar mucho mas efectivamente dentro de un proyecto, un equipo de trabajo o la misma empresa. Considerando que dichas contribuciones no tienen que ser necesariamente vinculadas a su labor del dia a dia.

Tambien, alguien que desee moverse al management, necesita definir que tipo de management desea ejecutar, lo hay hacia personas, hacia proyectos o de soluciones de infraestructura por ejemplo. Para cada una se requieren habilidades distintas.

Lo mas importante es que uno este desarrollando lo que mas le guste, aquello en lo que encuentre pasion para ejecutar, sea programar, analizar, administrar o resolver problemas. Sin mirar a los esquemas que el mundo laboral de hoy ha impuesto en empresas tradicionales o mas nuevas, uno tiene la responsabilidad de ser feliz con sigo mismo y lo que desempeña. Es asi que es vital definir quien soy y hacia donde quiero ir, despues desempeñar mi labor acorde con mis valores y gustos personales.

Nadie trabaja bien en algo que no le guste. Por ello considero importante dejar de mirar las motivaciones extrinsecas como el dinero o las condecoraciones y trabajar en motivaciones intrinsecas como el Honor, Curiosidad, la Maestria de las cosas, tener Libertad y Metas, la capacidad de Influenciar a otros o sobre el modo de hacer las cosas, ser Aceptado u Ordenado, lograr una Estatus en reconocimiento por tu esfuerzo.

Imagen de metallikito

Varía en cada empresa

Dejar el desarrollo por la gestión no es crecimiento profesional en el desarrollo de software, sino cambiar de área como comentó Enrique. No quiere decir que sea malo, por el contrario, si se tiene la habilidad, aptitudes y ganas de hacerlo puede significar un desarrollo como persona.

También concuerdo con edgarh2e, hay empresas en las que te permite crecer de dos maneras, una es "vertical" que es referente en la que dejas los fierros por la gestión, administración, etc., y la otra es la "horizontal" en la que cada vez tienes retos más grandes a nivel de programación, análisis, diseño de soluciones etc., pero continuar en el desarrollo. Un compañero del equipo lleva 15 años en la empresa y el desarrollo que ha tenido es el "horizontal". Sin embargo muchas empresas tienen el plan de carrera de "Tu ya no tienes que estar arrastrando el lápiz" en el desarrollo y te quieren poner de PM o de alguién que ya no programa sino solo gestiona. Como dije antes, creo que eso no necesariamente es malo, puede ser algo bueno y depende de cada uno, lo que si no es cierto es que el crecimiento profesional en el desarrollo de software sea igual a dejar de programar.

El dinero no lo es todo

Si prosperar únicamente significa ganar más dinero la mejor forma es cambiar de trabajo e ir negociando en cada cambio. Sólo ve la gráfica de este artículo: "Empleados que se quedan más de dos años en el mismo trabajo ganan la mitad."

Para mi uno de los aspectos más importantes a considerar es la cultura de la empresa, SuperSerch mencionaba que hay empresas que la única forma de mejorar la situación es subir en el organigrama, hay empresas que ni siquiera tienen organigrama y te permiten crecer de otras formas.

Hay otras empresas que solo tienen "managers of one".

Si,se puede crecer como Dev en el lugar y tiempo adecuados

Hay empresas para todo tipo de personas y viceversa. En mi experiencia profesional, y es exclusivamente personal, he tenido que tomar distintos roles que me han llevado a hacer tanto trabajo puramente administrativo como técnico. Creo en cada rol he aprendido nuevas habilidades duras (lenguajes de programación, lenguajes de modelado, frameworks de desarrollo) y blandas (comunicación efectiva, coordinación de equipos de trabajo, gestión de proyectos).
La cuestión es...que es lo que buscas tú y que busca la organización donde trabajas. Asegurarse que los objetivos de ambos están alineados. Por ejemplo: si ellos buscan un excelente desarrollador y tú quieres ser un maestro artesano de software entonces tiene sentido que continúes tu desarrollo profesional con ellos y para ellos que te continúen apoyando en tu crecimiento. Si en cambio ellos buscan un "desarrollo orgánico" en donde los gerentes sean personal técnico dentro de la empresa con conocimiento en los procesos, habilidades de gestión y liderazgo, etc., pero no buscas desarrollar esas habilidades, tu crecimiento va a estar limitado por el nivel de seniority al que como técnico puedes aspirar.
Afortunadamente hay en México y el mundo muchas empresas de varios tipos donde poder explorar uno u otro camino. Sólo es cuestión que sepas buscar y no tengas miedo aventurarte en otras aguas. Yo cambié de un ambiente corporativo a algo más pequeño y enfocado a la tecnología, por lo que me puedo seguir desarrollando en el lado más hard core. Mis otras habilidades me dan una visión más integral de las cosas (pienso en el negocio, no sólo en el código por ejemplo) pero no dejo de hacer código todos los días.

Imagen de yngwie74

¿Cuales son tus aspiraciones?

Creo que @ezamudio y los demás ya han respondido mayormente la pregunta. Sin embargo, la gente a veces cambia con el tiempo: sus aspiraciones y sus prioridades. Habemos gente que sentimos que nos moriremos encima de un teclado y nuestro epitafio será el pseudo-código de cómo planeábamos resolver el próximo-gran-problema-en-puerta. Sin embargo, a veces "se nos da la oportunidad" de dirigir equipos de trabajo, lo cual involucra un conjunto completamente distinto de habilidades que las meramente técnicas. Y a veces también resulta que disfrutamos de ese nuevo reto. Hay quienes estoicamente "aguantan" ahí por el bien de su equipo, por que saben que "los de más arriba" son unos manchados y parte de su contribución involucra amortiguar los golpes que vienen de diversas fuentes para permitir que el equipo haga lo que mejor sabe hacer. Al paso del tiempo, se cansan y buscan regresar "a lo suyo", a programar. Otros sin embargo, descubren que poco a poco "le van agarrando el hijo" a su nuevo rol y encuentran que también es algo que disfrutan hacer. Definitivamente, en un ambiente más "enterprise", se compensa mejor a quien va adquiriendo mayor responsabilidad. Pero, como ya mencionaron otros, no es la única vía disponible. Siempre está la opción de unirte con otras personas y lanzarte con tus propios proyectos, ya sea a "start-up"ear o prospectar clientes con quienes trabajar con tus propios recursos y tiempos formando tu propia empresa. Y claro, para los más aventados está la opción de lanzarte como consultor (pero de a deveras, no como "recurso" sub-arrendado). Pero, una vez más, todo esto requiere otra serie de habilidades más allá de lo puramente técnico. ¿Quién sabe? Tal vez alguna de esas opciones es verdaderamente lo tuyo y aún no lo habías considerado seriamente.

Imagen de apolonioluis

emprendedor

yo hice caso a lo que dicen que dijo steve jobs: "si tu no trabajas para tus sueños alguien te contratará para que trabajes para los suyos",

asi que "funde" mi propia empresa (emprendimiento). y aqui he crecido en base a las peticiones (u ocurrencias etilo peje) de mis clientes, pase de desktop a web, de visual xxx a java y ahora a todo lo relacionado con node, microservicios, rest, etc, etc y todo eso como dicen los cardiologos: con la aplicacion (corazon) funcionando.

Teoria

Este no es un tema nuevo, ha sido tratado anteriormente de manera satirica por Scott Adams, mediante la tira comida de Dilbert () Y desde antes fue expuesto por Laurence J. Peter mediante un libro (). Si tienen el tiempo consigan el libro, es muy viejo. Para mi buena suerte yo lo conoci por que mi padre lo tenia en fisico.