I have recent stumbled across this text: http://typicalprogrammer.com/the-joys-of-maintenance-programming/
Somehow it resonated with me. I started working as a developer in early 1990s and I have done it all – “green field”, maintenance, you name it, I had my share of creating software from scratch, I had experience of re-architecting existing software and I experienced fixing bugs in code that was written before I learnt how to program in a language nobody wanted to learn anymore.
What I have noticed that as time goes I enjoy maintenance development more and more.
Often I find developing software from scratch to be too easy and boring. I find there is more challenge in making legacy code “great again”.
I can understand why those, who have never had a chance to do it, are dreaming of “green field development” and writing systems from scratch using latest and coolest technologies and methodologies. Many developers believe that if only they were given a chance, the software they will design will be much better then whatever they work with. Unfortunately, it is not the case…
I would say that the majority of developers are able to write a new application that will more or less do what is required. But in most cases, couple years down the line, their code will probably be found by “the next guy” even worse then the one they love to criticise. But I think only minority can actually make an old code with layers and layers of changes to be nice again.