El coste de NO refactorizar

Mucha gente ha hablado de cuánto cuesta refactorizar, cuáles son las dificultades, cómo hacerlo de manera que no pares todo el proceso productivo, etc. Y muchas compañías han evaluado este coste y han descartado el refactor porque consideraron que no tenían tiempo ni recursos para hacerlo.

El problema es, en mi opinión, que el coste de no refactorizar no se ha evaluado correctamente. Así que quiero aportar ciertos factores que considero claves si estás pensando que un refactor es demasiado caro.

  • Rendimiento: como no vas a mejorar tus sistemas ni tu código, la competencia va a hacer productos más rápidos que los tuyos. Y a la gente le gustan las aplicaciones rápidas. Más aún, si estás apilando parche sobre parche -estás soslayando los problemas para hacer nuevas funcionalidades sin romperlo todo- el rendimiento de tu aplicación va ser aún peor que al principio.
  • Calidad: menos calidad implica más errors. Es un hecho. Si no mejoras tu código, estarás contratando arregla-bugs a tiempo completo antes o después. Y este es un muy mal mensaje para tu equipo.
  • Capacidad del equipo: si no mejoras tu código, el tiempo de desarrollo de nuevas funcionalidades se va a incrementar. Así que la capacity -la velocidad- de tu equipo va a disminuar y vas a estar desarrollando menos en el mismo tiempo -y con el mismo coste.
  • Moral del equipo: los desarrolladores tienen más de artistas de lo que puedas pensar. Si fuerzas a tu equipo a trabajar con código y librerías obsoletas, pronto tendrás que afrontar una desbandada. Y, como has estado descartando mejorar nada todo este tiempo, nadie va a creer tus buenas intenciones ahora.
  • Contratación: si intentas contratar gente prometiendo un montón de bug fixing y código legacy, ¿cómo esperas atraer talento?
  • Asuntos legales: muchas auditorías dependen en buen grado del nivel de actualización del software. Si estás utilizando librerías y sistemas obsoletos, es muy probable que tengas problemas para pasar dichas auditorías. Y muchos negocios sencillamente no pueden vivir sin ellas.

Y aquí sólo hablo de refactor. Quizás otro día hable de reescribir… porque sí, a veces, es mejor empezar de cero.

Como David Heinemeir Hansson hizo con Basecamp, una compañía valorada en millones de dólares: