by Philip Lew, XBOSoft CEO
Software Testing Habits to Improve Agile Development Outcomes
Back in April, after my keynote at TestIstanbul on the Seven Habits of Highly Effective Agile Testing, I detailed the first habit to adopt to reach success: Proactively Be Efficient and Effective. At XBOSoft, we use these seven “habits” as guiding principles in our everyday work.
The Seven Habits of Highly Effective Agile Testing are:
- Focus on Efficiency and Effectiveness
- Treat the User as Royalty
- Maintain an Improvement State of Mind
- Be Agile, Then do Agile
- Think Tasks Not Roles
- Focus on the Customer
- Think Long Term
In this post, we’ll cover Habit #2: Treat the User as Royalty. For a more visual summary of the Habit, check out this video.
Treat the User as Royalty
Many times — independent of what role you have on the team — it gets easy to lose focus on why you are there. Remember that the user is why you exist.
The primary reason Agile came about is because we were developing software that didn’t satisfy the end user. Why? Because requirements were done months or even years prior to the completion of the software. That ensured that requirements would not only change but also, if implemented as is, would not satisfy the end user.
When we work with our clients, we want to make sure that we are testing the right thing, not just pounding through test cases, either in their creation or execution. Rather, we are thinking about what is the right thing to test, from the user perspective, and whether we are also applying Habit #1: Focusing on Efficiency and Effectiveness.
Putting It into Practice
Treating the user as royalty involves:
A. Get user stories right. User stories are the main input for software testing, so testers need to question what is written, and deeply understand all contexts and scenarios, primary and secondary, negative and positive.
Ask questions or you’ll be doing a lot of rework!
B. Prioritize product quality, user experience, and value to the client and user. This will help you reduce the things on your to-do list. Develop criteria for evaluating your tasks so you’re always doing the most important thing to do at any given moment.
Do you know what stories are the most valuable to the end user? How about for the product owner? Are they different answers?
C. Test early and often with users and customers. Conduct a task analysis and use the 80/20 rule to figure out what 20% of the application will provide 80% of the value.
Some call this the Minimum Viable Product (MVP), but you can take this further and think what tasks or actions will the users take? What are the top things they will do? Test those first and optimize your regression, automation and smoke tests around those tasks as well.
D. Conduct hallway usability testing. You don’t have to have a usability lab to do usability testing. Usually, in any software company, a maximum of 25% of the staff are in the development sector of the organization. The rest are in other functions, like Marketing, Customer Service, HR, Management, etc.
Take advantage of your fellow co-workers not in development and show them the software and application “in the hallway,” casually asking them questions like:
- Do you like A or B?
- How would you proceed from this point?
- What draws your attention on this screen?
It’s never too early to get out and ask people what they think about the application and how they would use it. You’d be surprised at what you can discover in 10 minutes from someone who is not in development and doesn’t have their head in the software every day.
Don’t wait until to end to find out that most people can’t understand how to use your software. Getting an outside perspective from those that don’t work with the software every day like you will enlighten you and your team.
It’s never too early to understand your end user. Don’t race to the finish line only to find out, like Forrest Gump, that you may have gone in the wrong direction.
Look out for a post on Habit #3 next!