Reescribió un sistema para una empresa que procesa facturas legales, el sistema original era una monstruosidad de VB que no tenía idea de los buenos principios OO: todo estaba mezclado. El HTML hizo SQL, y el SQL escribió HTML. Una gran parte de esto fue un motor de reglas personalizado que usaba algo así como XML para las reglas.
Dos equipos hicieron la reescritura, lo que demoró unos 9 meses. Un equipo realizó la interfaz web y el flujo de trabajo de fondo, mientras que el otro equipo (en el que estaba) reescribió el motor de reglas. El nuevo sistema fue escrito en C#, y fue hecho primero. Agregar nuevas reglas al sistema cuando terminamos era muy sencillo, y todo era comprobable. A lo largo del camino, hicimos cosas como convertir la empresa de VSS a SVN, implementar la integración continua, automatizar la implementación y enseñar a otros desarrolladores cómo hacer TDD y otras prácticas de Scrum/XP.
La gestión de las expectativas fue crucial a través del proyecto. Tener un cliente que era conocedor del software fue muy útil.
Tener una combinación de pruebas a gran escala (de extremo a extremo) junto con una unidad integral y pruebas de integración ayudó muchísimo.
+1 para tener éxito en su objetivo. –