Una Guía Rápida y Completa para Medir tu Deuda Técnica y Utilizar los Resultados

Rate this content
Bookmark

Casi nadie en el mundo de la tecnología disfruta cuando hay mucha deuda técnica. Y a la mayoría de nosotros nos gustaría que no haya demasiada. Pero, ¿cómo entendemos cuánta tenemos exactamente? ¿Dónde se encuentra exactamente? ¿Qué parte de ella es realmente la más molesta? ¿Cuál sería el beneficio para nosotros si dedicamos tiempo a deshacernos de ella? Cuando se trata de planificar cómo abordar tu deuda técnica, todas estas preguntas merecen respuestas. Especialmente cuando nos preguntan sobre el retorno de la inversión en nuestros esfuerzos para eliminar cosas antiguas molestas y construir un nuevo módulo o servicio brillante. Además, cuando trabajamos en la deuda técnica, queremos abordar primero las partes más impactantes, ¿verdad? Esta charla trata sobre todo eso: cómo medimos nuestra deuda técnica, cómo interpretamos los resultados de estas mediciones para que nos den las respuestas a las preguntas correctas, y cómo guiamos nuestra toma de decisiones con esas respuestas.

FAQ

La deuda técnica, según Ward Cunningham, es una herramienta que permite acelerar el desarrollo de software temporalmente al tomar atajos, lo que acelera los procesos a expensas de posibles ralentizaciones futuras.

La deuda técnica se vuelve realmente mala en dos escenarios: la deuda técnica continua es inmediatamente mala al implementarse en producción, mientras que la deuda técnica de mantenimiento se vuelve problemática cuando es necesario introducir cambios en las áreas afectadas.

Las métricas heurísticas de deuda técnica son medidas automatizadas que evalúan aspectos como la complejidad del código, la duplicación de código y los malos olores de código, entre otros. Estas métricas son útiles para obtener una visión general de la salud de la base de código.

El interés de la deuda técnica es crucial porque permite medir el impacto real de la deuda técnica en los esfuerzos de desarrollo, ayudando a identificar el costo adicional en tiempo y recursos que impone la deuda técnica en cada ticket o tarea.

Las métricas de segundo nivel, como el tiempo de ciclo de los tickets y las tendencias de errores, ayudan a monitorear la salud del software y la eficiencia del equipo, proporcionando información clave para priorizar la resolución de la deuda técnica basada en su impacto comercial.

Entre las herramientas mencionadas para la medición de deuda técnica están SonarQube y Code Climate Quality, que ofrecen análisis automatizados y métricas heurísticas relevantes para evaluar la calidad del código.

Anton es el director de ingeniería en Westing, Alemania, y en TechLeadConf, compartió su experiencia y conocimientos sobre la medición del liderazgo técnico y la interpretación de resultados relacionados con la deuda técnica.

Para determinar si un fragmento de software tiene deuda técnica, se evalúan aspectos como la facilidad de análisis y entendimiento, la facilidad y seguridad de modificación, y si cumple con requisitos técnicos como la escalabilidad y la seguridad.

Anton Kazakov
Anton Kazakov
27 min
09 Mar, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute la medición e interpretación del liderazgo técnico, centrándose en la deuda técnica. La deuda técnica es una herramienta para acelerar temporalmente el desarrollo, pero puede tener consecuencias negativas si no se gestiona adecuadamente. Varios indicadores de deuda técnica, incluidos los indicadores heurísticos y los indicadores de segundo nivel, pueden ayudar a identificar y gestionar la deuda técnica. El interés de la deuda técnica es crucial para medir el impacto de la deuda técnica y permite la priorización. Es importante recopilar y analizar los indicadores de deuda técnica para garantizar la salud del software y del equipo.

1. Introducción

Short description:

Hola a todos. Mi nombre es Anton, y gracias por recibirme en TechLeadConf este año. En los próximos 20, tal vez 25 minutos, hablaré sobre la medición del liderazgo técnico e interpretación de los resultados. Espero que esta charla les sea útil e interesante. Lidero organizaciones de ingeniería y mentoro a otros líderes de ingeniería. No duden en contactarme para mentoría o coaching. Comencemos de inmediato.

Hola a todos. Mi nombre es Anton, y gracias por recibirme en TechLeadConf este año. En los próximos 20, tal vez 25 minutos, hablaré sobre la medición del liderazgo técnico e interpretación de los resultados. Espero que esta charla les sea útil e interesante.

