Estado de DevOps: Una historia de mejora continua

Rate this content
Bookmark

Durante casi una década, el proyecto de Investigación y Evaluación de DevOps (DORA) ha estudiado los comportamientos de miles de equipos de desarrollo de software y ha descubierto las capacidades clave que predicen de manera confiable el éxito. DORA ha encontrado consistentemente que no solo los mejores intérpretes lideran sus industrias tanto en velocidad de lanzamiento como en confiabilidad del servicio, sino que también logran mejores resultados comerciales y tienen empleados más satisfechos.

En esta sesión, desglosaremos los hallazgos de la investigación y delinearemos los pasos clave que su equipo puede tomar hacia la mejora continua.

Combinaremos estos hallazgos con historias "del campo" sobre cómo los equipos están poniendo en práctica estas ideas.

12 min
15 Feb, 2024

Video Summary and Transcription

Esta charla discute la historia de mejora continua en el desarrollo de software. Se enfatiza la importancia de medir el rendimiento de entrega de software utilizando métricas como el tiempo de entrega, la frecuencia de implementación, la tasa de fallos en los cambios y el tiempo de restauración. Las revisiones de código desempeñan un papel importante en la mejora de la entrega de software, y se recomienda explorar el impacto potencial de la inteligencia artificial en las revisiones de código. Centrarse en la documentación y en la utilización adecuada de la nube puede mejorar el rendimiento organizativo. Por último, una buena cultura, enfoque en el usuario y un equipo de plataforma colaborativo son cruciales para el éxito en el desarrollo de software.

Available in English

1. Introducción: Historia de Mejora Continua

Short description:

Estamos emocionados de estar aquí en DevOps JS para contarles una historia de mejora continua. Amanda Lewis, una ingeniera de software, y Nathan Harvey, un defensor de DORA, discutirán cómo los equipos mejoran en la entrega y operación de software.

Hola a todos. Estamos muy emocionados de estar aquí en DevOps JS. Gracias por unirse a nosotros para escuchar una historia de mejora continua.

Nuestra historia de hoy será interpretada por Amanda Lewis, una ingeniera de software en un equipo que es responsable de la aplicación Kanban que su equipo utiliza para realizar un seguimiento del trabajo. Y tenemos a Nathan Harvey, quien interpretará a sí mismo, un defensor de DORA y un animador de mejora continua.

Entonces Nathan, eres un defensor de DORA. ¿Qué es DORA? Oh, cierto. Me alegra que hayas preguntado, Amanda. DORA es un programa de investigación que ha estado en funcionamiento durante aproximadamente una década. Este programa de investigación analiza cómo los equipos mejoran en la entrega y operación de software. Increíble. Estoy muy emocionada de poder hablar contigo hoy porque mi equipo y yo tenemos esta meta y creo que podrás ayudarnos a alcanzarla.

2. Explorando Metas y Prioridades

Short description:

El objetivo de Amanda es ganar el trofeo DORA, pero Nathan sugiere enfocarse en la mejora continua en su lugar. El equipo ha realizado una evaluación rápida y ha encontrado áreas de mejora en la arquitectura. Nathan recomienda comenzar con algo en lo que el equipo pueda mejorar y sugiere utilizar la evaluación rápida para medir el rendimiento en la entrega de software.

¡Guau, eso es increíble! Amanda, si voy a ayudarte a alcanzar tu objetivo, la primera pregunta que tengo es, ¿cuál es tu objetivo? ¿Qué estás tratando de lograr? Queremos obtener el trofeo DORA. Queremos ganar el trofeo DORA. Oh, genial. Eso parece importante, pero tal vez no sea la mejor meta. ¿Por qué? ¿Por qué quieres un trofeo DORA? ¿Qué estás tratando de demostrar con eso?

