The problem with making a serious leap towards a more scientific (or simply professional) approach is that programming is something people of all backgrounds can do for all sorts of purposes, from a hobby project or a personal website, to enterprise and mission critical software.
This isn’t the same for most other professions. You won’t be performing an appendectomy just because you’ve read about it. And whatever legal expertise you may think you have, you won’t be defending anyone in court unless you’ve passed the bar exam.
Now, compare all of this with what programming is like: you sit in front of your computer, and with enough time and determination you’ll start seeing your small projects come to life. Then, before you know it, you’re very likely to see some job offers coming your way, sooner than in most other fields.
This can easily lure people into a false sense of security and confidence in their skills, something that will at some point turn into a painful rollercoaster called Dunning Kruger effect.
Anyone can give a shot at programming and think they are succeeding because they set their own bar and don’t know where the real bar is.
Because of that, the line between amateur and professional is *infinitely* more blurred in the programming space.
Who suffers from this?
One may think that those who need only the best will stand to lose the most. The reality is that top level environments doing mission critical work (e.g. private company shipping embedded software for medical devices) are always self policing, so they don’t stand to lose too much from an unregulated field. NASA is probably a great example of such an environment.
The ones at the very bottom don’t have much to lose either as their needs can be satisfied by anyone with a basic understanding of the field and some time to spare.
Who then? All the ones in the middle, the ones who need professional work, are ready to pay for it, but have an hard time identifying the real thing from the amateur, because to their eyes they look the same (actually, the sad irony is that the incompetent is often times more confident and charming).
I have lost count of the amount of people I’ve seen desperate because they invested thousands (or hundreds of thousands) of dollars (or euros) into software that doesn’t do what it’s supposed to do.
I am slowly coming to the (very sad) conclusion that the only way to protect people and organisations from this is to move towards the approach other serious professions have taken, i.e. a barrier of entry for anyone wanting to do commercial work as a programmer.
After all, writing poor software today can be incredibly damaging. It stands to reason that not everyone should be allowed to claim they can do a job without having taken the time to prove they can.
