Cómo evaluar su lugar de trabajo actual
Tags: career, spanish
Published: 2021-11-30 08:36:22

Como puedes leer en muchos lugares, hay muchas oportunidades para que los especialistas en TI encuentren un nuevo trabajo en este momento. No importa lo que decidas - ya sea permaneciendo en la misma empresa o buscando algo más - tiene mucho sentido evaluar su lugar de trabajo actual. Aquí está mi lista de verificación para determinar si un trabajo es deseable o no.

## Factor Humano
Quizás pasamos mucho tiempo frente a nuestras computadoras, pero las interacciones humanas son una gran parte del trabajo. Es un factor esencial de por qué las personas se van o se quedan en la empresa. ¿A qué deberías prestar atención?

### 1. ¿Son sus colegas amables y serviciales?
Me parece triste que sea tan común en la industria no ser acogedoras para los recién llegados o no ser útil. La verdad es que incluso en proyectos pequeños, nadie podría hacer todo el trabajo de principio a fin - de averiguar los requisitos, mediante el desarrollo de la aplicación, para implementar y apoyar a los usuarios. Como todos los miembros del equipo necesitan que los demás sean productivos, su mejor contribución es a menudo ayudar a sus colegas.

### 2. ¿Hay mucha presión proveniente del lado comercial o de la administración?
Otra parte vital de tu experiencia laboral - es su gerente protegiéndolo de factores externos o transmitiéndole la presión. No estoy seguro de cada desarrollador, pero soy más feliz y productivo sin estresarme demasiado - tiendo a comprometerme demasiado, y no necesito un entorno que fomente esto y que espere que las personas sigan cumpliendo con los plazos imposibles.

### 3. ¿Obtiene una buena máquina y herramientas?
Tu evaluación depende de tu productividad, y su productividad depende de su computadora, las herramientas de desarrollo en él y los proveedores de terceros que está utilizando. En la mayoría de los casos, el tiempo de ingeniería es más caro que las computadoras o las herramientas. Desde la perspectiva empresarial, es una obviedad que la empresa gaste todo lo necesario en esas herramientas y se asegure de que las personas puedan utilizar su tiempo de la forma más productiva posible. Si pierden esta oportunidad, tiene una buena razón para dudar del liderazgo en general.

### 4. ¿Cuánta superposición hay en el conocimiento del equipo?
Si nadie te respalda, lo pasarás mal. Si nadie hace las cosas que usted hace en el día a día, tan pronto como salga y algo se estropee, recibirá llamadas urgentes. Puede ser especialmente complicado si el equipo es demasiado pequeño para tener una superposición adecuada entre los miembros del equipo, pero esto no debería hacer que acepte ser irremplazable.

### 5. ¿Hay revisiones periódicas de código?
Las revisiones de código son lo mínimo necesario para mantener a las personas informadas sobre los cambios de código. Es un lugar excelente para discutir la dirección en la que el equipo está impulsando la base de código. Si no tiene esto en el proyecto, puede convertirse en el único desarrollador de un módulo determinado. Es un camino rápido para recibir más presión si es necesario hacer algo allí.

### 6. ¿Hay retrospectivas regulares en el equipo?
Las retrospectivas son una forma excelente de mejorar la productividad del equipo y descubrir cómo los miembros del equipo pueden ayudarse entre sí. Es muy probable que a todos les falten algunos frutos maduros si su equipo no discute esas posibilidades con regularidad. O hay algunos problemas sin resolver entre los miembros del equipo que podrían solucionarse si hubiera un lugar para discutirlos de manera constructiva.

## Técnico
Incluso en el sector de las Tecnologías de la Información, algunas empresas están detrás de las prácticas de vanguardia de nuestra industria. No seguir las mejores prácticas es un falso ahorro de tiempo, ya que muy pronto habrá una regresión que se deslizará a través del control de calidad y regresará como una emergencia. Los siguientes puntos son cruciales y facilitan la vida de su desarrollador.

### 1. Manual de aseguramiento de la calidad (Quality Assurance, QA)  Las pruebas manuales son la primera línea de protección contra regresiones y requisitos incumplidos. Desde la perspectiva del desarrollador, es reconfortante que un colega revise la aplicación antes de que mis cambios pasen a producción. El QA es otro caso en el que los mejores intereses de la empresa están en línea con los suyos. - Simplemente es más barato encontrar y corregir errores antes de que lleguen a producción. Y es menos estresante para todos los desarrolladores involucrados.