Sabes qué, Amanda, tal vez podríamos realizar la evaluación rápida junto con tu equipo, la evaluación rápida de DORA, y entender cómo están haciendo las cosas hoy. Y eso incluso podría ayudarnos a aclarar cuáles deberían ser tus metas. Debo decir, Nathan, que queremos el trofeo, pero reconocemos que para obtenerlo, debes demostrar que estás mejorando continuamente con el tiempo. Y eso es absolutamente lo que queremos hacer. Y el equipo realmente se ha reunido y ha realizado la evaluación rápida. Así que hemos respondido estas cinco preguntas que estás mostrando. Y también hemos pasado por el ejercicio de priorización, que fue realmente interesante, hablando sobre nuestra integración continua, en la que estamos haciendo muy bien. Cuando se trata de architecture, sabes, ¿tenemos control allí? En realidad, no lo tenemos. Realmente dependemos de otros equipos cuando realizamos cambios. Pero también hemos respondido las preguntas sobre la cultura. Y quería preguntarte, aquí están nuestros hallazgos del ejercicio de priorización. Y sabes, fue genial. Estamos haciendo bien en la integración continua. Hay margen para mejorar allí. La cultura está bastante bien. Pero esa arquitectura poco acoplada, eso parece, oh, deberíamos comenzar allí. Pero el equipo, no creemos que podamos, ni siquiera sabemos cómo empezar. Realmente no tenemos influencia sobre las decisiones arquitectónicas.

Ah, sí, puedo entender eso. Y definitivamente recomiendo que comiencen con algo en lo que su equipo pueda mejorar. Pueden comenzar con una evaluación rápida. Esto les ayudará a establecer una línea de base de cómo está haciendo su equipo hoy en día en cuanto al rendimiento en la entrega de software. Y les permitirá hacer un seguimiento de su puntuación a medida que realicen mejoras. Muy bien. Así que solo para asegurarme de entender, porque usamos la evaluación rápida, quiero asegurarme de entender qué estamos midiendo.

3. Measuring Software Delivery Performance

Short description:

El tiempo de entrega de cambios, la frecuencia de implementación, la tasa de fallos en los cambios y el tiempo de restauración son métricas esenciales a tener en cuenta. Las revisiones de código desempeñan un papel importante en la mejora de la entrega de software. Los equipos que se responsabilizan a través de revisiones entre pares han mostrado resultados positivos. La automatización de las revisiones de código y los procesos de aprobación de cambios puede reducir significativamente el trabajo manual y aumentar la eficiencia.

Entonces, con el tiempo de entrega de cambios, estamos pensando en cuándo comprometemos código, ya sabes, en el repositorio y luego cuando llega a manos de nuestros usuarios.

Sí, eso es exactamente correcto. Una vez que se implementa en producción, ahí es cuando se detiene el temporizador. De acuerdo. Y luego, en cuanto a la frecuencia de implementación, se trata de con qué frecuencia lo estamos llevando a producción.

Así es. Queremos pensar en qué tan frecuentemente puedes actualizar tus sistemas de producción. De acuerdo. Y la tasa de fallos en los cambios es cuando algo no sale bien y tenemos que solucionarlo rápidamente o tal vez revertirlo.

Sí. Me gusta llamar a esto la tasa de O-Expletive. Es lo que sucede cuando alguien envía un cambio a producción y escuchas un expletivo. No podemos esperar hasta la próxima versión para solucionarlo. Tenemos que revertir este cambio o implementar una solución rápida. Afortunadamente, hoy en día no escuchamos eso con frecuencia, así que eso es bueno. Y luego, el tiempo de restauración es cuánto tiempo nos lleva recuperarnos y volver a la normalidad para nuestros usuarios después de escuchar ese expletivo. Así que. Muy bien. Muy bien. Me alegra que entendamos eso. Sí. Sabes, mientras revisábamos esto o mientras tu equipo revisaba esto, vimos que una arquitectura poco acoplada era una de esas cosas en las que podrían profundizar. Tal vez no tengan mucho control sobre eso. Pero, ¿qué hay de las revisiones de código?

¿Cómo van las revisiones de código en tu equipo? Bueno, creo que van bien, pero como equipo, definitivamente vimos en el informe de este año cuánto impacto podría tener tener revisiones de código más rápidas en nuestra entrega de software. Es un área en la que queremos investigar más y ver si hay fricción y si podemos mejorarla. Este año no fue la primera vez que profundizamos en esto. De hecho, en la investigación de 2014, vimos que los equipos abordaban esto de manera diferente. Se les permitía a los equipos responsabilizarse de la calidad de su código a través de revisiones entre pares y funcionaba. Las revisiones de código han existido durante mucho tiempo. De hecho, en 2017, también vimos que los equipos de mejor rendimiento realizaban mucho menos trabajo manual, incluida la automatización de algunas de sus revisiones de código y procesos de aprobación de cambios. Es posible. De hecho, vemos que los procesos de aprobación de cambios pesados tienden a ralentizarnos.

