Study, Study, Study
Perhaps you’re familiar with the Code Katas of the Pragmatic Programmers. These short exercises help you improve your analysis and coding skills. Similarly, problem sets such as Ninety-Nine Lisp Problems and 99 Problems in Perl 6 help you learn a new language.
It’s easy, relatively, to focus on improving your coding skills. There are obvious ways to judge the correctness of a solution: does it give you the right answer? Coding skills are only part of a great software developer, though.
Étude, Étude, Étude
Music has its studies too. An Étude is a solo musical composition designed to emphasize a particular technical form. Some are even listenable; Chopin elevated them to a musical form that people would actually listen to.
Jim and I have run a couple of software development Études. These are short exercises you can run twice during a brown-bag lunch with your entire development team. Their goal is to explore some aspect of software development so as to train your mind to think in different ways.
For example, the first Étude we ran analyzed the business value of certain features that the team had yet to schedule. What makes a feature valuable to its eventual users? How can you increase that value? What kind of information do you need to measure that value, and how can you get it without spending the time and resources necessary to implement that feature?
These are open questions. There’s no single answer for any of them, but discusisng the issues–especially if you have actual customers present–in a disciplined setting may change the way you approach your development.
The team came up with some great practical ideas too, but the real goal is to change the way you approach development.
What would it take to get your company to practice an Étude once a week, during lunch? What kinds of Études would you explore? Do you do something similar?