π» Watched: The Future of Programming - A talk by "Uncle" Bob Martin
How did our industry start, what paths did it take to get to where we are, and where is it going.
Thoughts
Our fore bearers did not start as programmers, they were mature and trusted individuals from around the business. Now we have career developers who start right out of high school. I am not sure which is better. There are plenty of articles and comments about young developers burning out and looking for something else to do.
We lack discipline. We lack a formal set of guidelines. We repeat the mistakes and successes of our fore bearers. Does it make sense that I need to do functional programming to understand its benefits? Should it be more important to learn when to use functional programming and when to use objects and when to use unstructured programming?
Somehow, we have excluded major portions of the population. I think this is very slowly changing. If we do not nurture this change then we may slip backwards as an industry.
Interesting Quotes
These are a few things that I think are important to think about.
Where did all the girls go? Where did all the women go? What's wrong with us that we are repelling half the people in the world?
While Bob refers to binary gender, I think this goes beyond that. In Western countries we have a similar problem with race and non-binary genders. I have recognized many times that being white and male has put me ahead of my peers who are not. It does not mean I am bad at what I do and promoted because of what I look like but what I look like is seen as, or at least it feels like, a positive.
At the risk of making finding a future job more difficult, gender and race inequality are a massive problem in the software industry. Looking solely at software, we are unable to create high quality software because we lack the experience and views of, at least, half the world.
If we are doubling every five years then we always have half the programmers with less than five years experience which leaves our industry in a state of perpetual inexperience.
I think this is an interesting point to consider. I myself am not college educated which has forced me to learn a lot of things on my own. Last year I had to explain SOLID to senior developers because much of their experience was in non-OO environments. I am not suggesting SOLID is a gift to humanity but it is an important practice to understand in writing organized software. To be fair, I can't describe all of the principles without looking but over time it becomes ingrained in the way you work.
What we have learned, over the last 70-some years, is more about what not to do than what to do.
Something to consider when we bounce between languages.
Agile requires discipline. It is often thought of as a process but it is not a process, right. It requires discipline, it requires attention to detail.
Thanks to Scrum, good marketing, and managers managing, programmers learn a process for developing software. It takes experience, teachers, and senior developers to bring up the next generation.
A professional takes the risk on what they know must be done.
Professionalism is an acquired skill. It comes with experience and training. If you get plucked out of college or, more common now, a bootcamp, will you have the tools and knowledge to push for good practices? Will you know to say 'No'? Will anyone back you up?
I think it is important to figure out how we can shortcut the need for experience to build professionalism in earlier in a developers career.
We rule the world. The world doesn't know this yet, we don't quite know it yet. Other people believe that they rule the world but they write the rules down and hand them to us and then we write the rules that go into the machines that execute everything that happens on this planet nowadays. No law can be enacted without software, no law can be enforced without software. No government can act without software; we rule the world.
I believe this ties in the two previous quotes into a single idea: we need to find a way to govern ourselves before we are governed by others. In a way, the Agile Manifesto was an early attempt at this but collectively we didn't take enough ownership and now we are managed from the top by a variety of Scrum.
Reading material
Some things to read, as suggested by the speaker.