Luchando contra la Deuda Técnica con la Refactorización Continua

Rate this content
Bookmark

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.

This talk has been presented at React Day Berlin 2022, check out the latest edition of this React Conference.

FAQ

Alex es un profesional que trabaja en code sandbox y ha participado en conferencias anteriores como la de 2018 en Berlín. También está involucrado en la organización de eventos de comunidad como JS Heroes en Rumania.

JS Heroes es un evento de comunidad basado en Cluj, Rumania, organizado por Alex. El próximo evento está programado para mayo de 2023.

Las diapositivas están disponibles en línea en el enlace bit.ly barra Alex refactorización, donde se pueden seguir durante la charla o encontrar más tarde.

Alex se centra en hablar sobre la cultura de la refactorización y cómo gestionar la deuda técnica dentro de los equipos de ingeniería sin impactar el desarrollo del producto, en lugar de simplemente discutir técnicas específicas de refactorización.

El 'proveedor de pitcher' es un motor utilizado en code sandbox para ejecutar el editor, sirviendo todos los datos desde la VM. Se ha introducido una nueva forma de consumir los datos que convive con el método antiguo sin necesidad de eliminarlo inmediatamente.

Los tres pilares de la refactorización que Alex menciona son prácticas, inventario y proceso. Estos pilares ayudan a gestionar la deuda técnica y a implementar la refactorización como parte regular del desarrollo del proyecto.

En code sandbox, la deuda técnica se maneja documentándola en un documento separado de contabilidad de deuda técnica, donde se explica por qué se introdujo, posibles soluciones y quién es responsable de su seguimiento, asignándole una prioridad de resolución.

Alex Moldovan
Alex Moldovan
29 min
02 Dec, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute la importancia de la refactorización en el desarrollo y la ingeniería de software. Introduce un marco llamado los tres pilares de la refactorización: prácticas, inventario y proceso. La charla enfatiza la necesidad de prácticas claras, comprensión de la deuda técnica y un proceso bien definido para una refactorización exitosa. También destaca la importancia de la visibilidad, la recompensa y la resiliencia en el proceso de refactorización. La charla concluye discutiendo el papel de la propiedad, la gestión y la priorización en la gestión de la deuda técnica y los esfuerzos de refactorización.

1. Introducción y Antecedentes

Short description:

Hola a todos. Es una vista tan agradable estar frente a un escenario después de tanto tiempo. Ya he estado aquí antes. Lo pasé muy bien. Entonces, como dijo Yanni, mi nombre es Alex. Trabajo en code sandbox. Estoy organizando JS Heroes. Nuestro próximo evento es en mayo de 2023. Hoy quiero hablar sobre la refactorización. Pero antes de comenzar, hay este enlace en la parte inferior. Bit.ly barra Alex refactorización. Puedes encontrar las diapositivas allí. También puedes encontrarme en Twitter en Alex y Moldovan. Eso es prácticamente todo.

Hola a todos. Es una vista tan agradable estar frente a un escenario después de tanto tiempo. Tienen que disculpar mi voz, el clima de Berlín no fue amable con ella esta semana, desafortunadamente. Pero es una ciudad tan genial. Ya he estado aquí antes. Estuve en esta conferencia en 2018. Lo pasé muy bien.

Oh, sí. Entonces, comencemos. Entonces, como dijo Yanni, mi nombre es Alex. Vengo de Rumania. Trabajo en code sandbox. ¿Alguien aquí usa code sandbox? Genial. Alex. Buen público. Genial. También, como mencioné, estoy organizando JS Heroes. Este es un evento de community con sede en Cluj, Rumania. Nuestro próximo evento es en mayo de 2023. Así que espero ver a algunos de ustedes allí también. Ven a buscarme después de la charla. Podemos hablar más si estás interesado en esto.

Entonces, quiero hablar hoy sobre la refactorización. Pero antes de comenzar, hay este enlace aquí en la parte inferior. Bit.ly barra Alex refactorización. Puedes encontrar las diapositivas allí si quieres seguir o si quieres encontrarlas más tarde. Ya están en línea. Y también estarán después de la charla. También puedes encontrarme en Twitter en Alex y Moldovan, mientras la plataforma, con suerte, todavía está funcionando. Entonces sí, eso es prácticamente todo.

2. Por qué quiero hablar sobre la refactorización

