Therefore, it seems the right way to improve software is to improve software developers themselves, through deliberate practice and constant learning – including what we’re not taught in school.
This insightful quote was from Gael Fraiteur's recent blog post Why Should We Care About Software Craftsmanship? Part 2. If you're involved in software development, I recommend reading it.
I can't agree more with Gael's above quote. Yet, I was surprised when I read this:
The problem with software craftsmanship today is that it is merely a personal attitude; it does not seem to call for any action other than spreading the word and organizing local meetings where developers would practice the craft. This, alone, is not sufficient to raise the profession to the next level.
First, "merely personal attitude" is huge. That's where change begins! But that's not the part that surprised me. It was his impression that software craftsmanship does not seem to call for any special action. Yet, look back at that awesome quote at the top! "The right way to improve software is to improve software developers themselves." Say what you will about the craftsmanship metaphor, but its blatant call for action, the most obvious observable behavior, the clearest responsibility of someone walking the long road to mastery is to take on an apprentice.
Look at the leaders of this movement, the people who were living it a decade ago. Ken Auer apprenticed Nathaniel Talbott and many others. Uncle Bob apprenticed Micah Martin and Jake Scruggs and many others. Many other people have followed their examples and have reaped the rewards.
Apprenticeship has been a passion of mine since I first read Software Craftsmanship back in 2002. I even wrote a book about it, which has now been translated into Japanese, Chinese, Korean, with more languages to come. That book is not a call to action. It's a guide for newcomers to software. I'm considering writing another book, and this one will be a call to action for those who call themselves craftsmen. I will be spending the next 6 months testing some of these ideas via calls to action, starting next month at Øredev, and wrapping up at the Scottish Ruby Conference.
What is the most sustainable way to improve our software? Listen to Gael's wisdom: Improve software developers. Improve yourself, improve your peers, and create contexts where you can mentor newcomers.