El autor del libro sobre cómo construir una carrera, Roman Zhikharev, habla con el director técnico de G-Core Labs , Vasily Mikhaleny, sobre lo que las empresas de TI modernas esperan de sus empleados.- ¿Cómo crees que se ve el concepto de valor de desarrollador?Para aumentar su valor, debe hacer tres cosas:
- Estudiar las tecnologías demandadas en el mercado hoy y mañana.
- Desarrollar habilidades universales (habilidades blandas).
- Asumir más responsabilidad.
- Comencemos con lo más simple. ¿Qué tecnologías dominar?Las tendencias de hoy están cambiando increíblemente rápido. Por lo tanto, me gustaría expresar algunos principios generales, en lugar de describir tendencias o hacer predicciones. La configuración ideal de experiencia y habilidades, considero una persona con experiencia en forma de T (personas con forma de T). La esencia del término es que, como experto en un campo técnico específico, debe tener una idea de lo que está sucediendo en los vecinos.
Por ejemplo, un desarrollador de back-end, además de un profundo conocimiento de las características del lenguaje (por ejemplo, Python) y marcos comunes, definitivamente necesita saber y, preferiblemente, ser capaz de construir el proceso de prueba, ensamblaje e implementación (canalización CI / CD, por ejemplo en Jenkins). Debe conocer las características del entorno en el que funcionará el código y cómo garantizar la tolerancia a fallos. Por ejemplo, para hacer frente a AWS / Azure / GCE o la instalación local de k8s, puede corregir el error en las herramientas de implementación escritas en golang.
En algunas áreas, el valor aumenta la disponibilidad de certificados. Al contratar, su cartera es importante, es más fácil demostrar sus habilidades y su código participando en proyectos de código abierto o publicando sus proyectos favoritos en github.
- Mencionaste varias soluciones tecnológicas populares. Resulta que necesitamos aprender qué hay en la tendencia.No necesariamente Puede ir a por el bombo publicitario en el mercado, o puede ir en la dirección opuesta. Si está interesado en tecnología poco común y no quiere correr después de la moda, existe la posibilidad de aumentar su valor debido a su conocimiento único.
Los gigantes de la tecnología moderna son lo suficientemente flexibles y pueden permitirse actualizar sus sistemas con éxito. Y, por lo que se puede juzgar, Yandex y Google no tienen un impresionante legado de soluciones basadas en tecnologías obsoletas.
Pero hay sectores más conservadores:
bancos internacionales , gigantes industriales y energéticos, y la industria de defensa. Para ellos es muy difícil encontrar especialistas en su propia pila y están listos para pagar un buen dinero. Un buen ejemplo es el uso de Perl "moribundo" en booking.com y mail.ru. O
COBOL , desarrollado en los años 60, y aún utilizado en algunas instituciones financieras de los Estados Unidos.
- Y entonces, ¿qué se entiende por habilidades universales?La capacidad de comunicarse con otras personas aumenta significativamente el valor del desarrollador para la empresa. En la práctica, esto significa que una persona puede plantear un problema, fundamentar su opinión, proponer una solución, identificar correctamente a las partes interesadas, saber cómo interactuar efectivamente con diferentes personas (flexibilidad), resolver conflictos de manera constructiva, negociar, capacitar, orientar y asesorar. E incluso hablar en público o presente.
Esto también incluye la capacidad de hablar el mismo idioma que el diseñador y la comprensión de los motivos de su líder. Pienso en el conocimiento del inglés, por lo que todo está claro.
- ¿Qué significa asumir más responsabilidad?Nos esforzamos por contratar personas que busquen un poco más allá de su herramienta de trabajo (tecnología) y se concentren en los valores para el usuario final. Por ejemplo, aquellos que ofrecen opciones para optimizar los procesos de desarrollo, están buscando soluciones al problema de un cliente y están listos para hacer esfuerzos para discutir e implementar cambios.
Desafortunadamente, a menudo puedes ver desarrolladores que crean un culto en torno a sus herramientas. Pero debe comprender que si el código no entró en producción a tiempo, su calidad o las herramientas utilizadas no importan. Este código no trajo ganancias a la empresa.
"Me recuerda a los valores ágiles". ¿Hay una conexión?Si Existe un conjunto de
prácticas llamadas DevOps que desarrolla valores ágiles. Ayuda a la empresa a cambiar su enfoque de los procesos de formalización a interactuar internamente para crear valor. Pero esto es imposible sin asumir la responsabilidad del resultado final de todos los miembros del equipo.
Un buen desarrollador comprende la cultura DevOps y sabe cómo aplicarla en su equipo e, idealmente, en la empresa. O incluso plantar. Por ejemplo, una de las prácticas de DevOps es CI / CD (las versiones más frecuentes). Y si realmente desea realizar lanzamientos frecuentes (al menos una vez al día), no podrá hacerlo en ausencia de la automatización de la integración y las pruebas, la automatización y la estabilización del proceso de implementación, la separación del lanzamiento del despliegue (alternancia de funciones), que está funcionando y es claro para el monitoreo, los desarrolladores de preservación compatibilidad con versiones anteriores, cambio de mecanismo de retroceso, etc. Será obvio para usted que la responsabilidad de un buen desarrollador no termina cuando transfiere la tarea al departamento de control de calidad.
El valor de los lanzamientos frecuentes parece ser obvio para todos.
Anti-DevOps es una división del proceso de producción en dos o más pozos funcionales: desarrollo, pruebas, operación, seguridad. Como resultado, cada función resuelve solo sus propios problemas.
El sentido general es que el equipo debe asumir la responsabilidad de la calidad del producto, el valor de las características para el cliente, el momento y, en menor medida, el cumplimiento formal de los requisitos en la descripción de la tarea. El desarrollador no debe tener prejuicios para limitar su responsabilidad: “Ya he transferido la tarea a las pruebas. No puedo evitar nada más ".
Cuanta más responsabilidad, mayor será el impacto en los resultados de la empresa. En una buena compañía, las personas que influyen en su crecimiento ascienden en la escala profesional.
La responsabilidad del equipo requiere una buena comunicación. Construir todo lo anterior sin las habilidades de comunicación constructiva y trabajo en equipo es casi imposible.
- ¿Por todas partes así?En una gran empresa con procesos maduros ya establecidos, la aceptación de la responsabilidad significará hacer algo más allá del trabajo en su proyecto: organización de reuniones, charlas tecnológicas, hackatones; participando en preventa o entrenamiento interno.
- Conclusiones?En resumen, podemos decir que la
estrategia más
óptima para el desarrollo personal es
adquirir habilidades de comunicación para
expandir de manera más efectiva
los límites de responsabilidad de lo que sucede con su producto y en su equipo o empresa.