That question is not nearly as irritating as “Are we there yet?” being chanted from the backseat on a long summer road trip. But I have heard it asked in many development shops who are trying to “become agile.”
The question is somewhat puzzling. What is the real intent of their question? Are they looking for a blessing? “Yea, thou art agile. Now go forth and Scrum.”? Is “agile” a badge they are looking to wear? If so, they are missing the point. They need to ask a better question. More on that in a bit.
What is Agile Development?
Back in the 1990s when heavyweight, plan-centric, software development processes reigned supreme, a quiet movement started to coalesce. “Lightweight” methods had been around decades earlier. However, the belief that comprehensive planning and a gate-staged waterfall process would greatly reduce project risk (along with promotion by software process / tool vendors) helped keep lightweight methods from becoming mainstream. While the plan-driven processes produced better results than having no process at all, they proved to be far from a panacea.
In 2001, a group of methodologists came together as proponents of lightweight methods and created “The Agile Manifesto.” (For more on the manifesto, go to www.agilealliance.org.)
The Manifesto states:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan.
That is, while there is value in the items on the right, we value the items on the left more. ”
Fast forward to today and you’ll find that The Agile Manifesto still holds true. However, “agile” now is an umbrella term that covers many methods and practices: Scrum, Crystal, FDD, XP, Dynamic Systems Development Method, Lean, Six Sigma, TDD, Pair Programming, Rapid Iterative Testing and Evaluation, Continuous Integration, and so forth.
How can these all coexist? Traditional methods are more rigid and prescriptive. Agile methods are more flexible than traditional methods and can be tailored appropriately to your situation. With agile methods, project teams can “plug in” working practices into their development approach according to the needs of the individual projects.
Agile is more about the journey than a specific destination. You should maintain awareness of how well the journey is going instead of how long you’ve been traveling. How can we explain this, in a simple manner, to those who don’t yet grasp the purpose of agility or never understood the values that agility promotes? Ask instead how well you are doing in achieving or following the various agile principles, such as:
• Are you focused on customer satisfaction or don’t you know who your stakeholders are?
• Are you delivering value early or focused on just getting the code out?
• Are you working at a sustainable pace or are you still having “death marches” and “tiger teams”?
When your bosses ask “Are we agile yet?” you can use a simple dashboard like the one below, based on a number of the agile principles.
Depict the agile principles that your organization wants or needs to focus on. Label the scales as appropriate for your organization (maybe even with your stakeholders’ help). For example, regarding Collaboration with the Business, your scale may range from: Daily (best), Weekly, Monthly, Quarterly, to Who is Our Customer (worst). Honestly assess where you are on the scale and assess your progress on each item. Then you will be able to give a balanced and more meaningful answer to the dreaded question. Plus, your dashboard will provide a view as to what direction your team needs to progress on your agile journey.
Even if you’re not “there yet”, at least you’ll know where you’ve been and see where you need to go. You will have a reasonable, pragmatic answer. And you won’t even have to stop the car.