Durante el año pasado, he estudiado en detalle cómo está cambiando el espacio de productividad del desarrollo de software. Durante este tiempo, he hablado con líderes de ingeniería de docenas de organizaciones, revisé la literatura más reciente e incluso realicé encuestas de opinión representativas entre ingenieros de software.
Si bien el futuro es incierto, existen tres tendencias clave que los líderes tecnológicos no pueden permitirse pasar por alto. La forma en que los líderes tecnológicos implementen estas tendencias dentro de sus organizaciones ayudará a definir qué tan exitosos son a la hora de impulsar la productividad e impulsar el bienestar de los desarrolladores.
Los entornos de desarrollo se trasladarán a la nube
Cuando un desarrollador comienza un nuevo trabajo, no es inusual que necesite gastar hasta quince días simplemente tratando de obtener la aplicación en la que está trabajando para ejecutarla en su computadora local. Este proceso no es solo una gran pérdida de tiempo para el nuevo ingeniero, sino también para los ingenieros experimentados que tienen que incorporarlos a través de este proceso. A medida que los proyectos de software se vuelven más complejos, este proceso de incorporación simplemente se vuelve más difícil.
En diversos grados, las empresas han intentado solucionar este problema mediante la documentación y las herramientas, pero no siempre han tenido un éxito total. A veces, los desarrolladores pueden tener muchas opiniones sobre la tecnología que utilizan para sus trabajos. El hardware, los sistemas operativos e incluso los editores de código pueden variar drásticamente incluso entre los desarrolladores que trabajan en el mismo proyecto.
Agregue a esto el hecho de que los entornos de desarrollo necesitan cada vez más ser compatibles con las arquitecturas Intel y los nuevos chips M1 de Apple, junto con el trabajo remoto, lo que agrega mayor complejidad a la ejecución de entornos de desarrollo locales.
Los entornos de desarrollo local son ahora en gran parte la única parte del tiempo del ciclo de vida del desarrollo de software que se realiza localmente en la computadora de un desarrollador. Las compilaciones automatizadas, los entornos de ensayo y las aplicaciones de producción en ejecución se han trasladado en gran medida de las computadoras locales a la nube.
Microsoft y Amazon han estado trabajando arduamente para abordar este desafío. En agosto de este año, Microsoft lanzó GitHub Codespaces a disponibilidad general. GitHub Codespaces ofrece entornos de desarrollo completos a los que se puede acceder utilizando solo un navegador web que puede iniciarse en segundos. El servicio permite a los equipos de tecnología que almacenan su código en el servicio GitHub de Microsoft desarrollar utilizando su editor de código de Visual Studio completamente en la nube.
Amazon también tiene su propia solución para este problema, con AWS Cloud9 que permite a los desarrolladores editar y ejecutar su código desde la nube. También se han creado nuevas empresas para abordar este problema: en abril, Gitpod anunció que había recaudado $ 13 millones para su solución para trasladar el desarrollo de software a la nube.
Sin duda, podemos esperar ver una mayor adopción de estas tecnologías durante 2022.
DevOps se volverá más científico
El equipo DORA (DevOps Research and Assessment) de Google ha realizado una investigación que ha vinculado el desempeño de la organización tecnológica con los resultados comerciales. Su investigación encontró que las empresas con organizaciones de ingeniería de élite tienen el doble de probabilidades de lograr sus objetivos organizacionales y lograr una tasa de crecimiento 50% más alta en tres años.
Los puntos de referencia de 2021 realizados por el equipo DORA de Google e independientemente por Puppet han demostrado constantemente que la industria del desarrollo de software es cada vez más competitiva. El número de equipos de ingeniería de élite está creciendo, mientras que la proporción de equipos de bajo rendimiento está disminuyendo. Una encuesta de desarrolladores de software del Reino Unido que realicé con Haystack Analytics y Survation descubrió que el 40% de los desarrolladores de software dicen que pueden entregar nuevas funciones de manera confiable, por lo general, el mismo día en que se las solicitan, si no en unas pocas horas.
Para ofrecer nuevas funciones de forma rápida y fiable sin que los desarrolladores se agoten, los equipos de desarrollo de software deben asegurarse de que sus procesos y herramientas estén tan pulidos como sea posible. La productividad de los desarrolladores se considera tan importante que Netflix tiene un equipo de Productividad de desarrolladores dedicado, mientras que Google contrata a muchos ingenieros para su función EngProd (Productividad de ingeniería).
Antes de mejorar cualquier parte del proceso de desarrollo de software, es vital centrarse en dónde están los cuellos de botella. En 2021, varias empresas han obtenido fondos para crear plataformas de análisis de desarrolladores para resaltar estos cuellos de botella.
Las empresas de análisis de desarrolladores que han obtenido financiación con éxito durante 2021 incluyen Haystack Analytics, LinearB, Swarmia y CodeClimate. He consultado personalmente para el equipo de Haystack Analytics durante los últimos meses y descubrí que la demanda está aumentando, con ingresos que crecen en un promedio del 35% mes a mes.
El trabajo remoto será permanente
Gran parte de lo que ya he escrito aquí sin duda se ha visto acelerado por el crecimiento del trabajo remoto entre los desarrolladores durante la pandemia de Covid-19. Este cambio parece ser permanente.
2021 de GitHub Estado del Octoverso El informe encontró que si bien el 41% de los encuestados compartían la oficina antes de la pandemia, solo el 10,7% esperaba permanecer en la oficina después de la pandemia. Esto representa una disminución del 74% en la tasa de trabajo en oficinas compartidas.
El informe también encontró que los desarrolladores esperan un aumento del 41% en la tasa de trabajo híbrido, donde parte del personal trabaja de forma totalmente remota y algunos ingresan a la oficina. Se esperaba que las empresas que empleaban trabajo totalmente remoto aumentaran en un 46% en comparación con antes de la pandemia.
Según GitHub, la productividad está comenzando a volver a los niveles previos a la pandemia, pero está claro que se necesita hacer más para llenar los vacíos que deja el trabajo de oficina compartida. Una encuesta de desarrolladores de software del Reino Unido que dirigí para Haystack Analytics y Survation encontró que, de los ingenieros de software que sufrieron mayores niveles de agotamiento durante la pandemia, el 30% informó que la falta de contacto con sus colegas era la causa, mientras que el 27% informó tener que trabajar desde casa como causa. una causa.
A lo largo de 2022, es razonable que esperemos encontrar nuevas formas para que los colegas no solo trabajen juntos en línea, sino que también se conecten fuera de línea. Se han reiniciado varias conferencias de desarrolladores en persona para el próximo año, y algunas incluso han adoptado un enfoque híbrido. Del mismo modo, vemos empresas que adoptan sus espacios de trabajo para utilizarlos como lugares de colaboración ocasional, en lugar de trabajo continuo.
A medida que el trabajo remoto se vuelve permanente, podemos esperar que los desarrolladores encuentren otras formas de lograr lo que se pierden del contacto en persona, para mantener lo mejor de ambos mundos. Las conferencias y los espacios de oficinas reformados jugarán un papel clave en esta transformación.
El mundo de los desarrolladores sin duda verá una evolución continua durante el próximo año. Como ha demostrado la pandemia, el futuro está lejos de estar garantizado, pero estas son las tres tendencias clave que puedo ver que afectan a la comunidad de desarrolladores. Cada uno de estos tres desarrollos traerá nuevos avances en la productividad y el bienestar de los desarrolladores, lo que ayudará a acelerar la entrega de software a pesar de las limitaciones en el suministro de ingenieros de software.
Junade Ali es gerente de ingeniería de software y ayuda a asesorar a los líderes de ingeniería en Haystack Analytics