In the first two blog entries I shared tips 1-4 for being an effective agile PM:
Tip #1 - Figure out what is truly valuable to your customer
Tip #2 - Stop imagining you can predict the future
Tip #3 - Stop thinking your customer can accurately tell you in detail what they want at the start of the project
Tip #4 - Don't just communicate ... collaborate!
Here's the last two from my presentation:
Tip #5 - Be lean! (aka eliminate waste)
Last year I had the opportunity to attend a Mary Poppendieck workshop on Lean Software Development. Lean is a concept coming out of the manufacturing sector, but applies to what we do in software development as well! Mary defines waste in software development as:
Extra Features
- Unnecessary Documentation - Your customer cannot run their business with project documentation. Documentation is a necessary tool for effectively managing projects, but unfortunately too many organizations have taken it too far. Rather than creating more detailed documentation, look to replace it with collaboration. Also examine the timing of documentation. It's always cheaper to document something which exists, rather than documenting something which doesn't yet exist
- Extra Steps - look at your software development processes. Are there extra steps inserted for the sake of process? Break those down and create the most efficient process possible, with the fewest steps required to assure good quality products.
- Finding information - it is wasteful anytime someone needs to search for information. If you find members of your core project team in particular are searching for information through the documentation, you should examine how effectively you're collaborating (or not).
- Defects not caught in testing - any defect creates waste regardless of how soon you catch it. The most effective way to deal with defects is to create an environment which doesn't allow them to be introduced in the first place. For many of us this is a goal somewhere in our future, and until then we need to continue finding them less effectively. However, do strive to eliminate them before they cross from one domain to another. Is there a way your team can collaborate with the developer to find more defects in unit testing?
- Waiting - every day your customer waits for a new feature is wasteful. So rather than forcing them to wait months for a complete set of new features, strive to deliver it incrementally throughout that period of time. Your customer will be able to start using the new features incrementally and starting building value immediately. The other significant benefit of this incremental approach is your customer will learn what they really need as a result of using the features.
- Handoffs - this one is so obvious I wasn't paying attention! Any time your team has to pass work from one person to another (especially when it's being passed outside the team), you create waste as the new person needs to come up to speed. Work to bring as much of the knowledge required to build the product right into your team. This can be difficult in many enterprise environments, but reduce the handoffs as much as possible. In situations where your team must do a hand-off, don't let the team lose sight of the fact they still own the project work so they need to take the initative to stay in touch with the person it was handed off to.
Tip #6 - Learn & Improve!
For me this is one of the most important concepts of being an effective Agile Leader. You need to help your team learn continuously and apply those learnings in their work immediately as they move forward with their work. An effective means to do this is to host regular retrospectives. My preference is to host them at the end of each week, before they have a mental break (ie. the week-end) and they forget everything they learned.
One technique for doing this is the perfection game. I’ve adapted this from a vendor I work with, but ultimately it came from Jim McCarthy. The concept is very simple. On the whiteboard draw three columns with the labels “What worked great this week”, “Score”, and “What would have made this week perfect”. Each and every team member is required to attend and participate in this activity. I usually start as often people have a fear of being first (over time you may find your team changes this). In the first column I write 2-3 things which I thought were great in the past week. Keep it brief and clear, and avoid the temptation to tell big stories. In the second column write a score from 1-10 (whole numbers only) where 10 is perfect, and 1 is at the level you couldn’t imagine it being worse. This is a very subjective measure of mood so do not try to over analyze it. Finally in the third column – if you did not score a 10, then you MUST provide suggestions for what would have made the week a 10 (ie. perfect).
If you use the perfection game effectively a team of 8-10 people can get through this process in 15-20 mins. Some tips to help with your success are:
- Do not allow debate to start – clarifying questions are acceptable, but that is all
- Do not track long-term trends on the scores – last week to this week is all that is relevant
- Do this as a stand-up meeting – it will keep the meeting moving and focused rather than letting people sit down
That concludes Mike’s top 6 tips for being an agile PM. Unfortunately there are no silver bullets, only experience and great ideas to build on. If you stop to view the work you do as a journey (not a destination) you will have a better chance of success!
In my next blog entry I will talk about my view of Symetrical teams!
Until then … be Agile!
Mike