4. Improving Code Reviews and Documentation

Short description:

Las revisiones de código son cruciales y un proceso de aprobación pesado puede obstaculizar el éxito. Explorar el impacto potencial de la inteligencia artificial en las revisiones de código es una buena idea. La IA está empezando a contribuir en varias tareas técnicas. La documentación es importante pero difícil de priorizar.

No solo nos ralentizan, sino que también hacen que nuestros cambios sean menos propensos a tener éxito. Así que aquí tenemos una doble negativa. Hay que tener cuidado con la duración del proceso de aprobación de cambios y esto comienza con las revisiones de código. Definitivamente, este es un área en la que podríamos mejorar.

Como estabas diciendo, mientras pensaba en ello, tenemos un proceso pesado, especialmente cuando implica la necesidad de aprobaciones externas a nuestro equipo. Así que este podría ser un buen lugar para mejorar. ¿Y qué hay de la inteligencia artificial? Tal vez podrías explorar cómo la IA podría ayudar a mejorar tus revisiones de código. Sabes, Nathan, eso es una buena idea. Me pregunto si estamos jugando al bingo porque mencionaste la palabra IA. Sabes, nos encanta hablar de IA en nuestro equipo, ya sabes, hemos empezado a experimentar con ella. La mayoría de nosotros la estamos utilizando en el IDE y viendo cómo nos ayuda, ya sabes, a programar más rápido. Y así, no había pensado en cómo podría afectar a las revisiones de código, pero definitivamente es algo que el equipo debería discutir. Sí, absolutamente. Sabes, en nuestra encuesta más reciente, vimos que la IA está empezando a contribuir en varias tareas técnicas. Por supuesto, todavía es muy temprano, pero muy, muy emocionante. Sí, ya sabes, estamos emocionados por explorarlo más a fondo. Solo estamos esperando esas aprobaciones. Y una vez que estas herramientas hayan pasado por el proceso de aprobación de nuestra organización, entonces definitivamente vamos a querer profundizar más. Bueno, espero que ese proceso de aprobación ocurra muy rápidamente porque, ya sabes, hemos visto que llevará un poco de tiempo para que estas herramientas impulsadas por IA se utilicen ampliamente en la industria. Pero somos muy optimistas sobre cómo nos van a ayudar. Así que, mientras esperas a la IA, tal vez Amanda, pueda preguntarte sobre tu documentación. Oh, es tan importante, Nathan. Lo sé.

5. Focusing on Documentation and Cloud Usage

Short description:

Enfocarse en la documentación conducirá a recompensas. El uso de la nube es importante, pero se trata más de cómo lo utilizas. Una infraestructura flexible y una utilización adecuada de la nube pueden mejorar el rendimiento organizacional. La investigación ayuda a identificar áreas de mejora y mejora continua.

Lo leí en el informe. Es muy importante. Pero puede ser difícil, ¿verdad? Se necesita tiempo. Y sé que es algo en lo que deberíamos enfocarnos. Y definitivamente exploraremos esto. Pero es difícil. Sí, sé que es difícil. Pero, ya sabes, hemos investigado la documentación durante varios años, y los hallazgos del informe lo han dejado claro. Si puedes mejorar la calidad de tu documentación, tendrá un impacto en múltiples áreas en las que tu equipo está trabajando. De hecho, para cada una de las capacidades en las que estamos trabajando para mejorar, tener una buena documentación en su lugar nos ayudará a todos. Muy bien. Sé que es difícil, pero me has convencido. Queremos, ya sabes, queremos ser felices. Queremos ser productivos. Queremos mejorar. Y parece que si nos enfocamos en la documentación, cosecharemos las recompensas de eso.

