With Etudes, Practice Makes Perfect
Professional development is very important at Point2, and we are always looking for ways to foster that culture of learning. Last week I introduced my team to etudes, an idea that was very briefly touched upon by Declan Whelan in his Learning is the Key to Agile Success: Building a Learning Culture on Your Agile Team talk at Agile 2009. Most people understand an etude to be an, “instrumental musical composition, most commonly of considerable difficulty, usually designed to provide practice material for perfecting a particular technical skill.” Taking that definition, the concept of an etude in the software development world doesn’t seem too far-fetched.
Many people are starting to view software development as a craft that can be improved upon with practice. This is evident in the emergence of Code Katas, self-contained coding exercises designed for developers to hone their skills. An etude is similar to a Code Kata, but is usually smaller and can be completed in a reasonably short period of time. I wanted the etudes on my team to be very small and designed in a way that would allow the developers to continue working on their current tasks.
After explaining the concept to the team at a recent Retrospective we all agreed to come up with at least one etude by the end of the next Sprint. To our disappointment there was virtually no information or ideas on the net so we had to rely solely on our imagination. I even contacted Declan for ideas, but was told that he had similar problems finding helpful resources on the subject. Once our Sprint wrapped up the following week the team had managed to come up with some ideas.
- No mouse for 30 minutes
- Pairing ping-pong for an hour
- No looking at the keyboard for 30 minutes
- Print off shortcut list for IDE and don’t use menus for 30 minutes
- Paraphrase every instruction/comment that your pair makes for 30 minutes
On Wednesday at about 2pm I stood up and announced to the team that they could not use their mouse for thirty minutes. After the gasps subsided the mice were set aside, and the the pair continued with their work. As one member of the pair struggled with certain commands we often found that the other member knew the shortcut and passed on the knowledge. Some developers were smart enough to print out the shortcut list a few days prior.
So what was the point of this exercise? While working in an IDE such as IntelliJ, shortcuts can be invaluable in how fast one can work. Learning to use the keystrokes as opposed to moving back and forth between the mouse and keyboard is a goal for many developers, and removing the mouse from the equation forces them to learn them. And as we also found out it can help a pair of developer share their knowledge. Just like in music, you can’t do a musical scale once and be an expert. The idea is that the more often you practice the scale, the better you will get. This particular etude we tried will help the developers learn the keyboard shortcuts as long as we keep practicing them.
This was the only etude we tried in the Sprint, but the plan is to continue throwing them out there when it seems appropriate. Let’s just say that I wouldn’t have announced the etude if we were in the middle of fixing a high priority production bug. But just think, by continuing to do these performance enhancing exercises, we should be able to get those production bug fixes (and new features) out the door that much quicker.
If you have any etude ideas we would love the hear from you.