@Mr. John Smith - Seriously Uncle Bob? Really, this guy is still allowed to do presentations? About the only thing he has ever engineered was his own fan club, which during the 2000's on was a popular thing to do.
Robert C. Martin, aka, Uncle Bob has been a software professional since 1970 and an international software consultant since 1990. In the last 40 years, he has worked in various capacities on literally hundreds of software projects.
so we'll assume he doesn't take any time off and has spent 40 years working 365 days a year, and assume that 'literally hundreds of software projects' means say 400 projects, so that is 14,600 days divided by 400 projects and he has spent an average of 36.5 days per project, just long enough for him to really misunderstand the project and screw it up and then bolt onto the next one. Now I would assume that somewhere in that 40 years he found some time to write his articles, speak at conferences and write books, do the family thing, etc so really 'literally hundreds of software projects' BS, but it sounds good until you look at the numbers unless his contribution was pretty much nothing but fluffy words for things that good developers have been doing for years already.
So the hobbyist or non professional is going to put up with having to build ugly hard things, nope. One of the companies I got dragged into by the investors to save was a medical company, and they wanted to save money and were using PostgreSQL, I couldn't believe it that is pretty much a huge HIPAA violation right there as in 2006 as PostgreSQL had no real auditing abilities and its audit trigger still can't audit a Select which would be pretty important for HIPAA (ie who is looking at these records?). Putting auditing code in a database isn't actually that easy to do right and generally if you want it, you gotta pay some poor schmooze or more likely a group of them to lock themselves in a room for months, eat pizza slid under the door and churn out code like Microsoft did for SQL Server 2008 when they added auditing for select statements (still something PostgreSQL can't do). Even so called open source projects rely on professional coders for the hard bits, take those guys out and the hobbyist isn't going do it, the motivation reward balance just doesn't add up, unless of course they are bucking for a professional gig afterwards. Code full database auditing for free or have a real life, hmmm I guess we will have to wait for someone who loves not having a life to write it.
Sure the average joe might be able to pound out some code to solve his problem, they have been doing this for years using Excel for example so nothing new there, but the average joe isn't going to write Excel. Ditto for operating systems and a whack of other fundamentally important and basic software (like NetMF). Not everyone can write a book for example so how exactly are all these folks going to author major pieces of software.
So why is everyone screaming about the huge shortage of programmers, and why would anyone want to be a programmer given is its a dead career?
I think that software companies used to fear OSS, now that they have seen it, they realize that everyone wants stuff, but code it themselves, nope not going to happen, except they might pick up a couple of tidbits of goodness, maybe even find a couple of good hires, and hey OSS is a great place to dump dead products as to have an easy out with existing customers when product cease to generate profitable revenue or maybe were never profitable to begin with. We are placing project X on OSS sounds so much better then we are flushing the source code down the crapper and working on something else, tough luck, but the results are often the same where folks are looking to them for solutions so they are still in control of their product destiny. Sure there are a couple of good OSS apps out there, but there have always been a couple of good apps out there were folks could get the source code and maybe even contribute.
I worked on Snort a long time ago (2000/2001 time frame) as a professional developer working for one company where we wanted to make some changes to Snort so we could use it with a product we we were working on (usually how big name OSS projects work, professional developers being paid to enhance a OSS product for use in a money making environment). Everyone loved Snort, but Marty is much happier know that he is a 'professional' developer and why shouldn't he be (has a degree in B.S. in Electrical and Computer Engineering from Clarkson University so certainly he put some time in education to become a professional, if you want to have some fun with Marty, ask him about his roommate from University)? Professional people used Snort to make a living, so why shouldn't the author(s) share in some of that 'reward'? I know it pissed Marty off when he saw how much people made using Snort and he was living dam poor at the time. Marty is a good guy and but man that code was a dog's breakfast, so many code styles and code chunks of rather dubious quality from non professionals (and maybe some so called professionals as well). In 2009, Snort entered InfoWorld's Open Source Hall of Fame as one of the "greatest [pieces of] open source software of all time", so I don't consider open source to be new, but often I do consider it to be a time waster as folks spend tons of time looking for something OSS and if they are lucky enough to find something, its usually a clumsy fit to what they really wanted or at least what they thought they needed. It seems that no one wants to write software anymore, or wants to get their hands duty on doing a full project or even writing the tough code and if they can get lucky and find that 80% OSS solution then great, but perhaps this is why we have developer shortage as dam few people really know the full game of 'developing software'.