Monday, March 13, 2017

Brown-field development

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.  

The offices may be getting nicer and brighter, but we are likely to continue working on in the deep-brown for the foreseeable future.