Algunos detalles sobre mí, lidero organizaciones de ingeniería. Actualmente soy director de ingeniería en Westing en Alemania. También mentoro y doy coaching a otros líderes de ingeniería, como gerentes de ingeniería y principales ingenieros. Si estás buscando un mentor o un coach, no dudes en contactarme, siempre estoy disponible. También fuera del trabajo, soy padre y un gran fanático del esquí de montaña y el senderismo, entre otras cosas. A continuación, puedes ver mi nombre de usuario de Twitter y mi información de contacto, como mi dirección de correo electrónico y también el enlace para conectarte conmigo en LinkedIn. Y sí, con eso, comencemos de inmediato.

2. Understanding Tech Debt

Short description:

La deuda técnica no es inherentemente mala, pero depende de varios factores. Es una herramienta para acelerar temporalmente el desarrollo al tomar atajos, al igual que tomar un préstamo. Para determinar si tenemos deuda técnica, podemos analizar nuestro software y responder preguntas como facilidad de análisis, modificación y seguridad. Hay dos tipos de deuda técnica: deuda técnica de mantenimiento, que ralentiza los cambios debido a un diseño imperfecto, y deuda técnica continua, que requiere tiempo para mantener la aplicación operativa. La deuda técnica continua se vuelve problemática cuando se implementa en producción, lo que provoca errores, tiempo de inactividad, violaciones de seguridad y pérdida de ingresos. Por lo tanto, es importante gestionar la deuda técnica para evitar consecuencias negativas.

Comencemos con una sorpresa. ¿Qué les parecería si les dijera? Como dice nuestro querido amigo Morpheus, que no toda su deuda técnica realmente necesita ser resuelta. Apoyo completamente esta afirmación, en realidad, esta pregunta en particular. Y para entender cómo es que no toda la deuda técnica necesita ser resuelta y también cómo contradice una creencia relativamente popular de que la deuda técnica es generalmente la raíz de todo mal, veamos algunas cosas.

Entonces, empecemos por ¿qué es la deuda técnica? Si no es la raíz de todo mal. Fue el término acuñado por este tipo, Ward Cunningham, en 1992. Y él era mucho más joven en ese momento, porque esta es una captura de pantalla de su video explicativo en YouTube que publicó en 2009. Y el video se llama Metáfora de la Deuda Técnica. Y él habla en profundidad sobre esto. Aquí hay un par de citas, que no vamos a leer. Simplemente las pasaremos por alto. Entonces, según Ward Cunningham, el autor del término deuda técnica, no es la raíz de todo mal. Y lo que es, es una herramienta para acelerar temporalmente el desarrollo al elegir tomar atajos para acelerar ahora a expensas de ralentizar después. Al igual que tomar un préstamo, podemos permitirnos algo antes de ganarlo por completo, y luego tenemos que pagar intereses. Entonces, dado que es una herramienta, ¿la deuda técnica es inherentemente mala? Bueno, preguntémosle a nuestro querido amigo Morpheus y él nos dirá que la respuesta correcta es depende. Como muchas preguntas en el ámbito de la ingeniería de software, ¿en qué depende? Esa es la parte interesante, ¿verdad? ¿En qué depende, cómo podemos ver en qué depende? Bueno, primero, veamos cómo determinamos si tenemos deuda técnica en primer lugar. Eso lo podemos hacer al observar nuestro software y responder a una serie de preguntas. Primero, ¿es fácil de analizar y entender? Este fragmento de software. Segundo, ¿es fácil de modificar? Tercero, ¿es seguro modificarlo? Y finalmente, la cuarta pregunta, ¿hay algún requisito técnico necesario, por ejemplo, escalabilidad, estabilidad, requisitos de seguridad que no se han implementado? Y si respondemos sí a alguna de estas preguntas, tenemos deuda técnica en este fragmento de software.

