Lea la versión de Joel Spolsky sobre la reescritura desde cero, así como otro artículo de ejemplo (puede encontrar muchas historias similares):
- Cosas que nunca debes hacer, Parte I.
- Por qué debería (casi) nunca reescribir su software.
Reescribir una aplicación que funcione sin ganancia funcional suele ser muy costoso y arriesgado. La mayor parte del desarrollo de software cuesta millones, y la mayor parte de ese costo es por adelantado. Durante la vida útil del proyecto después del desarrollo inicial, tienen que recuperar los costos de desarrollo y también pagar la operación y el mantenimiento continuos.
Si reescribe la aplicación, es como desarrollarla dos veces, y eso significa que el costo se duplica. Probablemente no podrá recuperar el doble de costo de desarrollo. No le crea a nadie que afirme que el nuevo lenguaje cuesta menos desarrollarlo.
- ¿Cuáles son ejemplos de páginas de inicio de aplicaciones web bien diseñadas?
- ¿Qué pasos debo seguir para desarrollar una aplicación .NET donde los usuarios de la aplicación puedan agregar o eliminar elementos de formulario dinámicamente según la elección?
- ¿Es posible evitar contenido inapropiado en la web?
- ¿Cómo elijo entre frameworks web asíncronos? Mi grupo de tecnología es bastante independiente del lenguaje y estamos tratando de estandarizar algunas tecnologías.
- ¿Cuál fue su peor crisis en un entorno de producción y cómo la manejó?
Si su aplicación tiene éxito y su equipo tiene las habilidades para mantenerla, y ColdFusion admite las funciones que necesita que haga la aplicación, no la reescriba.
Piense en esta analogía: si construye un rascacielos, cuesta mucho por adelantado y un poco para el mantenimiento continuo. Esperas alquilar un espacio de oficina para ganar dinero y, finalmente, obtener ganancias. Pero un día ves que los rascacielos más modernos están utilizando nuevos materiales y técnicas de arquitectura. ¿Deberías reconstruir tu rascacielos existente solo para aprovechar la nueva tecnología y luego poner exactamente a los mismos ocupantes? ¿O debería dejar el viejo rascacielos para ganar dinero gradualmente tal como está y usar las ganancias para construir un edificio más nuevo que atienda a un conjunto diferente de clientes?
Aquí hay ejemplos de buenas razones para hacer una reescritura desde cero:
- Debe agregar funcionalidad a la aplicación, que la tecnología anterior no admite (o si lo hace, es muy ineficiente o costosa).
- Confía en el soporte del proveedor, pero el proveedor está descontinuando el soporte. Adobe actualmente posee ColdFusion, y parece que lo están apoyando.
- Tus desarrolladores que conocen la tecnología anterior se van, y no puedes encontrar nuevas personas que conozcan la tecnología anterior. Incluso entonces, considere si es más barato reescribir la aplicación u obtener trabajadores que puedan recibir capacitación en la tecnología anterior.
- La tecnología anterior tiene grandes tarifas de licencia, y cambiar a otra pila de tecnología podría eliminar estas tarifas de licencia y ahorrar suficiente dinero a medio plazo para justificar el costo de la reescritura.
Malas razones para hacer una reescritura desde cero:
- Todos los demás parecen estar usando tecnología más nueva. No quiero parecer anticuado. A los usuarios no les importa en qué tecnología se implementa su aplicación, les importa si la aplicación funciona.
- El código de la aplicación existente se ha desorganizado. Es mejor refactorizar el código. Puede hacerlo de forma incremental sin alterar demasiado el funcionamiento de la aplicación. Requiere menos cambios de lo que piensas, y mucho menos que reescribir todo.