Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

¿Qué es la Developer Experience? Y por qué te debería importar incluso si no eres una persona desarrolladora

Imaginemos que necesitas cumplir la osada tarea de bañar a un elefante, pero todos los Ă­tems necesarios para la tarea estĂĄn en una cabaña a 5 kilĂłmetros de distancia. TendrĂĄs que entrar a un vehĂ­culo, separar los Ă­tems necesarios y llevarlos al lugar de la tarea. Si, por alguna razĂłn, olvidas algĂșn Ă­tem, tendrĂĄs que regresar, duplicando tu tiempo inicial. Luego de que, finalmente, hayas bañado al elefante (una tarea para nada fĂĄcil, dado el tamaño del animal), tendrĂĄs que llevar de regreso todos los Ă­tems que usaste. Esas idas y vueltas y posibles percances aumentarĂĄn la complejidad de la tarea, que ya no es fĂĄcil. BĂĄsicamente, tardarĂ­as un dĂ­a entero en cumplir tus quehaceres y la menor falla costarĂ­a mucho tiempo.

Bueno, seguramente tu experiencia bañando elefantes no estĂĄ siendo buena. Hasta que, un dĂ­a, alguien decide construir una cabaña cerca de donde estĂĄ el elefante, y mover hasta allĂ­ todos los Ă­tems necesarios para el baño. ÂĄA partir de este momento, tu vida cambia! Ahora, todo estĂĄ cerca y la tarea fluye con facilidad, tu esfuerzo cognitivo disminuye drĂĄsticamente y puedes enfocarte mĂĄs en la tarea en sĂ­, que es el baño. Por eso, desarrollas nuevas tĂ©cnicas para bañar elefantes, y te vuelves cada vez mejor en esto. El costo general tambiĂ©n disminuye para ti, porque un vehĂ­culo para ir y volver con Ă­tems de baño ya no es necesario. Con el tiempo extra, pasas a mantener un control de los Ă­tems mĂĄs usados en el baño y ahora los compras en grandes cantidades, optimizando aĂșn mĂĄs los costos. Lo que antes te llevaba todo un dĂ­a, de forma trabajosa y costosa, ahora te lleva menos de la mitad de un dĂ­a y ocurre de manera fluida y mĂĄs especializada.

Si reemplazas el elefante por un sistema complejo, y el baño por la tarea de desarrollar y mantener el sistema, estarås viendo exactamente la importancia de una buena Developer Experience: es decir, cómo la organización externa, los procesos, las herramientas y todo el entorno estån influenciados -positiva o negativamente- por la concepción técnica de tu producto y, consecuentemente, en sus resultados. Analizaremos, entonces, los pormenores de todo esto.

Sobre la DevEx

La Developer Experience es una capa de anålisis que busca ofrecer el mejor ambiente, condiciones y herramientas para que las personas desarrolladoras tengan una experiencia fluida, natural y sin grandes esfuerzos en el proceso de la concepción, mantenimiento, depuración e integración de softwares, para alcanzar así mejores resultados en menos tiempo. La DevEx (a veces, también escrita como DX) abarcarå todo lo que influencia en el flujo pråctico del desarrollo, y cómo eso estå ayudando o dificultando las metas de la empresa o de los integradores de un determinado producto. La DX puede aparecer en algunos contextos diferentes, siendo los mås comunes:

Inner Source

El contexto interno de la empresa. BĂĄsicamente, las personas desarrolladoras que son empleadas o prestadoras de servicios estĂĄn experimentando el dĂ­a a dĂ­a de trabajo, y cĂłmo esa experiencia estĂĄ afectando el desarrollo del producto y, en consecuencia, las metas y los resultados.

Outer Source

