Lo que separa a un programador de un Ingeniero de Software: reconocer, medir y pagar la deuda deliberadamente
switch sobre tipos evoluciona hacia una jerarquía de implementaciones de una interfaz. El patrón Strategy emerge del refactoring, no de un diseño top-down.