A couple weeks ago, Uncle Bob tweeted:
At the time I was finishing Malcom Gladwell’s Outliers, a book that digs deep into the stories and counter-cultural explanations of successful people. Having someone so close to my context tweeting about a topic related to the book I was reading helped me see something I hadn’t noticed before. I’ve spent years trying to make sense of how a person evolves from a novice programmer to an accomplished software developer. And up until now I haven’t paid enough attention to the raw number of hours spent deliberately working to improve oneself. Uncle Bob calls us to work a sustainable pace in our day jobs (40 hours), so we have time (20 hours) to improve ourselves in the off-hours. Most people don’t do that, though. It’s not considered normal. People who spend time doing more of what appears to be their job in the off-hours are seen as obsessed or workaholics. Maybe we are, there is some grey area there, and I know I’ve taken it too far before. One of the ingredients to being an outlier, though, is an opportunity to work hard. Sure, many outliers have had some good breaks, like being born in the right decade (American entrepreneurs in the 1830’s) or even the right month (Canadian junior hockey players in January), but that luck only provided them with an opportunity to work hard at something that they wanted to do.
I’m not calling myself an outlier, but I certainly aspire to be one. In the little corner of the software development world that I live in, we call our outliers master craftsmen. My journey toward mastery began in an uncommon way. I started programming when I was 26, after I was married, after I had children, and after my wife and I decided she would stay at home with the kids until they were older. For better or worse, I also suck at personal finance (ever so slowly getting better at it), and that means that I have a fairly constant pressure on me to make sure I’m increasing my income. All of those forces provided me with an opportunity/motivation to work hard on an activity I enjoy while limiting my “day job” hours to 40. Uncle Bob’s tweet took me back to 2001 when my interest in programming exploded. Thanks to the constraints that my family provided, I stood my ground on working no more than 40 hours with my employers. But once the kids and Staci were asleep, I was working on my own projects, reading programming books, and blogging about what I was learning, all with free or very cheap tools and information. I didn’t sleep much between 2001-2007, and I had never considered condoning that sort of obsession in anyone else. It was certainly a sacrifice, and took a toll on my health and my marriage. Looking back on it, though, I realize that this sort of intense effort is what makes a successful apprenticeship.
And so I find myself looking back on 2 years of Obtiva’s apprenticeship program. We’ve had 6 people join us as apprentices, and I’m seeing some patterns. I’ve learned some things that I will look for in future apprentice candidates, such as what they do in their spare time. Are they already contributing to or reading open source? Are they working on side projects? Are they already blogging and/or tweeting about what they’re learning? Are they seeking out book recommendations? These are the sorts of behaviors that indicate they will likely be successful apprentices. As their “boss”, as an owner of Obtiva, I’m certainly not going to require anyone to work more than 40 hours. So I’ve found myself fooling myself into thinking that if only we could make those 40 hours as positive and learning-friendly as possible, apprenticeships will flourish. I fooled myself into thinking that if only I had had a “real” apprenticeship, I wouldn’t have had to spend all those sleepless nights striving for mastery. But nowadays, I’m getting the feeling that there really is no substitute for those 20 hours devoted to your own self-improvement. The 40 hours will teach you all sorts of things, but that time is constrained by business concerns, and this is a good thing, it’s a healthy dose of reality. The 20 hours are yours though, constrained only by your energy, passion and boundaries.
I worry that by blogging these thoughts our current and future apprentices will feel I’m implicity requiring them to spend 20 hours per week outside of work on learning activities. First off, I can’t legally do that in the state of Illinois. But secondly, I don’t want you to do it if you don’t want to do it. I only worked that hard because of the pressures I had on me and because I genuinely enjoyed the process. I think it would be silly to try to force yourself to do it, you’d end up burning out. Really, I’m talking to two groups of people. To those who are already spending their spare time on becoming a better developer, I want you to know that your efforts will pay off, but understand that it will take between 5-10 years to see the most significant benefits of your efforts. To those who want to become a great developer but hold themselves back out of fear of failure or hard work, I hope to inspire you to give it a shot. We work in an exciting field and everything you need to become great is available to you.
I’ll leave off with my favorite quote from The Mythical Man Month:
To only a fraction of the human race does God give the privilege of earning one’s bread doing what one would have gladly pursued free, for passion. I am very thankful. p. 291