Short description:

Quiero hablar sobre la cultura de la refactorización. Me fascina por qué no hemos descubierto cómo refactorizar nuestro código sin impactar el desarrollo del producto. Podemos construir equipos y culturas de ingeniería en torno a la introducción de la refactorización como cualquier otra tarea. Entendiendo que está bien vivir con deuda técnica, necesitamos gestionarla. Presentaré un marco llamado los tres pilares de la refactorización: prácticas, inventario y proceso.

Por qué quiero hablar sobre la refactorización o por qué esta charla es sobre la refactorización. Quiero hablar sobre la cultura de la refactorización. No estoy aquí para decirte formas de refactorizar code o técnicas para mejorar tu code o mejorar tus React componentes o frontend en general. Me fascina principalmente por qué no hemos descubierto cómo refactorizar nuestro code, nuestras bases de code sin realmente impactar el desarrollo del producto.

He trabajado con tantos equipos diferentes en los últimos años y especialmente con equipos de producto. Siempre ha habido este problema de, está bien, hemos acumulado deuda técnica, ahora es el momento para hacer la refactorización. Entonces, ya sabes, gerentes de proyectos, por favor hagan a un lado. Es el momento para que los ingenieros tomen el escenario y trabajen durante un mes reescribiendo todo, introduciendo un nuevo framework o lo que sea solo para resolver esta deuda técnica. Creo que podemos hacerlo mejor. Creo que podemos construir nuestros equipos de ingeniería y nuestras culturas de ingeniería alrededor de la introducción de la refactorización y tratarla como cualquier otra tarea en un proyecto.

Y esto se volvió aún más claro para mí hace unos meses cuando introdujimos esta nueva cosa en la base de code sandbox code. Entonces, tenemos esta cosa llamada un proveedor de pitcher. Pitcher es nuestro motor para ejecutar el editor. Entonces, cuando ejecutas el editor de code sandbox, tienes esta cosa de pitcher que te sirve todos los data desde la VM. Y presentamos una nueva forma de consumir los data de pitcher. Entonces ahora lo que tenemos es un proveedor de pitcher legado y un proveedor de pitcher, ¿verdad? Y eso está perfectamente bien. Nunca dijimos, está bien, ahora tenemos que detener todo en code sandbox y tenemos que centrarnos en deshacernos de la forma antigua porque tenemos una nueva forma de consumir data. Y creo que esto es realmente valioso. Entender que está bien vivir con deuda técnica. No tienes que sentirlo necesariamente como una carga. Pero sí tienes que gestionarlo. Entonces, en realidad esto sucedió mientras me preparaba para esta charla. Y mientras también hacía eso, me di cuenta de que tal vez el título está mal. Tal vez ni siquiera debería ser luchando contra la deuda técnica sino más bien gestionando la deuda técnica. Entonces, lo que voy a mostrarte en los próximos minutos es un framework de cómo yo creo que podemos gestionar la deuda técnica en los equipos de ingeniería. Y lo llamo los tres pilares de la refactorización. Porque, bueno, obviamente tiene tres pilares. Uno es prácticas, uno es inventario, y uno es el proceso. Y los voy a tomar uno por uno y explicar qué quiero decir con ellos. Entonces, primero, tenemos prácticas.

QnA

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

No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Impacto: Creciendo como Ingeniero
React Summit 2022React Summit 2022
27 min
Impacto: Creciendo como Ingeniero
Top Content
This Talk explores the concepts of impact and growth in software engineering. It emphasizes the importance of finding ways to make the impossible possible and the role of mastery in expanding one's sphere of impact. The Talk also highlights the significance of understanding business problems and fostering a culture of collaboration and innovation. Effective communication, accountability, and decision-making are essential skills for engineers, and setting goals and finding sponsors can help drive career growth. Feedback, goal setting, and stepping outside of comfort zones are crucial for personal development and growth. Taking responsibility for one's own growth and finding opportunities for impact are key themes discussed in the Talk.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
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
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
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
This Talk discusses scaling front-end applications through principles such as tearing down barriers, sharing code in a monorepo, and making it easy to delete code. It also emphasizes incremental migration, embracing lack of knowledge, and eliminating systematic complexity. The Talk highlights the use of automation in code migration and the importance of removing barriers to enable smoother code migration.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.