Además, lo que me gusta distinguir son dos tipos de deuda técnica. El primero es la deuda técnica de mantenimiento. Esta es la deuda técnica relacionada con las primeras tres preguntas, que básicamente es la parte de la deuda técnica que ralentiza nuestros cambios, ya sean características o cualquier otro tipo de cambios en nuestra base de código. Simplemente los implementamos más lentamente debido a la deuda técnica, porque el diseño no es perfecto. Y la segunda parte de la deuda técnica es la deuda técnica continua. Lo que significa que necesitamos dedicar tiempo, debido a alguna deuda técnica en nuestra aplicación, a mantener la aplicación operativa. Y esta deuda técnica reduce el tiempo que podemos dedicar a introducir cambios en nuestra base de código. Así es como estos dos tipos de deuda técnica son diferentes, y así es como definen de manera diferente la respuesta a la pregunta, ¿cuándo se vuelve realmente mala la deuda técnica? Porque no toda es inherentemente mala, pero ¿cuándo se vuelve mala? Bueno, la deuda técnica continua es inmediatamente mala tan pronto como la implementamos en producción. Entonces, cualquier atajo, ya sea en confiabilidad, escalabilidad, atajos de seguridad, produce algunas consecuencias de primer orden como errores, tiempo de inactividad, violaciones de seguridad, Dios no permita que se roben datos, lo cual a su vez produce esfuerzo ad hoc, cambio de contexto, que como sabemos, es otro gran consumidor de productividad. A veces pérdida de ingresos, a veces cosas peores que eso, como daño reputacional a largo plazo, y así sucesivamente. Así que no queremos eso.

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

Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

Principios para Escalar el Desarrollo de Aplicaciones Frontend
React Summit 2023React Summit 2023
26 min
Principios para Escalar el Desarrollo de Aplicaciones Frontend
Top Content
Después de pasar más de una década en Google, y ahora como el CTO de Vercel, Malte Ubl no es ajeno a ser responsable de la infraestructura de software de un equipo. Sin embargo, estar a cargo de definir cómo las personas escriben software, y a su vez, construir la infraestructura que están utilizando para escribir dicho software, presenta desafíos significativos. Esta presentación de Malte Ubl revelará los principios guía para liderar una gran infraestructura de software.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
Afrontémoslo: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de Frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica. En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.
IA y Desarrollo Web: ¿Hype o Realidad?
JSNation 2023JSNation 2023
24 min
IA y Desarrollo Web: ¿Hype o Realidad?
En esta charla, echaremos un vistazo a la creciente intersección entre la IA y el desarrollo web. Hay mucho revuelo en torno a los posibles usos de la IA en la escritura, comprensión y depuración de código, y su integración en nuestras aplicaciones se está volviendo más fácil y asequible. Pero también hay preguntas sobre el futuro de la IA en el desarrollo de aplicaciones y si nos hará más productivos o nos quitará nuestros trabajos.
Hay mucha emoción, escepticismo y preocupación sobre el aumento de la IA en el desarrollo web. Exploraremos el verdadero potencial de la IA en la creación de nuevos marcos de desarrollo web y separaremos los hechos de la ficción.
Entonces, si estás interesado en el futuro del desarrollo web y el papel de la IA en él, esta charla es para ti. Ah, y este resumen de la charla fue escrito por IA después de que le diera algunos de mis pensamientos no estructurados.
Construyendo equipos interculturales de alto rendimiento
React Day Berlin 2022React Day Berlin 2022
25 min
Construyendo equipos interculturales de alto rendimiento
Todo lo que hacemos, desde la forma en que escribimos nuestros correos electrónicos hasta la manera en que proporcionamos retroalimentación negativa y evaluamos el rendimiento, influye en el desempeño de nuestros equipos. Y comprender cómo la cultura impacta nuestra eficacia como equipo puede mejorar drásticamente nuestra colaboración diaria. En esta sesión aprenderás: Cómo se comunican diferentes culturas, Cómo diferentes culturas evalúan el rendimiento y dan críticas constructivas, Cómo diferentes culturas toman decisiones, Cómo diferentes culturas confían, Cómo diferentes culturas perciben el tiempo.
Olvida el mal código, concéntrate en el sistema
React Summit US 2023React Summit US 2023
27 min
Olvida el mal código, concéntrate en el sistema
Top Content
El prop drilling está bien. La duplicación es genial. Las funciones largas son amor.

Hablamos mucho sobre el mal código complicado porque es fácil ver el problema. Pero la investigación muestra que los ingenieros pueden trabajar bien con el mal código autónomo. Lo que realmente los confunde es algo completamente diferente: la complejidad arquitectónica.

La complejidad arquitectónica hace que tu código sea difícil de trabajar, causa 3 veces más errores, reduce a la mitad la productividad y puede incluso hacer que los desarrolladores abandonen por frustración. En esta charla exploramos lo que puedes hacer.