La ingeniería de software moderna es un campo altamente competitivo y en constante cambio que requiere diversas habilidades. No basta con saber programar bien e implementar las tareas según se te solicite. Es mejor que conozcas bien el negocio de tu empresa, sus métricas clave para generar ingresos, aprendas a optimizar recursos para obtener resultados más rápido, detectes casos extremos cruciales que el equipo de producto desconoce, comuniques tus expectativas e ideas con claridad y pruebes los resultados con diligencia. Básicamente, necesitas desempeñar múltiples roles y ser un poco de todo para tu equipo y empresa. Esto suele implicar una amplia experiencia, métodos de prueba y error y un aprendizaje constante. Pero siempre puedes crecer profesionalmente y ser más productivo en poco tiempo, con la esperanza de incluso ascender.
En este artículo, compartiré 7 consejos de productividad que aprendí a base de esfuerzo durante años como ingeniero sénior de iOS. Veamos cómo puedes ser un mejor ingeniero desde hoy mismo:
1. Mantén tu cartera de pedidos interna
Sí, Jira y otros sistemas de seguimiento son geniales, pero están diseñados para tu equipo primero, no solo para ti. Todos los usan para verificar su progreso en las tareas de sprint, pero no son granulares ni se adaptan a tus objetivos.
No necesitas otro sistema de seguimiento sofisticado. Puede ser una simple aplicación de notas en tu dispositivo, un simple gestor de tareas, una lista de tareas o cualquier otra forma de organizar tus tareas. Aquí tienes un ejemplo paso a paso de cómo funciona:
- Toma las tareas del sprint de tu Jira favorito, revísalas y priorízalas. ¿Cuál debería ser tu tarea principal? Consejo: suele ser algo relacionado con el negocio, tal vez una nueva funcionalidad que tu equipo espera completar al final del sprint. ¿Qué tareas se pueden posponer para más adelante y completar si te queda tiempo? Siempre es buena idea aclarar y compartir tu comprensión con un gerente o un responsable de producto. Puedes hacerlo durante la planificación del sprint, si la tienes.
- Divide tus tareas por días, destina más tiempo y esfuerzo a las principales y deja menos espacio para aquellas que consideres no tan importantes.
- Añade reuniones de equipo y otras actividades a tu lista. Por ejemplo, me parece recomendable dedicar un tiempo diario a las revisiones de código. Así, no necesitas apresurarte con tus comentarios y tendrás más oportunidades de contribuir mejor. Publiqué un artículo aparte sobre cómo sacar el máximo provecho de tus revisiones de relaciones públicas aquí .
- Añade otras tareas pendientes a tu lista que no estén incluidas en tu sprint. Por ejemplo, "preguntarle a Tom sobre un cambio que hicimos la semana pasada para ver si hay algo que deba hacer la próxima vez".
- Las responsabilidades corporativas también deben estar en la lista. Por ejemplo: «actualizar mis objetivos», «responder a una solicitud de encuesta de la empresa», etc.
- Por último, recuerda tener en cuenta todas estas cosas al principio del día.
Esta tarea interna te ayuda a no olvidarte de pequeñas cosas que de otra manera podrías pasar por alto.
2. Sea proactivo en las reuniones de equipo
Puede parecer tentador estar presente en la reunión de tu equipo, pero al mismo tiempo intenta terminar esa tarea molesta o contactar a alguien por Slack. Pero créeme, no es el mejor momento para perder el foco. Tus compañeros, especialmente el gerente de ingeniería y el gerente de producto, esperan que te expreses y estés presente. Comparte tus ideas y opiniones, pregunta por qué y cuándo, y toma la iniciativa.
Es un trabajo duro, y sé que hay días en los que quieres quedarte en silencio con la energía baja. Pero estos esfuerzos suelen dar sus frutos a largo plazo.
3. Comunicarse con claridad
La comunicación es crucial para los ingenieros de software. Intenta encontrar un equilibrio entre lo que dices a los demás y cómo lo dices.
Por ejemplo, durante una reunión de equipo interdisciplinaria donde participan un gerente de producto, un diseñador y un ingeniero de control de calidad (es decir, personas con diferentes trayectorias y responsabilidades), es mejor filtrar en el discurso lo que no entenderán. Veamos la diferencia:
Ayer estaba aplicando un parche a nuestro punto final de entrega, cuando la base de datos de Cosmos encontró entidades corruptas. Tuve que revertirla y cambiar la forma en que insertamos los valores hash en sus tablas, añadiendo mejores algoritmos de ordenación.
Ayer tuve dificultades con una tarea de entrega. Hubo un problema durante una implementación que solucioné de inmediato. Era una versión beta, así que estamos perfectamente bien. De hecho, mejoré nuestra forma de trabajar, lo cual veremos en nuestras métricas la semana que viene.
¿Observas cómo la segunda versión omite los términos técnicos y se centra en los resultados que son perfectamente claros para todos? Para practicar este tipo de comunicación más simple, intenta plantearte estas preguntas:
- ¿Qué es lo que realmente quieren saber?
- ¿Qué estoy tratando realmente de decir?
Es una virtud explicar un tema técnico complejo de forma sencilla. Pero cuanto mejor lo hagas, mejor lo entenderán los demás. Al final, tendrás menos problemas de comunicación, menos incertidumbres y menos preocupaciones.
Por último, siempre puedes profundizar en los aspectos técnicos si es necesario o te lo piden. Es el lugar perfecto para hacerlo en las sincronizaciones técnicas con otros ingenieros.
4. Construye un puente con tu gerente
Esto no depende completamente de ti, por supuesto, pero en general, un buen gerente es alguien que te defiende a ti y a tus intereses ante la empresa. Son quienes discuten los ascensos de tus compañeros con la alta dirección y evalúan si estás listo para asumir un rol y responsabilidades mayores. Por lo tanto, te conviene mantener una buena relación con tu gerente.
¿Cómo puedes planificar eso exactamente? Bueno, intenta ponerte en el lugar de tu gerente. ¿Cuáles son sus objetivos y qué espera la alta dirección de ellos? Planifica un conjunto de objetivos que puedas alcanzar en el próximo ciclo de desempeño y comprométete con ellos. Preséntalos al gerente, coméntenlos y llévenlos a cabo. Por ejemplo, emprende un buen proyecto de refactorización que mejore el rendimiento del producto. Por cierto, una buena señal de un ingeniero experimentado es poder delegar tareas, controlar el proceso y lograr que el trabajo se realice.
5. Trabajo concentrado en lugar de multitarea constante
Hablemos de la rutina de programación. Supongamos que tienes una tarea pendiente, como la que mencionamos en nuestro primer consejo. ¿Cómo la abordas? A tu alrededor hay factores de ruido: reuniones, mensajes constantes de Slack, etc. Me parece más efectivo aislarte de asuntos externos irrelevantes y concentrarte en tu tarea, preferiblemente sin interrupciones innecesarias. Evita estas reuniones no obligatorias si es posible y no te apresures a responder a todos los mensajes de Slack. Claro que esto no significa que debas ignorar los mensajes directos constantemente, pero es mejor evitar interrupciones en tu ciclo de pensamiento. ¿A qué me refiero?
He aquí un ejemplo de cómo se puede hacer:
Tienes un error importante que resolver. Hay un par de teorías que quieres probar.
Estás trabajando en el primero. Aplicaste una corrección y estás listo para probar si funciona.
Entonces recibes un mensaje de Slack. Al leer una notificación rápidamente (literalmente, un segundo de tu tiempo), sabes que puede esperar.
Terminas de probar la teoría. No funciona, así que ahora vas a probar la segunda.
Luego tomas un descanso y respondes ese mensaje.
Después de regresar al error, estás listo para trabajar en la siguiente teoría.
En mi experiencia, es mucho más difícil retomar algo que dejaste parcialmente inacabado, a mitad del cambio. Cuanto más tiempo pase entre las interrupciones, más difícil será recuperar ese contexto después, o, mejor dicho, cargarlo en la RAM.
Este enfoque no significa que esté bien ignorar a tus compañeros. No, pero en muchos casos nadie espera que respondas al instante. Definitivamente hay un período de gracia, así que intenta no excederte. A veces, si me piden que revise algo y me lleva tiempo, aunque mi tarea sea más importante en ese momento, les avisaría que lo revisaré y volveré en una hora aproximadamente.
Oye, claro, revisaré esto y te contesto en una hora. Espero que te parezca bien. Es que tengo una tarea prioritaria con la que he estado lidiando todo el día y necesito terminarla primero.
De esta manera, le proporcionas un tiempo estimado de llegada real a tu colega y no lo dejas colgado mientras eres educado y amigable en tu comunicación.
6. Muestra tu trabajo
He conocido a ingenieros muy talentosos con diversas trayectorias técnicas que me fueron de gran ayuda. Fue un placer aprender de estas personas expertas. Pero ¿han tenido éxito en sus carreras al ascender? ¿Quizás consiguiendo un ascenso, más responsabilidades y un sueldo más alto? Sorprendentemente, no todos. Una de las razones es que casi nadie conocía su trabajo, salvo sus pequeños equipos de desarrollo.
Honestamente, si trabajas en una empresa decente sin microgestión, nadie vigila tus solicitudes de extracción con lupa las 24 horas del día, los 7 días de la semana. Y ese pequeño cambio que podría ahorrarle a la empresa una cantidad significativa de dinero puede pasar fácilmente desapercibido si no se lo comunicas adecuadamente a las partes interesadas. A menudo, estas personas son gerentes, propietarios de producto o jefes de departamento... Lo que significa que no son los técnicos en absoluto. Por lo tanto, te aconsejo que no solo muestres tus excelentes relaciones públicas, sino que las presentes de forma que todos en la empresa, fuera de tu "burbuja tecnológica", entiendan su significado y, lo que es más importante, el valor de la empresa. Presentación, buenos gráficos, cifras reales... todo eso. Lo que nos lleva de vuelta al tercer punto sobre las habilidades blandas y la comunicación.
Hay una perspectiva diferente sobre este punto que a veces escucho en las quejas de mis colegas ingenieros. Como esa persona de tu empresa que es buena promocionando su trabajo y le da mucha importancia a todo. Puede que los equipos directivos la hayan elogiado más por su talento para destacar. Y solo por eso puede ser menospreciada. Pero bueno, también será beneficioso aprender algún truco de marketing de ellos. Sí, "vender" tu trabajo también es importante.
Si te faltan habilidades de presentación, piensa en cómo puedes mejorarlas. Yo lo convertiría en uno de tus objetivos personales con un conjunto claro de acciones a tomar. Pregunta si tu jefe puede ayudarte. ¡Me guiño al cuarto consejo! 😉
7. Valora tu tiempo
Por último, pero no menos importante, no trabajes horas extra. No trabajes en exceso. Punto.
Depende de la cultura de tu empresa, pero en algunos lugares la gerencia puede ser muy manipuladora, creando un ambiente de "apúrate, apúrate, apúrate", donde no se ve con buenos ojos no quedarse hasta tarde frente a la pantalla. En resumen, yo evitaría este tipo de empresas para lograr un mejor equilibrio entre la vida laboral y personal. En resumen, significa que la empresa no valora a sus empleados ni se preocupa por ellos.
Solía trabajar horas extras en mis primeros años como ingeniero. Una vez, nos pidieron que lanzáramos una función enorme y complicada en un plazo fijo. La fecha límite no era realista desde el principio. Todos lo sabíamos, pero por alguna razón que ya no recuerdo, el equipo tuvo que adaptarse. Trabajamos varios fines de semana a la fuerza, trabajando de noche. ¿Adivinan cuál fue el resultado? No pudimos, naturalmente. Al final, nadie hizo nada al respecto, pero necesité un mes de fines de semana libres después para recuperarme. Como bien me dijo nuestro jefe de equipo: «Esta empresa te tomará todo el tiempo que le permitas».
Después de ese incidente y muchos similares, establecí mis propios límites sobre dónde y cuándo empieza y termina el trabajo por el que me pagan. Recuerda: si trabajas oficialmente 5/7, tienes un número de horas por las que te pagan. Incluso si trabajas como freelance, es básicamente lo mismo. Siempre hay una relación de "dinero por hora". Si haces horas extra sin paga extra, en la mayoría de los casos te perjudicas. Créeme, todo esto puede fácilmente llevarte a un agotamiento del que será difícil salir.
En raras ocasiones, puede ser beneficioso hacer horas extra, pero solo si hay una verdadera ganancia a la vista: un sueldo extra, un ascenso, días de vacaciones extra o alguna otra forma de retribución que realmente merezca la pena. Pero tómalo como regla general: aprovecha al máximo tus horas de trabajo y trabaja duro, pero al final del día, cuando se acabe el tiempo, déjalo para el día siguiente. Valora tu tiempo.
Conclusión
Espero que estos consejos les hayan sido útiles. Quizás algunos ya los conozcan, pero otros les hicieron pensar en mejorar. Y esa fue la razón por la que escribí estas reflexiones: para compartir mi experiencia y ver si puede ser útil para otros. ¡Hasta la próxima, sigan creciendo y sean mejores versiones de ustedes mismos!