By Philip Lew, XBOSoft CEO
Since my Keynote at TestIstanbul on the Seven Habits of Highly Effective Agile Testing, I’ve covered the first 3 habits in depth:
In this post, we’ll cover Habit #4: Be Agile, Then Do Agile.
At XBOSoft, we use these 7 “habits” to guide our everyday work. The other habits are:
- Think Tasks Not Roles
- Focus on the Customer
- Think Long Term
As software engineers and testers, we are so deep into this “Agile” transformation movement, but often forget that Agile is also an adjective.
Agile came out of a weekend meeting over 15 years ago, where the overriding principle was to be “agile,” meaning to be flexible and adapt to the customer’s changing needs by using short iterations and getting feedback.
Out of that came many things to do. But most don’t realize that you can’t just “do,” you must BE first. What kind of person would actually be more collaborative so that short standup meetings and retrospectives could be truly meaningful? If you just go through the motions and have meetings, but you are otherwise the same, not much will change.
Habit #4 is understanding that you must change parts of your “being” to implement Agile effectively.
Implementing the Habit
In this post, we provide some of the highlights on both being and doing:
- Small teams — Size matters in order to promote team culture. Because Agile depends so much on communication, collaboration and adaptation to change, it only makes sense to have small teams. Large teams just don’t make any sense at all.
- Focus — Be here now. Have you ever seen a bunch of people at dinner all on their phones sending messages while sitting next to each other? That also happens in conference rooms where people are on their phones, their computers, chatting online, etc. while in a meeting. Taking or even making calls during a meeting also happens. “Be Here Now” simple means being present 100% listening or speaking with the intention of communicating information pertinent to the objectives at hand.
- Shared understanding. Agile is all about continuous and that applies to collaboration as well which should be specifically built into your process. There are meetings such as the retrospective and standup that are designed to do this, but unless you have “Be Here Now” in place, those won’t work. Team members need to be responsible to each other and “call out each other on their stuff.”
If a team member fails to follow through on a task or update the team on blocking issues, they should be called on it. If all is visible on a board or via a collaboration tool, that certainly helps. No one likes to spoil the party, but that’s the way it is sometimes. This helps to establish trust in one another too.
- Being Done. Everyone talks about done, but the main point is that it should be defined together where everyone agrees on what it means. Then, you can stick to it as a team where everyone understands what complete is, and when if at all the next iteration should start.
Use the daily stand up meeting as a way to keep up to date on dangers of not meeting your “done” criteria towards the end of the iteration and remember that if you ignore defects, you’re not done.
- Incremental approach. Promote and use the incremental approach as a way to improve all of your agile practices and principles.
This means examining where you are and taking steps with each iteration to work on:
- Continuous integration
- Test environment
- Technical debt
- Coding and testing as one
- Estimation and planning
- Risk analysis and management
- Estimate work and keep adjusting. Everyone hates doing estimates, but there is a reason behind the madness. By estimating work, you can prioritize it, including backlog and test items, and break tasks down to a day or less to complete.
This gives you a sense of accomplishment each day in getting something done. But, additionally, it makes you think about the task deeply in terms of what the sub-components of the task are and what difficulties you might face. Use the retrospective to learn why some tasks were bigger than you thought and how tasks can be estimated and/or broken down better in the future.
You’ll also learn and document more about impediments that make your estimates go astray how to remove them, and how to make better future estimates. As usual, keep learning but also adjusting by identifying lessons learned from previous iterations that you will incorporate in this iteration.
- Develop your own flow and rhythm. This is the last step to be agile about Agile. You’ll know when you get in the “Zone” and the shots keep going down with “nothing but net” as you improve with each iteration, become more flexible at adjusting to change, and understand that agile is still an adjective even if you are implementing Agile.
Keep improving how you do Agile with our continuing series. We will cover Habit #5: Think Tasks Not Roles in an upcoming post.