Absolutamente. Y también me interesa cómo utilizas la nube. Como empresa, definitivamente estamos comenzando a utilizar la nube.

6. Platform Team and Cloud Utilization

Short description:

El equipo de plataforma está trabajando para facilitarnos las cosas. Una infraestructura flexible y una utilización adecuada de la nube pueden mejorar el rendimiento organizacional. La investigación ayuda a identificar áreas de mejora y mejora continua.

Han establecido un equipo de plataforma que está trabajando para facilitarnos las cosas. Por nuestra parte, lo estamos utilizando un poco, pero aún no completamente. Pero esperamos que a medida que avancemos hacia 2024, podamos hacerlo un poco mejor.

Me alegra escuchar que tu equipo de plataforma está haciendo que sea más fácil. Vemos que una infraestructura flexible conduce a un rendimiento organizacional mucho mejor. Y lo que realmente importa no es que estés utilizando la nube, sino cómo estás utilizando la nube. ¿Eres capaz, como desarrollador, de aprovechar cosas como el autoservicio bajo demanda y la elasticidad rápida? Estas son las cosas que la nube tiene para ofrecer. Y aunque muchos equipos y organizaciones han estado utilizando la nube durante mucho tiempo, vemos que es más importante asegurarse de que la estás utilizando correctamente. No solo que la estás utilizando, sino cómo la estás utilizando. Y nuestra investigación realmente abarca una serie de capacidades como las que hemos discutido aquí hoy, capacidades técnicas, procesos y culturales, y realmente ayuda a los equipos a comprender ¿dónde está mi restricción? ¿Dónde puedo hacer alguna mejora para poder embarcarme en este viaje de mejora continua donde mejoro en el arte de mejorar?

Bueno, Nathan, gracias por esta discusión. Me has dado muchas ideas geniales para llevar de vuelta al equipo y lugares que podemos explorar que realmente están bajo el control de nuestro equipo.

7. Culture, User Focus, Documentation, and Community

Short description:

Una buena cultura, enfoque en el usuario, documentación y un equipo de plataforma colaborativo son cruciales para el éxito. Mejorar la distribución del trabajo y evitar la injusticia y el trabajo excesivo conducirá a un equipo feliz y productivo. Únete a la Comunidad de Práctica de DORA para conectarte, inspirarte y trabajar juntos en mejorar la entrega de software.

Y realmente disfruté leyendo el informe. Algunas de las conclusiones que vi fue que nuestra cultura es realmente importante. Tener una buena cultura dentro de nuestro equipo y organización es fundamental para tener éxito. Enfocarnos en el usuario cuando estamos realizando estas iniciativas de cambio. Asegurándonos realmente de que estamos pensando en el usuario cuando lo hacemos.

Documentación, te escucho. Veo el valor. Definitivamente vamos a abordar eso. La importancia de, con una infraestructura flexible, es cómo la estamos utilizando. Y diría que nuestro equipo de plataforma ha sido realmente fantástico. Realmente nos están escuchando y ha sido una colaboración real. Así que siento que vienen cosas buenas ahí.

Y luego la sección sobre cómo se distribuye el trabajo fue realmente impactante para nosotros. Y estamos trabajando en mejorar y tener un proceso para cómo distribuimos el trabajo. Porque no queremos que nadie tenga más trabajo excesivo o que esté trabajando en algo que no será recompensado a largo plazo. Porque eso no es justo y no nos hará un equipo feliz y productivo.

Sí, me encanta eso, Amanda. Y gracias por leer el informe. Y estoy realmente emocionado de seguir tu viaje mientras tomas ideas del informe y las pones en acción. Y para aquellos de ustedes que aún no han tenido la oportunidad de descargar el informe, vayan a dora.dev slash dorareport y pueden descargar el informe y leerlo hoy. Encuentren su propia inspiración.

