I grew up in southern California as a pretty serious musician. I began studying the trumpet starting at age seven, piano at age eleven, and guitar at age sixteen. I spent several summers at the prestigious music school Interlochen and toured Europe with an international youth orchestra multiple times. All of that crescendo (pun intended for you music majors) into a double major in music performance and education. Beyond my parents continual encouragement and support, the thing that made all that possible, was my personal commitment to continual practice.
In music, when you want to have a successful performance you will practice, practice, and practice some more. This includes both as a team if you are in an orchestra, and as an individual for solo performances. Personally, when I needed to improve a particular technique, I would spend hours upon hours, days upon days, practicing it until perfection. More importantly, to the point where I didn’t have to think about that particular mechanic. This way, when it came time for performances I was focusing not on the technique, but more on its application into the larger performance.
So, what is this post all about? Simple really, why aren’t professionals following these same patterns of practice in disciplines outside music, performing arts, or athletics?
I have been an engineer for over a decade, and although I work eighty hour work weeks, participate in several industry projects, I only recently began rigorously practicing specific techniques and patterns at home. Now, I don’t want to discredit learning’s from all of my hands on work, as I learned and perfected a tremendous amount. However, I found without practice, I learned more about a techniques application then the technique themselves. This difference put me, and will put others like me at a distinct disadvantage without practice.
A little over two years ago I helped start a technology company. For those not familiar with the demands on the engineering group in a technology start-up, please, allow me to elaborate. Sustainable pace isn’t in your vocabulary, forget about it. Additionally, don’t even think it’s worth discussing. You have a finite amount of cash based on your current burn rate; you have acompany that doesn’t have a complete product in production; you have competitors in your market; and hopefully, customers waiting to receive what they have purchased. That means, what you completed today, really, should have been completed yesterday. So, why did that make me start practicing?
I found that in an environment like that, with such incredible business and velocity demands, I couldn’t execute my preferred methodology. Specifically, I couldn’t build the software leveraging Behavior Driven Development (BDD). Which, in the long term, can begin to affect your ability to build software at the velocity business is still going to demand. So, I had to abandon BDD. Why abandon BDD vs negotiating a slower velocity? We had customers waiting for a complete product, and losing them meant losing our necessary reference customers. Which, to a start-up, would have been certain demise. The product needed all features and needed them on the specific date, no questions. Thus is the life of a start-up. So, what did I start doing? I started going home in the evenings and passionately and meticulously practicing.
What did I begin to practice?
- Ruby
- RSpec
- Cucumber
- Ruby on Rails
- JQuery
So these are the things that I am currently practicing on average roughly fifteen hours a week. However, I also want to point out this is an important behavior to adopt even when you don’t work for a technology start-up.
It is rapidly becoming a Polyglotic boutique language industry. You are going to be using highly specialized languages for specific different problems within your applications domains. Additionally, new libraries and languages are going to continue to emerge at an ever increasing velocity. Not practicing those languages, techniques, and patterns will prohibit your ability to employee them on the problems you are solving. Thus, potentially putting you in a difficult situation.
Finally, I owe it to myself and to my customers (both internally at my company and customers who have purchased my companies software) that I am continually pushing myself to be at the top of my game. I am a professional and will continue to practice my craft and push myself to be better tomorrow then I was today.
In a future post I am going to dig deeper into specifically how I practice, as I believe that some techniques are better then others. Additionally, how do I as a manager of several different teams create an environment that will allow my employees to practice and improve their skills.






Recently the Dataportability project held open elections to repalce two recently vacant seats on the steering group. I am pleased to announce that I have been elected along with 
I am excited to report that the Dataportability Healthcare Taskforce has identified the use cases we are going focus on. They are listed below, however, they can also be found
a_williams 1:22 am on May 8, 2009 Permalink
Practice is not just for musicians and athletes: http://bit.ly/du1xR
This comment was originally posted on Twitter
warsql 6:15 am on May 8, 2009 Permalink
OH Practice-its-not-just-for-musicians-and-athletes http://bit.ly/2yCKb
This comment was originally posted on Twitter
Drew 7:11 am on May 8, 2009 Permalink
How many developers are out there that take Iverson’s approach? http://www.youtube.com/watch?v=eGDBR2L5kzI
“I’m supposed to be the franchise player and we’re in here talking about practice.”
Rachel Blum 10:42 am on May 8, 2009 Permalink
Heh – I had a longish reply, but it’s turning into a blog post for now. (Core idea: We don’t know the basics of our craft – i.e. what is the equivalent of playing scales)
In the meantime, let me recommend a wonderful book: Etudes for Programmers. While it’s fairly old, it has a wonderful set of exercises.
Anthony Broad-Crawford 11:02 am on May 8, 2009 Permalink
Rachel – I will agree that there probably is an argument that there isn’t consensus on our “basic scales and etudes”. However, I think enough is known and can be agreed upon that a short list of fundamentals can quickly be adopted. Additionally, our profession is still very young; therefore, it will continue to shape and mold and will require a fluidity from all of us in what we practice. That being the case, it doesn’t imply we shouldn’t practice the profession as it is currently defined and understood. Doctor’s practiced a significantly different form of medicine 10 years ago then they do today.
Phil Booth 10:13 am on May 10, 2009 Permalink
This sounds a bit like code kata: http://codekata.pragprog.com/2007/01/code_kata_backg.html
JamesD 8:33 am on June 11, 2009 Permalink
Thanks for the useful info. It’s so interesting
Anthony Broad-Crawford 4:58 pm on June 11, 2009 Permalink
@Phil Booth … it does. I never came across this link before. Thank you.