Well I'll tell you...consistency and quality.
Tad-da...I present to you, AGA..Agile Golf Analogy...that's right folks, you heard it here first. The next time you hear "We've just duffed the project into the rough" or "We're in a bunker with the workflow components" you know there it originated.
I've have a couple of conversations over the last few days about our experiences using SCRUM and as usual there was lots of interesting thoughts and theories to emerge. It wasn't until I was at a driving range with some other guys from work and one of them said "it's the same swing just a different club" that it hit me. The key to a great golf swing is absolute consistency in the rhythm, effort, control and technique you use. The golf club does the hard work for you.
- Your shot is your Sprint.
- Your swing is your project team.
- Your club is your engineering practices.
- Your ball is your softwares functionality.
- The pin is the Sprint Backlog.
Want to hit the ball further? Use a bigger club.
DO NOT try to hit the ball harder with the same club.
Want to produce more software during a sprint? Use better engineering practices.
DO NOT push your team harder and make them work longer hours.
Want to hit the target? Make sure you are lined up with it.
DO NOT start implementation without knowing enough about what you are trying to build. [I'm not advocating complete upfront analysis, no sir! Just shifting it prior to Sprint start to gain a little more knowledge and increase utilisation consistency.]
It was about this point at the driving range my game took a complete nosedive!! BTW I can highly recommend the
TopGolfcomputerised driving range we were at. It's like a cross between a bowling alley and a driving range. You have RFID enabled balls and lots of target holes - the nearer the hole the more points you score - there are lots of types of games you can play...I liked the "Snooker" variant - need to get a red (easy hole) followed by a colour (harder). If you are a seasoned golfer this really does highlight any problems with your accuracy!
Oh yes, were was I?
To focus on the consistency more I'd like to share our thoughts. We started a Sprint and our analyst and business domain experts got together to discuss the Sprint backlog. Meanwhile the developers, although not idle were largely waiting on some sort of output so we could start coding. Once we understood what we were building we got on with it and the analysts wound down with occasional bursts of clarification activity. The top left graph shows (exaggerated) a view on how this looked workload wise.
Sprint characteristics
Problem: Starting analysis at the beginning of the Sprint
Results:
- Inconsistent utilisation across the team.
- Delayed start to implementation whilst waiting for analysis to complete.
- Inadequate analysis as pressure is on the get the development team productive.
- Descoping of Sprint backlog items as the team is over committed because of a lack of knowledge about the actual requirements complexity.
The bottom left graph shows how this effects the Sprint - the team has insufficient understanding of the business functionality and based on their current (mis)understanding of the requirement they take onboard more work that they can complete. It is not until they are well into the Sprint and their understanding has increased do they realise the requirements are actually much more complex then envisaged and that they have overcommitted themselves.
Resolution: Shift the start of Sprint backlog selection and analysis into the previous Sprint.
- The analysts have time to understand a better (not full) picture of the requirements complexity.
- More time spent on analysis leads to a more granular, less monolithic understanding of each requirement. Is may be possible to acheive some of the functionality rather then dumping the whole requirement.
- The team have more knowledge and can make a better guestimate of what they can actually acheive in the Sprint.
- A clearer picture emerges earlier in the Sprint of what will be built - no awkward "Sorry, but we've had to descope that, and that...oh, yeh that went too" conversations a week before Sprint end. The product backlog also has a truer reflection on the state of play.
- Team moral remains high, no feelings of inadequate performance as they cannot complete what they had originally stated they will deliver.
So ends part one of AGA...I'll flesh this out more on the engineering practices side of things very soon as I'm dying to get hooks, slices and especially shanking into this somehow!
Comments
Exactly the solution we came up with, too. Otherwise the Sprints are unbearably stressful. Perhaps with a pure XP team (no designated "analysts") this is different, or perhaps they sacrifice someone in each sprint to prepare for the next?
(and, in answer to the previous comment: yes, absolutely, this stuff works! Check out controlchaos.com !)
Deb
Certified ScrumMaster