Y luego te animo a unirte a la Comunidad de Práctica de DORA. Hoy, acabamos de comenzar mostrando cómo puedes comenzar en este viaje de mejora continua. Pero en la Comunidad de DORA, hay muchos profesionales compartiendo cómo lo están haciendo, los resultados que están obteniendo. Y es un gran lugar para conectarse, emocionarse y trabajar juntos en mejorar nuestra entrega de software. Así que espero que te unas a nosotros en DORA.Community. Y realmente, Nathan, gracias por unirte hoy. A todos aquí, gracias por unirse a nosotros. Estoy realmente emocionado de estar aquí y espero que disfruten el resto de las charlas.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
Interactive web-based tutorials have become a staple of front end frameworks, and it's easy to see why — developers love being able to try out new tools without the hassle of installing packages or cloning repos.But in the age of full stack meta-frameworks like Next, Remix and SvelteKit, these tutorials only go so far. In this talk, we'll look at how we on the Svelte team are using cutting edge web technology to rethink how we teach each other the tools of our trade.
React Summit US 2023React Summit US 2023
32 min
Gateway to React: The React.dev Story
A behind the scenes look at the design and development of the all-new React docs at react.dev. The new react.dev launched this year introducing new methodologies like challenges and interactive sandboxes and subtle inclusivity features, like "international tone" and culturally agnostic examples. Not only have the new docs changed how people learn React, they've inspired how we think about developer education as a community. In this talk, you will learn how the React team and some ambitious community members made the "React docs rock" for a generation of front end developers and how these new patterns and established techniques can be applied in your favorite projects.
React Finland 2021React Finland 2021
27 min
Opensource Documentation—Tales from React and React Native
Documentation is often your community's first point of contact with your project and their daily companion at work. So why is documentation the last thing that gets done, and how can we do it better? This talk shares how important documentation is for React and React Native and how you can invest in or contribute to making your favourite project's docs to build a thriving community
React Finland 2021React Finland 2021
18 min
Documenting components with stories
Most documentation systems focus on text content of one form or another: WYSIWYG editors, markdown, code comments, and so forth. Storybook, the industry-standard component workshop, takes a very different approach, focusing instead on component examples, or stories.
In this demo, I will introduce an open format called Component Story Format (CSF).
I will show how CSF can be used used to create interactive docs in Storybook, including auto-generated DocsPage and freeform MDX documentation. Storybook Docs is a convenient way to build a living production design system.
I will then show how CSF stories can be used create novel forms of documentation, such as multiplayer collaborative docs, interactive design prototypes, and even behavioral documentation via tests.
Finally, I will present the current status and outline a roadmap of improvements that are on their way in the coming months.
TypeScript Congress 2022TypeScript Congress 2022
25 min
TypeScript for Library Authors: Harnessing the Power of TypeScript for DX
Using real-life open-source examples, we'll explore the power of TypeScript to improve your users' experience. We'll cover best practices for library authors, as well as tips and tricks for how to take a library to the next level. This talk will cover: 
- how to leverage the type inference to provide help to your users; - using types to reduce the need and complexity of your documentation - for example, using function overloads, string literal types, and helper (no-op) functions; - setting up testing to ensure your library works (and your types do too!) with tools like tsd and expect-type; - treating types as an API and reducing breaking changes whilst shipping enhancements; - I'd draw on my experience with libraries like nuxt3, sanity-typed-queries and typed-vuex and show what we managed to do and what I'd do differently in future. 

Node Congress 2023Node Congress 2023
30 min
Next Generation Code Architecture for Building Maintainable Node Applications
In today's fast-paced software development landscape, it's essential to have tools that allow us to build, test, and deploy our applications quickly and efficiently. Being able to ship features fast implies having a healthy and maintainable codebase, which can be tricky and daunting, especially in the long-run.In this talk, we'll explore strategies for building maintainable Node backends by leveraging tooling that Nx provides. This includes how to modularize a codebase, using code generators for consistency, establish code boundaries, and how to keep CI fast as your codebase grows.

Workshops on related topic

DevOps.js Conf 2022DevOps.js Conf 2022
76 min
Bring Code Quality and Security to your CI/CD pipeline
WorkshopFree
In this workshop we will go through all the aspects and stages when integrating your project into Code Quality and Security Ecosystem. We will take a simple web-application as a starting point and create a CI pipeline triggering code quality monitoring for it. We will do a full development cycle starting from coding in the IDE and opening a Pull Request and I will show you how you can control the quality at those stages. At the end of the workshop you will be ready to enable such integration for your own projects.