El contexto externo de la empresa. Este es el caso de las empresas que ofrecen productos a otros desarrolladores como: herramientas, integraciones, paquetes open source y servicios en general. La DX, aquí, hace referencia a cómo la persona desarrolladora, en tanto consumidora, se relaciona con el producto. Esa DX también afecta las metas y los resultados, una vez que mås personas integradoras utilizan tu producto de manera mås fåcil y se convierten en factores de éxito para tu negocio.

Pero, ÂżcĂłmo tener una buena Developer Experience?

Es importante considerar que a una buena Developer Experience la construyen todos los agentes de su flujo de desarrollo y que puede representar un cambio lento y gradual de pensamiento y de cultura de una empresa. No hay una respuesta exacta a cĂłmo tener una buena DX, porque cada producto es Ășnico y cada contexto es Ășnico. De todas formas, existen algunos puntos especĂ­ficos que puedes probar para definir start points:

Procesos: asegĂșrate de que las fases, procesos y prioridades de tu sector de desarrollo estĂ©n bien definidas, tengan sentido y se hayan comprendido en todo el equipo.

DocumentaciĂłn: asegĂșrate de que las demandas generadas por las personas desarrolladoras estĂ©n bien documentadas y que esa documentaciĂłn sea de fĂĄcil acceso. Este punto es especialmente importante si ofreces productos de integraciĂłn a la comunidad, softwares de open source, APIs pĂșblicas y afines: es necesario que las personas usuarias de tus productos e integraciones tengan a su disposiciĂłn una excelente documentaciĂłn.

ComunicaciĂłn: asegĂșrate de que la comunicaciĂłn sea fĂĄcil y fluida en los equipos de desarrollo, y tambiĂ©n entre otros equipos. En casos de Outer Source, verifica que sea sencillo reportar un problema, aclarar dudas o acercarse al producto. A nivel equipo: asegĂșrate de que tus metas se hayan definido bien, y que estĂ©n bien comunicadas y reflejadas en tu proceso organizacional.

Cultura: asegĂșrate de que la cultura de tu equipo y de la empresa en sĂ­ ofrecen un grado de confort y tranquilidad necesarios para un buen trabajo. Que no haya ninguna hostilidad, competencias innecesarias, fricciones sociales, incertidumbres, etc.

AutonomĂ­a: asegĂșrate de que cada agente tenga la mayor autonomĂ­a sobre su flujo de trabajo. Por ejemplo: las personas desarrolladoras deben tener acceso a herramientas adecuadas, bases de cĂłdigo, accesos privilegiados, buen hardware para trabajar y afines. Gestionar herramientas e infraestructura tampoco debe ser un problema a nivel tĂ©cnico. OfrĂ©celes autonomĂ­a.

Escucha a tu equipo: Haz reuniones constantes para medir la temperatura del equipo. Verifica los dolores y extrae oportunidades de lo que se hable.

5 Beneficios de una buena DX

Una buena DX se transforma en beneficios para toda la empresa, por ejemplo:

1. Buen ambiente y rutina previsible: Una mejor rutina para las personas desarrolladoras genera un esfuerzo cognitivo mĂĄs liviano y un ambiente psicolĂłgicamente saludable, lo que se convierte en una mejor performance. Puedes descubrir mĂĄs detalles sobre eso en este post: How psychological safety affects employee productivity

2. Economía de tiempo: En un ambiente amigable y adecuado, las tareas y demandas fluirån en un proceso mucho mås ågil. Las fricciones como, por ejemplo, configuraciones de ambiente lentas y confusas, pequeños descubrimientos constantes que traban las tareas, ambientes inciertos, falta de documentación constante, comunicación incierta y lenta contribuyen mucho a un flujo mås lento y frågil, transformando tareas simples en demandas complejas y agotadoras, lo que se convierte en pérdida de tiempo. Una buena DX ayuda a disminuir dråsticamente este problema.

