2

The big question I have in my mind: how many developers are brownfield ("enterprise") compared to greenfield (all new code, from the ground up).

I'm constantly reading breathless articles about the latest technology, only to find out that It Just Won't Work On Our Enterprise Software codebase. People aren't ready for automated testing (because the logic is in the click-handlers and/or database). People aren't ready for ORM tools because we have horrendous amount of logic in stored procs and triggers. People aren't ready for WPF because our existing stuff is all WinForms. We can't get the latest version of Reactive Extensions because existing code used RX 1.0 and there are breaking changes that will require more testing effort than is justified by the return. Etc., etc., etc.

Very few articles seem to be oriented toward the brownfield developer, for whatever reason (can't sell ads for articles that start off with "you probably can't use this, but..."?).

So, I'm truly wondering: is the software development industry just chock full of greenfield developers, developing new projects for clients which are then released and enjoy a short existence until complete replacement for whatever reason? Or are there hordes of brownfield programmers silently laboring away in the ADO.NET T/SQL VB.NET software mines, looking wistfully up at the sunshine of Entity Framework 5.0 and Haskell, et cetera?

How do we even measure that? Salaries (wages?) paid to software engineers* in the two categories? How do we measure THAT? Maybe... revenue generated from selling said software? (There's an assumption that the crappy old software sold by XYZ Corp. actually has maintainers).

My question: Does anybody have any numbers that speaks to how much of the industry is green field vs. brown field?

gnat
  • 21,442
  • 29
  • 112
  • 288
JohnL4
  • 634
  • 4
  • 12
  • I don't think this is good question to ask here. This is more like setting topic for discussion rather than answerable question. See http://programmers.stackexchange.com/help/dont-ask Questions asked here ought to be *"practical, answerable questions based on actual problems that you face"*. – vartec Sep 09 '13 at 16:09
  • No, its just easier to write about how to do thing right when you don't have the baggage of an existing system to consider. Way too many variables at play that you cannot all address in a single or even a short series of article(s). – Marjan Venema Sep 09 '13 at 16:10
  • @vartec, granted, but... got any suggestions for better venues? I really am curious about the shape of the industry and I've only got a worm's eye view. – JohnL4 Sep 09 '13 at 16:22
  • 1
    dunno, reddit maybe? And if you just want to check wages, I'd just recommend looking at Glassdoor.com – vartec Sep 09 '13 at 16:26
  • 1
    You could try to contact Michael Feathers and ask him how many copies of his book "Working Effectively with Legacy Code" he has already sold. This will give you a lower limit for the number of brownfield programmers (though I guess you will have to multiply that number by at least 100 to create a real estimation). – Doc Brown Sep 09 '13 at 16:28
  • Disqus would be a better forum for this question than SE. – Jim In Texas Sep 09 '13 at 16:32
  • Actually, this question is really easy to answer.... – Michael Shaw Sep 09 '13 at 16:42
  • 1
    When starts "greenfield" becoming "brownfield"? I would say, after the first release of a program into production. How much of the typical lifetime of a software is before that point in time, and how much comes afterwards? – Doc Brown Sep 09 '13 at 17:39

3 Answers3

5

It is a well-known fact that most software development effort is spent maintaining existing software, not writing new software.

Why? Because the first version of a program is only written once. Every subsequent version builds on the original, and steady revenue comes from steadily maintaining, promoting and upgrading an existing product, not from constantly creating brand new inventions.

The life cycle of a software product can vary greatly. Some software systems written for banking on mainframes have life cycles measured in decades, while other programs only have an effective life of a few years (or less). For that reason, any attempt to quantify the relative percentage of effort on greenfield vs brownfield development would not be representative of the industry as a whole.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • Thanks. That's all true, but it's so true that it's really a truism. [Dang. Looks like @vartec was right. There's not enough space in this margin for my truly marvellous reply.] I was hoping somebody with better Google-fu than me could point to some numbers. :) – JohnL4 Sep 10 '13 at 10:02
  • (For those that don't recognize the juxtaposition of "margin" and "not enough space" and "truly marvelous": http://mathworld.wolfram.com/FermatsLastTheorem.html) – JohnL4 Sep 10 '13 at 10:13
3

I think the crux of your problems is that most of the "new technologies" you mention are development tools or development methods.

So simply cannot apply a new development methodology to software that has already been developed.

I would also question whether some of these "new" technologies are better. In particular I have never seen the benefit or ORM frameworks. They turn an 1980s relational database technology back into a 1970s hierarchical database. And generate hundreds of lines of code whilst doing so.

Another point is that many/most of these "old" technologies are pretty good at what they do. Just ask yourself what would be the business benefit of replacing and existing working winforms application with a WPF based system that did the same thing.

Most of the value of a system is NOT in its technology but in the business rules and processes which it supports.

James Anderson
  • 18,049
  • 1
  • 42
  • 72
2

In terms of revenue, pure Green Field development is probably close to 0.0% of revenue generated from development.

Why?

Development is almost always building on earlier code, doing rewrites of part of a design, bringing out new and improved version 4.0 etc... I can think of very few commercial situations where a new product is designed completely in isolation and then generates substantial revenue.

Even in start-ups, by the time the product is actually being used by paying customers, it probably been in development for so many months that it doesn't feel like greenfield code any more.

Michael Shaw
  • 9,915
  • 1
  • 23
  • 36
  • I don't think so. Unless you're only counting building a new operating system on top of a brand new computer architecture as green field, I don't think you can call it zero percent. Sure, everything is built on top of something else, but if you don't count the OS and any external libraries, I'm pretty sure programs like Angry Birds are 100% green field. – Robert Harvey Sep 09 '13 at 17:45
  • @RobertHarvey: Are you sure that that what got released to the public was the very first version of Angry Birds? Otherwise, that first version did not generate any revenue and the revenue came from the brownfield development of the follow-on versions. – Bart van Ingen Schenau Sep 09 '13 at 18:25
  • @BartvanIngenSchenau: You're merely making the case for "brownfield" and "greenfield" being essentially useless terms. – Robert Harvey Sep 09 '13 at 18:26
  • @RobertHarvey: That is more or less the point I understood from Ptolemy's answer. – Bart van Ingen Schenau Sep 09 '13 at 18:39
  • not quite, the terms are useful, but the revenue stage of a project is not in the greeen field stage, but in its brown field stage, so in terms of revenue there is negligible revenue from a project in a greenfield state, compared to the money made later in the project – Michael Shaw Sep 10 '13 at 08:38