Image Copyright @ Robert Brooklyn http://unemployedprogrammer.blogspot.com/ |
Developers often complain about working on legacy code base. “Green field” development, i.e. writing
brand-new systems where no code existed before, is relatively rare. Most
software development work happens in the midst of the pre-existing and often
relatively old coding.
Why is so much work being done on legacy projects? If people
prefer to work on new code, and people in software development industry often
get what they want – why isn’t there more of brand-new software projects? After all, software developers nowadays get
shiny offices with nap pods and gourmet catering, free laundry services and massages
on-site.
It is well-documented that most of tech startups fail. Most ideas do not lead to
sufficient ROI and good business value. A lot of software projects get done [to
some degree] and then thrown away, because they did not turn out to be viable
enough to keep investing in.
So what is left is a select few projects that turned out to
be spectacular successes: profitable enough to keep using and getting business
value from for a good long time. Organizations choose to continue to invest in these projects because
older systems offer continuous income and a well-known ROI based on past
history. While these projects are
relatively rare, they tend to be large: small projects grow over time, and over
80% of investment in a software system happens after the project is declared
done and enters maintenance mode.
Most of the non-startup development happens on the large,
hairy, hugely successful projects with boring names and scrappy old interfaces.
The code can be old, but the system is brilliant – it survived the competition
with all other competing projects in its business space. This is where the ROI and the business value
are.