3. Optimización de Costos: Una buena DX también ayuda a optimizar costos, aprovechar las horas de cada persona desarrolladora, lo que se refleja en los demås puestos del equipo, menos optimizaciones en infraestructura, retrabajo y horas de planificación incierta. Una mala DX, generalmente, lleva a mås horas aplicadas en la depuración y desarrollo de soluciones inciertas, mås reuniones, desperdicio de recursos, infraestructura inadecuada, bugs frecuentes, etc. Todo eso significa mås costos.

4. MĂĄs InnovaciĂłn: Una buena experiencia reduce el costo cognitivo de los problemas triviales a niveles mĂĄs bajos, posibilitando que la persona desarrolladora explore las mejores maneras de ejecutar las tareas, generando la mejor performance y, por momentos, innovaciĂłn. Una mala experiencia de desarrollo hace que parte del esfuerzo cognitivo se aplique en mantener lo que ya existe sin romper nada mientras no se apliquen cambios en el software.

5. MultiplicaciĂłn: Todos los puntos anteriores hacen al producto mĂĄs previsible y comprensible, por lo que el intercambio de informaciĂłn entre personas desarrolladoras o de un equipo a otro se vuelve mĂĄs rĂĄpido y claro. Esto ayuda a la multiplicaciĂłn de conocimiento con respecto al producto.

Todos estos puntos hacen a un producto mĂĄs saludable, a una cultura mĂĄs saludable, a costos menores y a un ambiente de trabajo mĂĄs leve y asertivo.

¿Qué métricas puedo usar para medir mi DX?

  • Change Failure Rate (CFR): ÂżCuĂĄntos incidentes crĂ­ticos afectaron a tus deploys? Roll backs, bugs crĂ­ticos, problemas de infraestrutura, errores de release, etc. Empieza a observar este nĂșmero por unos meses, define un valor aceptable y trabaja con tu DX para reducirlo siempre.

  • Change Scope Rate (CSR): ÂżCuĂĄntas veces los planes o definiciones de una tarea cambian a mitad del camino? Eso, generalmente, genera retrabajo, pĂ©rdida de tiempo y una mala DX. Lo ideal es que ese nĂșmero estĂ© por debajo de un cuarto del nĂșmero total de iniciativas.

  • Time to Start (TS): Una vez que se defina conceptualmente una nueva demanda, ÂżcuĂĄnto tiempo tarda en salir de la planificaciĂłn y entrar a el proceso de desarrollo? Esa mĂ©trica puede cruzarse con la CFR para insights interesantes, por ejemplo: si tu TS estĂĄ baja (rĂĄpida) pero la CFR estĂĄ alta, puede indicar debilidad en las definiciones, tu equipo puede estar recibiendo poco contexto sobre las demandas, etc.

  • Mean Time To Recovery (MTTR): ÂżCuĂĄnto tiempo tarda la demora en recuperarse? Considera que aquĂ­ no se trata del tiempo en arreglar el problema, sino en remover el sĂ­ntoma del flujo de producciĂłn. Lo ideal es que una falla pueda aislarse en horas, o menos.


ConclusiĂłn

Alcanzar metas de manera asertiva y råpida es un factor importante y, a veces, decisivo en el desarrollo y mantenimiento de productos innovadores. Uno de los pilares para posibilitarlo es que la experiencia de la persona desarrolladora, a la hora de lidiar con la cultura interna, herramientas, anålisis y comunicación, sea fluida y clara. Eso se convertirå en beneficios para todos los puestos de trabajo: desde el técnico, la gestión, hasta la persona usuaria final, convirtiéndose en una mejor reputación para el producto, optimización de costos y buen ambiente de trabajo.

En cuanto a la pregunta inicial, la del tĂ­tulo del post, podemos decir: La Developer Experience estĂĄ relacionada con la manera en que todos los aspectos alrededor del proceso de desarrollo de un producto afectan a los resultados, y con cĂłmo optimizar esos aspectos para obtener buenos resultados. Y ese es, en sĂ­, un excelente motivo para preocuparse con la DX de tu empresa: obtener buenos resultados.