By James Lewis
If you’ve ever been golfing, you know the definition of the word “infuriating”. No matter how much time we spend practicing, we don’t ever have complete control over our game. If our irons are working well one day, our woods may betray us. If our putting or short game is clicking, likely our approach shots are a mess. Those of us who practice the longest, make the fewest mistakes in each phase of play, have the most success. Even in those instances where, for whatever reason, everything comes together and we shoot a terrific score, those of us with experience hear a distant echo in the back of our minds reminding us that this success is no guarantee that finally, at long last, we have figured everything out.
In the immortal words of NBA legend Rasheed Wallace, “ball don’t lie”. His context was basketball, but it’s a principle much more applicable to golf than perhaps anywhere else. No other golf teacher you can find will explain as much about your game in real time as the ball itself. The behaviour of a golf ball, once struck, provides an enormous amount of information about what we’re doing if we understand how to read it. It can tell us things about how we are addressing the ball, what our hands are doing, if we are turning our hips too early, or too late. There are many subtle variables we need to account for before ever swinging the club, and the behaviour of the ball is immediate feedback for us indicating whether or not what we are doing is working. Just to compound things, the adjustments during a round of golf are constant, as with each hole we have a new situation presented to us that requires us to update our approach. Changes I made to my stance in order to affect a hook on the ball are desirable in certain situations, but deadly in others.
Listening to the feedback the ball provides and responding to it is, in essence, an Agile behaviour. Responding to the feedback provided allows us to immediately evaluate our behaviour in context and adjust to our new reality (usually somewhere amongst the trees), to make the adjustments necessary to make our next shot the best it can be.
As it goes with golf, so it goes with software projects. Making use of the many feedback mechanisms available to us enhance our ability to respond to our changing situation for best results. Technical feedback mechanisms such as continuous builds and automated test harnesses provide us immediate feedback on whether or not our latest code changes fit together with everyone else has done, and whether or not we have made any mistakes that require immediate attention. Process-based feedback mechanisms such as team retrospectives or regular customer demonstrations provide opportunities for us to get everyone’s input on team progress, and also to make sure we are meeting (or ideally exceeding) our customer’s expectations. All of these mechanisms serve a more fundamental approach to our work that demands constant re-evaluation of everything we are doing, with as tight a frequency as possible. The disciplined mindset required to capitalize on this feedback in golf is the same kind of mindset that will lead to success in a project context.
It is often difficult to leave aside the mistakes of earlier shots in a given round, but the focus must always be on evaluating what came before, taking the lessons provided into account, and adjusting accordingly. Bearing all of this in mind, whether out on the course or in the project room, will hopefully lead to (slightly) less infuriating experiences, whether they be recreational, or professional.