Agile Software Quality Assurance – Habit #7, Think Long Term
At Softec 2017 in Kuala Lumpur Malaysia, I presented “7 Habits of Highly Effective Agile Testing” which sparked great feedback and discussion among the crowd. As part of our as part of our Agile Software Quality Assurance based culture and philosophy of continuous improvement at XBOSoft, I incorporated this feedback as new angles and context into the presentation. I look at each Habit as more of a principle rather than what some people call ‘best practices’.
In follow up Blogs, I’ve covered the first 6 habits in greater depth:
- Proactively Be Efficient and Effective
- Treat the User as Royalty
- Sustain an Improvement Frame of Mind
- Be Agile, Then Do Agile
- Think Tasks, Not Roles
- Focus on the Customer
The 7th Habit, “Think Long Term”, again like the other habits, represents core Agile Software Quality Assurance values where everything we do needs to be sustainable. This is in alignment with one of the key components of the Agile Manifesto! So the 7th Habit is built on the following three principles:
Start With the End in Mind
Back to the original “7 Habits” by Stephen Covey, always keep the goal or objective in mind. In our daily activities, it’s easy to lose sight of what’s important. So in the case of Agile Software Quality Assurance, the goal is to develop and deliver the best software you can at any given moment. So what is that? What is ‘Best’? And what is ‘any given moment’? This is where the key principles of Agile come in. In every stand up meeting you need to be constantly aware of:
- What are you working on! Are your activities the right things if you had to deliver the software to the client/end user today?
- And are we considering the end users’ priorities such that if we delivered today, their needs would be met?
Run Your Own Race
One of the key Agile principles that we often lose sight of is sustainability; “maintain a constant pace indefinitely”. We can’t do that if we are constantly under the gun and under pressure to meet stretch targets. If you’re trying to work faster and faster to increase velocity, ask yourself if the pace is sustainable. Manage and monitor your overtime and unplanned work religiously. You’ll find that your overtime is directly related to staff turnover and defects. Although we say, sprint or iteration, keep in mind that each sprint is actually a lap in a long race. You can maintain a steady pace and flow by ensuring that each sprint/lap has the same amount of work. When a new requirement comes in that is urgent, that means you must re-prioritize and subtract from somewhere else. And lastly, don’t compare yourself with others. Run your own race. You can’t compare yourself to other teams within your company or other companies. They all have a different context; developing using different technologies, different functionality, different users, different team members, etc.
Improve Incrementally Over Time
This applies not only to the software but to you. The end result you are looking for is to improve your output and the software quality over time. Adding functionality, improving user experience, increasing number of users, visitors, etc. is great for the software itself, but remember yourself as well, as you are the one that creates quality software. If you improve yourself, your team, the software will also improve. That means investing in tools, exploring different technologies, and experimenting with ways your team can communicate and collaborate together.
In summary, the last and final Habit really applies to all the Habits in treating them as all long-term efforts. Agile Software Quality Assurance, despite its name, is a methodology with a long term focus. Many people remember continuous improvement and rapid iterations, but they don’t remember that it must be implemented over the long term, not as a ‘sprint’ or a single lap.
Phil’s Softec 2017 Keynote address in Kuala Lampur was video recorded. Check it out here…