Developer Experience, un concepto extrapolable
El concepto de Developer Experience (DevEx) se refiere a la calidad de la experiencia que tienen los desarrolladores al crear software, interactuando con herramientas, frameworks, APIs, documentación y otros recursos. Si bien no hay una fecha exacta que marque el origen del término, el concepto DevEx ha ganado popularidad en la última década, especialmente con el crecimiento del desarrollo de software y el enfoque en la experiencia del usuario en diferentes campos, incluyendo el de los desarrolladores.
El concepto es importante y está actualmente en el ojo del huracán porque se está demostrando que es determinante y que tiene impacto directo en la mejora de la productividad, la calidad del software generado (reduciendo errores), satisfacción del desarrollador, así como la facilidad para la adopción de nuevas tecnologías.
Atlassian también se ha sumado hace no mucho a explicar cómo el universo de Jira favorece este concepto de Developer Experience, y ha publicado un vídeo en el que menciona tres prácticas relacionadas con la cultura del desarrollo que favorecen definitivamente el concepto DevEx, a saber:
Si nos paramos a pensar, ninguno de estos tres conceptos es nuevo. Incluso, yo diría, que para conseguir mantener a los desarrolladores en un estado de flujo óptimo, necesitas tener a mano las métricas adecuadas, así que realmente son prácticamente «dos conceptos y medio». Pero lo que me ha llevado a escribir este artículo es lo que mencionaba, que nada de esto es nuevo (quizá la única novedad es cómo nuevas funcionalidades en Jira apoyan estos conceptos), y que además es extrapolable. Vamos una por una:
- Ayudar a los desarrolladores a mantenerse productivos estando en un estado óptimo de flujo, sin interrupciones, son conceptos que heredan de la filosofía lean. por ejemplo, las consabidas prácticas generales del método Kanban sobre visualización, limitación de la cantidad de trabajo en curso o gestión del flujo van totalmente en esta dirección.
- La sobrearga cognitiva es otro concepto bastante explorado y está demostrado que el aprendizaje se ve seriamente mermado en contextos de sobrecarga, como bien se menciona en este artículo de LinkedIn de Val Muñoz. Los seres humanos apenas gestionamos bien unos 7 flujos de información en paralelo. Limitar la cantidad de tareas que se abordan en paralelo junto con cualquier ayuda para recuperar rápidamente la información que se necesita, relacionando conceptos conectados en una misma pantalla, suponen definitivamente una ayuda inestimable. Ejemplo, el nuevo portal para desarrolladores Atlassian Compass:
- Medir lo que importa, o saber qué es lo que se debe medir, también es un concepto que se ha revisado muchas veces. En este caso mencionaré el modelo de «Measure and Grow» de SAFe, que propone seis métricas de flujo concretas (aparte de sugerir medir competencia y objetivos o resultados con KPI y OKR), provenientes del libro Project to Product de Mik Kersten:Precisamente estas seis métricas de flujo, junto con las archiutilizadas métricas DORA (DevOps Research and Assessment, introducidas por Google), son las novedades que se mencionan para Jira (las métricas de flujo ya están disponibles en Jira Align).
Y, para cerrar, hablemos de extrapolación. Porque… ¿son estas tres prácticas sólo aplicables al universo de la experiencia del desarrollador? En mi opinión, no. Muchas de las prácticas que favorecen el Developer Experience (DevEx), pueden extrapolarse y aplicarse a otras áreas de la empresa. Podríamos citar algunos ejemplos claros:
- Experiencia del Usuario (UX): En el diseño de productos o servicios, mejorar el flujo de interacción del usuario, reducir la carga cognitiva al simplificar interfaces y procesos, y capturar métricas relevantes de satisfacción del usuario son prácticas esenciales para ofrecer una excelente Experiencia del Usuario (UX).
- Experiencia del Cliente (CX): En el servicio al cliente y la experiencia del cliente, es importante garantizar que los clientes puedan navegar fácilmente por los procesos de compra o resolución de problemas, reducir cualquier fricción que puedan experimentar y capturar métricas relevantes de satisfacción del cliente para identificar áreas de mejora.
- Operaciones y Procesos Internos: Dentro de la empresa, mejorar el flujo de trabajo de los empleados, simplificar cualquier procedimiento interno y reducir la carga cognitiva al eliminar tareas innecesarias o complejas pueden aumentar la eficiencia y la satisfacción de los empleados, lo que a su vez puede tener un impacto positivo en la productividad y la moral del equipo.
- Recursos Humanos y Gestión de Talento: En el reclutamiento y la gestión del talento, mejorar el flujo de candidatos a través del proceso de contratación, reducir la carga cognitiva al simplificar los procedimientos de evaluación y entrevista, y capturar métricas relevantes de satisfacción del empleado pueden ayudar a atraer, retener y desarrollar el talento adecuado.
- Etc…
… y todo esto junto se parece bastante a alcanzar un estado de agilidad empresarial, ¿no creéis? ¿O soy yo solo el que veo Business Agility por todas partes?