¿Qué compañías de software han tenido que reescribir el backend de su producto porque no pudieron mantener / innovar su código existente?

Todas las empresas enfrentan este problema. Es un buen problema tener. Significa que su producto ha tenido éxito y ha crecido con el tiempo. Los productos evolucionan y también el software que los ejecuta. Cuando los productos se encuentran en las primeras etapas, el software debe construirse para la velocidad de comercialización y la validación del producto, no necesariamente escala y mantenimiento. Los requisitos cambian con el tiempo y surgen nuevas tecnologías. Eventualmente, necesitará construir una versión 2 del producto, que podría ser una base de código completamente nueva o la refactorización de componentes principales. Para un producto típico, esperaría que la vida útil del software sea de 2 a 5 años, dependiendo de qué tan rápido crezca el producto. Para dar un ejemplo, un sitio web construido hace 3 años ciertamente no fue construido con dispositivos móviles en mente y será difícil adaptarse a un diseño receptivo. Una infraestructura de back-end que se creó antes de AWS y los servicios en la nube parecería muy difícil de mantener hoy.

Voté la publicación de Dave Hagler. Para agregar algunos ejemplos de juegos:

Rust: su código de interfaz de usuario existente era ‘suficientemente bueno’ en ese momento, pero ahora es difícil / imposible agregar ciertas características importantes. Entonces el código de la IU se está reescribiendo.

EVE en línea: a medida que ampliaron sus características de juego, encontraron una serie de áreas últimamente (por ejemplo, su sistema de seguridad / criminal en el juego, estructuras desplegables, etc.) que han necesitado importantes revisiones de código. A medida que el juego envejecía, los desarrolladores ‘añadieron’ código para implementar nuevas funciones. En cierto punto, esos sistemas se volvieron demasiado complicados de mantener y demasiado difíciles de mejorar, por lo que rediseñaron los sistemas para que fueran más fáciles de entender y más fáciles de mantener / evolucionar.

Hay muchas empresas que se han enfrentado a esta situación. Debido a que la mayoría de las veces cuando se construyó el sistema inicial, no tienen suficiente dinero e infraestructura para manejar el crecimiento, una vez que son bienvenidos, obtienen y en consecuencia escalan / cambian su base de código.

Twitter (Rubí a Scala).
Facebook Messenger (Erlang a C ++).
Partes de la Búsqueda de Google (Python a C ++ / Java).

Ayer me encontré con este enlace, creo que es un buen ejemplo:
Mono espacial | Más allá de la nube

More Interesting

¿Cuáles podrían ser algunos nombres geniales de códigos de versión de software?

¿Cuál es la diferencia exacta entre ingeniería informática, ingeniería informática e ingeniería de software?

¿Cuál es una buena herramienta para el seguimiento de errores y el seguimiento de procesos?

¿Qué constituye una 'API'?

¿Cuáles son algunos proyectos pitónicos en GitHub para aprender?

¿Cuáles son algunos consejos que le daría a su pasado cuando recién se estaba iniciando en el desarrollo de software?

¿Por qué las licencias de software necesitan mantenerse actualizadas?

¿Cuáles son las mejores maneras para que un estudiante de cuarto semestre aprenda programación del mundo real en Java?

¿Qué tan importante es el inglés para los programadores?

Puse un enlace a mi perfil de github en mi carta de presentación. ¿Es probable que el entrevistador explore mi perfil y haga preguntas específicas sobre mi código?

Como alguien sin un título en Ciencias de la Computación y sin experiencia profesional en programación, ¿debo anunciar que completé un bootcamp de desarrollador en mi currículum?

Como estudiante de pregrado, ¿cómo puedo comenzar con Computer Vision?

¿Por qué ArrayList implica Lista mientras se extiende AbstractList?

Dada la falta de empresas de Internet de consumo altamente exitosas en la pila .NET, ¿por qué Microsoft no hace un mayor esfuerzo para lograr la adopción de .NET entre las nuevas empresas emergentes orientadas al consumidor?

¿Sería atípico que a un desarrollador estadounidense se le ofrezca un puesto como ingeniero de software en el Reino Unido y reciba un estipendio adicional de mudanza?