<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gabriel Manzur</title>
    <description>The latest articles on DEV Community by Gabriel Manzur (@gmanzur).</description>
    <link>https://dev.to/gmanzur</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1125878%2F0011b4d0-cef4-498e-a78f-362d56ea8600.jpeg</url>
      <title>DEV Community: Gabriel Manzur</title>
      <link>https://dev.to/gmanzur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gmanzur"/>
    <language>en</language>
    <item>
      <title>Formas sencillas de prevenir o reducir la deuda técnica</title>
      <dc:creator>Gabriel Manzur</dc:creator>
      <pubDate>Sun, 07 Jan 2024 22:32:26 +0000</pubDate>
      <link>https://dev.to/javascriptchile/prevencion-de-la-deuda-tecnica-1h02</link>
      <guid>https://dev.to/javascriptchile/prevencion-de-la-deuda-tecnica-1h02</guid>
      <description>&lt;p&gt;El &lt;strong&gt;origen de la deuda técnica&lt;/strong&gt; es una mezcla de distintos fenómenos en variadas proporciones:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Herramientas obsoletas o en proceso de quedar obsoletas (entiéndase que ya no reciben nuevas actualizaciones).&lt;/li&gt;
&lt;li&gt;Bajos estándares de desarrollo.&lt;/li&gt;
&lt;li&gt;Problemas de liderazgo.&lt;/li&gt;
&lt;li&gt;Diseño deficiente.&lt;/li&gt;
&lt;li&gt;Tiempos de entrega mal calculados.&lt;/li&gt;
&lt;li&gt;Estrés.&lt;/li&gt;
&lt;li&gt;Poca experiencia del desarrollador.&lt;/li&gt;
&lt;li&gt;El simple paso del tiempo.&lt;/li&gt;
&lt;li&gt;Rotación en el equipo.&lt;/li&gt;
&lt;li&gt;Mezcla de tecnologías.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Y seguramente podríamos pensar en muchas más...&lt;/p&gt;

&lt;p&gt;Todos en una empresa de tecnología pueden colaborar de una forma u otra en la creación de un ambiente propicio para la expansión descontrolada de la deuda técnica. &lt;/p&gt;

&lt;p&gt;A pesar de que sea un fenómeno inevitable en el mundo del software, cada miembro del equipo puede, según su posición, contribuir significativamente a reducir la velocidad en que la deuda técnica crece, y a reducirla cuando sea propicio. &lt;/p&gt;

&lt;p&gt;En mi experiencia estas son las principales acciones que pueden realizar los programadores, según su rol y experiencia, para intentar controlar la deuda técnica, y que no requieren un esfuerzo demasiado significativo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desarrolladores Trainee/Junior:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Antes de comenzar a programar una tarea buscar entender el problema. Si la solución no es &lt;strong&gt;obvia&lt;/strong&gt; entonces buscar de forma temprana la opinión &lt;strong&gt;general&lt;/strong&gt; de alguien más senior. Esta búsqueda de opinión y consejo debe dejar explícito de que haz hecho una investigación previa significativa.&lt;/li&gt;
&lt;li&gt;Si en el proyecto en que trabajas existe más de una forma de solucionar parte de tu tarea pregunta a tu equipo cual es la preferible. &lt;/li&gt;
&lt;li&gt;Una vez que el código funciona y los tests están escritos el trabajo aún no termina: ahora es el momento de revisar con detalle tu trabajo, mejorar la legibilidad y estandarizar las prácticas en relación a las recomendaciones y usos de tu equipo.&lt;/li&gt;
&lt;li&gt;Nunca agregar nuevas librerías/herramientas sin antes consultar a alguien más senior.&lt;/li&gt;
&lt;li&gt;Usar bien el tiempo y comenzar tempranamente a desarrollar la feature: El apuro produce malos resultados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Desarrolladores Semi-senior/Senior&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Siempre dejar el código en mejor estado de cómo lo encontraste&lt;/li&gt;
&lt;li&gt;Evitar abstracciones y soluciones complejas cuando sea posible.&lt;/li&gt;
&lt;li&gt;Aprender a decir "SI, PERO". Si tus manos ya están ocupadas en una feature y te piden comenzar otra, deja claro que la primera quedará en pausa y su fecha de entrega será atrasada, o cómo el aumento de carga puede perjudicar el resultado final. &lt;/li&gt;
&lt;li&gt;Al diseñar una nueva feature, siempre intentar ser lo más generalista posible, intentando prever nuevos requerimientos que puedan aparecer en el futuro, y no limitarse a satisfacer los requerimientos mínimos que están siendo solicitados. Esto no quiere decir que debemos programar de más, sino que nuestros diseños deben estár preparados para extenderse y cubrir nuevos casos sin grandes refactorizaciones. Por ejemplo si en nuestra aplicación nos piden que se puedan crear configuraciones para TODOS o para UN usuario, no olvidar que en el futuro nos podrían pedir crear una configuración para un GRUPO determinado de usuarios. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Líderes técnicos y similares&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proteger al equipo de desarrollo frente al resto de la empresa. No permitir que los equipos de ventas/soporte/etc les hagan solicitudes si no es pasando por ti como intermediario.&lt;/li&gt;
&lt;li&gt;Procurar que la creación de test unitarios robustos sea una práctica requerida en el equipo, y que estos corran de manera automatizada al realizarse el pull request.&lt;/li&gt;
&lt;li&gt;Al momento de elegir nuevas herramientas y tecnologías es sano evitar soluciones muy novedosas. Siempre es más seguro elegir herramientas que, aunque parezcan complicadas a primera vista, poseen una gran comunidad de desarrolladores y de soporte detrás de ellas, lo que asegura que seguirán vigentes por un tiempo razonable. &lt;/li&gt;
&lt;li&gt;Si el problema de la deuda técnica es muy recurrente en las reuniones de equipo, retros, etc... Probablemente es tiempo de tener a un programador dedicado a este tema, o implementar algún tipo de rotación en este rol. Esto es, al largo plazo, una inversión financieramente inteligénte, pero más aún, una señal de respeto y consideración a la salud mental y satisfacción laboral de nuestros colegas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En fin, este es un listado de acciones de relativamente sencilla implementación, que sin duda colaborarán a crear un ambiente donde el resultado de nuestro trabajo no sea una permanente fuente de frustraciones, sino que, al menos a ratos, nos haga sentir orgullosos. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