### 2. Análisis estáticos
Garantía de calidad automatizada en el nivel fundamental. Herramientas como [eslint](https://eslint.org/) y [prettier](https://prettier.io/) en la interfaz; [Flake8](https://flake8.pycqa.org/en/latest/) y [black](https://black.readthedocs.io/en/stable/) Python lo ayuda a garantizar la coherencia del estilo del código y lo protege de los errores más simples que podría introducir en su base de código. Configurarlos y aplicar todos los cambios iniciales lleva tiempo, pero lo más difícil es lograr que todos los miembros del equipo participen y que utilicen esas herramientas de manera constante - especialmente antes de fusionar los cambios en la rama principal.

### 3. Prueba de unidad
Otra herramienta automatizada y rápida para verificar el código. Las pruebas unitarias detectan regresiones menores debido a refactorizaciones, actualizaciones de bibliotecas o personas que cambian el código antes de comprender realmente cómo funciona. Si su lugar de trabajo carece de ellos, es muy probable que pierdan mucho tiempo arreglando errores que podrían haberse encontrado antes de que salgan a la luz.

### 4. Pruebas de integración o de extremo a extremo (end-to-end, e2e)
Las pruebas de integración son las pruebas más exigentes de escribir y mantener. Mientras que las pruebas unitarias están probando el código de forma aislada - con muchos simulacros y datos ficticios, aquí la idea es probar lo más cerca posible de la configuración de producción. Entonces, para un proyecto web, tienes herramientas como [cypress](https://www.cypress.io/) para ejecutar pruebas en su aplicación frontend, servidor backend y base de datos. Con tantas partes móviles, es más complicado de configurar, pero puede detectar problemas en cualquiera de esas capas. Una advertencia para mencionar - una vez que encuentra un problema, se necesita tiempo para averiguar qué capa está causando el problema.

### 5. Integración continua (continous integration, CI)
No sería práctico ejecutar todas esas comprobaciones en las máquinas de los desarrolladores antes de comprometerse. Pero si no ejecuta estos scripts con regularidad, la base de código se deteriorará y los problemas se acumularán. La solución es ejecutarlo en una máquina externa en cada confirmación o rama creada en el repositorio. Un beneficio adicional es que tenemos un registro oficial del estado del código - por lo que, si se logra algún cambio importante, podemos encontrar fácilmente el compromiso que lo introdujo.

### 6. Documentación 
Lo único peor que escribir documentación es no tener una cuando la necesita. Y cualquier proyecto que no sea trivial necesita al menos algunas palabras de explicación sobre cómo iniciarlo y cómo está estructurado. Siempre pienso en la documentación como un regalo que tengo para mis futuros colegas, y es algo en lo que pueden apoyarse cuando intentan entender mi trabajo cuando ya no formo parte del equipo. O cuando estoy de vacaciones y lo último que necesito es una llamada del trabajo.

## A largo plazo
Como en la pregunta de entrevista favorita de todos: "¿Dónde se ve en 5 años?", Asegúrese de que su empresa no lo empuje hacia el lugar donde no desea encontrarse.

### 1. ¿Cuánto puedes aprender?
Nunca dejas de aprender como desarrollador, pero no algunos lugares son mejores para aprender que otros. Si estás rodeado de personas con más experiencia y están felices de ayudarte - suena como un excelente lugar para desarrollar sus habilidades. Por otro lado, si trabaja solo o realiza tareas repetitivas, su aprendizaje en el trabajo se detendrá. En ese caso, puede aprender fuera del horario de atención, pero también podría estar preparándose para una entrevista.

### 2. ¿La empresa le paga la tarifa del mercado?
A menos que trabaje en una NGO que coincida con sus valores, no hay razón para permanecer en una empresa que le paga por debajo de la tarifa del mercado. Para calcular su valor de mercado, puede utilizar [this resource] (https://fearlesssalarynegotiation.com/book/value/market-value-overview/) e invierta algunas horas al año para asegurarse de que se da cuenta de cuándo se le paga mal. De lo contrario, es como si trabajara como voluntario a tiempo parcial para esta empresa con fines de lucro para el que trabaja.

### 3. ¿Las habilidades que la empresa necesita se superponen con sus preferencias?
¿La empresa está decidida a migrar a Python, pero a usted le encantan los puntos y comas? ¿La garantía de calidad rota lo convierte en casi una persona de la mesa de servicio en lugar de un desarrollador? ¿O nunca habrá una persona de operaciones de desarrollo en el equipo y alguien tiene que aprenderlo? En todos esos casos puede ser que simplemente no seas compatible con el futuro que la empresa tiene para ti. Una buena razón para reevaluar si quiere continuar allí.

### 4. ¿Está la empresa atrapada en una tecnología sin salida?
Soy un desarrollador de AngularJs en 2021, y al mismo tiempo:
1. No recomiendo que la empresa migre a otro marco – demasiada inversión.
2. No recomendaría este stack de aplicaciones a los beginners.
3. Yo mismo no aprendería Angular en estos días, y mucho menos AngularJs.
Entonces, dependiendo de cómo ve su futuro en la industria, puede considerar pasar a herramientas más populares, o algo con un futuro más brillante que un stack que era popular en 2013.

### 5. ¿El equipo crece o se contrae?
Existe esa cosa de crecer junto con su empresa o equipo. Solo porque comenzó temprano, por defecto, de alguna manera estarás a cargo de que la gente se una más adelante. Para que pueda pasar sin problemas de tareas de programador intermedio a tareas superiores o más. Lo mismo se aplica a la inversa - si su equipo se está reduciendo, puede encontrarse sin juniors a los que asesorar ni programadores que administrar. En resumen - un equipo pequeño, pero en crecimiento es un lugar perfecto para una persona orientada a una carrera.

### 6. ¿Apostaría su propio dinero al proyecto?
Independientemente de su modelo de compensación, incluso si el pagó es solo en efectivo, su éxito financiero depende de la empresa. Si a la empresa le está yendo bien y está creciendo, será más probable que se mantenga al día con el mercado, y su parte del pastel podría estar creciendo, incluso si su participación no aumenta. En otro extremo del espectro, si la empresa se está reduciendo, el dinero será escaso y puede causar cualquiera de los problemas discutidos anteriormente.

## En resumen
Es una buena idea evaluar la empresa para la que trabaja de vez en cuando. Debe asegurarse de no estar atrapado en un lugar peor de lo que podría estar, porque nadie más lo hará por usted. Hágame saber en los comentarios cómo le está yendo a su empresa y si hay otras cosas que consideraría acerca de su trabajo.

## Enlaces
Originally posted in  [English](https://how-to.dev/how-to-evaluate-your-current-workplace)