Qué es y como no caer en la deuda técnica

¿Qué es la deuda técnica?

Causas que aumentan la deuda técnica

  • Presiones del negocio: En general todo debe ser lanzado cuanto antes y muchas veces se sacan cosas a producción sin haber pasado un buen control de calidad y con cambios rápidos que no contemplan todas las posibilidades o no totalmente completos.
  • Cambios en la especificación: Es común que las especificaciones también a mitad del desarrollo e incluso en el último momento (sufrido en mis propias carnes). Este tipo de cambios generalmente se incluyen en el proyecto con soluciones pobres o como se dice comúnmente con calzador. En general no hay tiempo o presupuesto para hacer las comprobaciones adecuadas para este tipo de cambios. (Por favor, gente de negocio no cambiéis el core del negocio una semana antes de subir a producción)
  • Falta de buenas prácticas: Por ejemplo se decide no emplear un sistema de integración continua, prescindir de una batería de tests, no invertir tiempo en refactorizar, no diseñar una buena arquitectura con componentes muy aplicados que no se adapten a los cambies [incluya aquí una larga lista de malos hábitos que vea en su empresa].
  • Falta de conocimiento: Vivimos en un país en el que muchas empresas prefieren sacar adelante un proyecto adelante con becarios o gente con poca experiencia que quizás no escriban un código muy elegante. Es importante disponer de buenos recursos con experiencia en desarrollo software (senior) y que este tipo de roles colaboren para enseñar a developers con menos experiencia (junior). En mi humilde opinión, hay que dar oportunidades a la gente joven y apostar por el talento y gente con experiencia. Por favor, que no te haga la web tu cuñado.
  • Falta de colaboración: A veces se toman malas decisiones por no conocer el negocio en profundidad, sin considerar ciertas implicaciones y por que la gente de negocio no se involucra lo suficiente en el desarrollo. Para ello aplicar DDD (Domain Driven Design) y seamos un solo equipo.
  • En algunos casos se incluyen influyen aspectos como el outsourcing, en el que empresas ponen sus esfuerzos en legar resultado y no en el cuidado del software. Yo por mi experiencia y lo que he podido ver estoy a favor de desarrollar el software in-house e intentar externalizar minimamente, pero eso ya son decisiones de negocio.

Conclusión

¡Pagarás pagarás ya verás si pagarás!

--

--

Full Stack Web Developer — adrianalonso.es

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store