(no title)
deepsummer | 1 month ago
That model works fine for a few years. Then you need a bigger change. Often, the system is built on top of some enterprise project, heavily customized, and you stay at your outdated version until it becomes unsupported. The maintainers don't care, and often don't have the capability to upgrade, so they just leave it as long as it keeps working. Or maybe some law has been introduced and requires a bigger change. Or the market just changes, and you need to support new APIs, new payment methods, new integrations...
The maintainers tend to quit every 1-2 years and are replaced with someone only trained by the previous generation. With every generation, the maintainers get worse. After 3 generations, all product knowledge is gone. To make things worse, the maintainers do stupid things in the code because they don't fully understand it, and it begins to rot. In the worst case I know, no one even knew what branch was deployed on production and what the last changes were.
Then, after 5-10 years of decay, some requirement comes along that would require a major refactoring. Everybody is overwhelmed, no one understands the internals, and eventually they decide that it the project is now so outdated that the only solution is to replace it. Management doesn't care because they can blame their predecessors.
In my experience, that's how it always works. I know at least 5 major projects that took over a year to develop, and costing millions, in at least one case tens of millions, that died like that.
No comments yet.