One less excuse


It recently dawned on me how often I say or hear the words “our industry is young”.

There’s truth in these words. Architecture, medicine, craftsmanship, engineering – they all started thousands of years ago. They had time to make mistakes, to learn from those mistakes, to come together as a profession and define it, to build tools and practices and to improve upon them, to build curriculum for schools and use it to teach the next generations.

But these words are tricky. They are tricky because they express the perfect excuse. “The industry is young, man, what can I do if we have a lot of bugs? I’m not to blame if I was born so early”.

And these words are misleading. We all know that 20 internet years are like 500 in real years. Our world is much faster than it was when architecture, medicine and engineering were born.

These traditional professions needed a lot of time to become professions because they didn’t have the communication capabilities we have. If you wanted to become an architect, you had to travel for days, weeks, months, maybe even years, you had to work with someone who was recognized as a professional and learn from him. There were no books, and when they started circulating it was difficult to get them.

They were also more constrained than we are. For centuries there were laws that prevented medical research; for example studying skeletons or making autopsies were punishable offences.

We have much more resources and much fewer constraints compared to what the other professions had. We have books. We have tools. We have chat rooms, forums, Q&A sites, recorded videos. We can travel to remote places in hours instead of weeks and meet with other programmers. We can communicate instantly with other people in writing, audio and video. We can adjust most of our tools based on our needs. Nobody is frowning upon us writing code, with limited exceptions like viruses.

We have professions we can learn from. Architects, doctors, craftsmen – they were separate guilds. Their practices and tools were only known to them. They could only learn from each other by accident.

Now, these professions are public. We all have access to the information. We can get inspiration from them. We can read, pick, or adapt some of their ways of working.

So why don’t we have yet a profession? We have a problem of scale. The problem is not creating the practices, tools, patterns, communities that define a profession. We have those, and we’ve had them for years. The problem is getting large-scale awareness and adoption of these practices & patterns. The problem is including more people in the communities. The problem is training people so that they are professional the moment they’re out of university.

We need to stop making excuses and own up the truth. Our industry is not young. Our industry is old in internet years, the only time scale that make sense in our domain. Our industry is however immature due to its sheer scale.

We don’t need an older industry to build a profession, we need more maturity, more discipline and more responsibility. And to build that we need a concentrated effort of many people.


PS: I’m preparing for a panel discussion at Software Craftsmanship London 2017 by writing a few blog posts on the topic of professionalism. I could use your help with the next steps. Is there something incorrect? Do you disagree with anything?  Do you have follow up questions? Tell me on the Software Craftsmanship slack group @alexboly, on twitter @alexboly, on email alexboly[at]gmail[dot]com or post here a comment.  Thank you for your support!

1 comment Reflections on design, craft and software

A new home for merging ideas about design

It is my strong belief that software design can learn a lot from other design disciplines. I wrote blog posts, a book and did talks on this topic, and it was time to group them all together. These ideas have now a new home: My plan is to add more blog posts there, and to involve other people doing work in this area.

Read My Book “Usable Software Design”

How UX techniques can be applied to software design to develop software better (given that the developer is the user of software design).

Read My Book “Coderetreat Hosting And Facilitating”

Learn how to facilitate and host a coderetreat from two of the most experienced coderetreat facilitators.