I mentioned before that I am writing an online course on ethics for software engineers (which is now open for pre-enrolment!) During my research for this course, I found an interesting – and scary – statistic.
From the mouth of Robert Martin
Some of you may have heard of Robert Martin, aka Uncle Bob. Most of you will have heard the term “agile”. Robert Martin is one of the authors of the “Manifesto for Agile Software Development”. This is the original set of principles for the agile process.
Robert Martin is also a strong proponent of a better code of conduct (ethics) for programmers. I watched a Youtube video of a talk he gave in Denmark in 2015 on the topic “Expecting Professionalism“. It’s about what he would expect from his development team if he was the CTO.
(PS: It’s definitely worth watching, both for developers and managers. But make sure you have time: the talk is longer than an hour, followed by a fascinating Q&A session).
In his presentation, Robert Martin talks about the increase in the number of programmers. And he produces this startling statistic:
“Half the programmers in the world have less than 5 years experience.”
Read that again. I had to pause the recording at this point, and replay it.
A state of perpetual inexperience
This statistic has significant consequences for our industry and our systems. Robert Martin points out that this “puts our industry in a state of perpetual inexperience”. He then goes on to say:
“It doesn’t take a lot of intelligence to produce code.
It takes a lot of intelligence and experience to produce well-structured systems with discipline.”
This is a serious issue. We have to think about how to address it, and how to create a culture of coding discipline.
How will you address it?
Robert Martin’s suggestions include mentorship and apprenticeships (internships). He also emphasises a strong culture of learning and discipline.
There is no single, simple solution. You can’t solve this by advertising only for programmers with 5+ years’ experience. You can’t solve this with a bulk subscription for Udemy courses – that’s a bandaid solution.
I don’t claim to have the answer. But I know that one of the things we need is a code of ethics and a professional approach to software development.
I’d love to hear your thoughts.