Legacy, for lack of a better word, is good
Uberto is an expert on building software products, currently working with finance institutions in London. He writes technical articles, regularly speaks at conference around Europe and organizes courses. He is experienced in designing and implementing software architectures and he believes in the agile manifesto values and principles. He is also a passionate polyglot programmer, he started as a kid with a ZxSpectrum he hopes to continue for many years to come.
This talk is about why you shouldn’t rewrite from scratch your old applications. Big rewrites are very risky and costly. More often than not they ends with old app neglected but still running in prod and new app unusable. I propose a different way: rejuvenate your old app.
Developers love to complain about their legacy systems, but if you have a legacy system, it means you have a working, successful system which deliver real value to business, and this is definitely a good thing. Even more, legacy system is a system so successful that it makes very hard to dispose of it, even when it is obsolete in some (or all) respects. The problem is how to keep it nimble and easy to maintain and expand. It could be not easy, but if you try a rewrite you are taking a much bigger risk. You may have to add new feature to an old legacy application or make it scale with different architecture. To do this you need to be able to split monolithic applications in smaller modules and then refactor them, but without blocking development.