Scrum team members are like an Octopus with so many arms juggling the numerous quality aspects. Often I have seen an end product having gaps and the teams have to back track and look at things like usability, performance or accessibility. With so many quality aspects to think about during the fast paced delivery of agile it might be unsurprising that we might forget something or simply, not have enough time to care take of it at that moment.
Exploring a model, framework or cycle to help
To make sure we tackle quality aspects earlier in the product cycle I’ve been exploring thoughts in my head about a model, framework or cycle that might be able to help us recall what’s needed at the right time. One useful document to write is a test strategy, which will highlight what you need to consider.
Two exploring questions
- Is there a natural order that you should consider the quality aspects?
- How can we remember the quality attributes ?
Product Life Cycle
The Product Life Cycle displayed below may help us discover a possible natural order of what quality aspects to consider during this cycle. Below you can see four phases; Introduction, Growth, Maturity and Decline. One example to explain why an order might make sense is, the performance under load — in the initial stages we’re figuring out, what do we need to make and why? So,therefore it may seem natural for the the performance under load to come later in the growth phase.
Proof of Concept / Introduction
To start you might look at a Proof of Concept (POC). This is basically an experiment that looks into whether a concept is feasible. POCs can provide fast feedback and should be relatively quick to create. In this stage you’re simply thinking about whether your idea is feasible — do you need to start from scratch or carry onto the next stage? This means that we might not necessarily need to flesh out things like security (of course it entirely depends what your building!).
Pilot Stage / Introduction
If if gets past the POC, you’re onto the next stage. This is where the customer should be heavily involved -Is this “fit for purpose?” —Is this really what they are after? If you discover it’s not, you can explore different experiments to see which one fits the customer want.
Here the natural focus may be on the functional aspect — is it doing what you expect it to do? Alongside this, the quality aspect to consider is security.
The next quality attributes that you might want to start considering are Usability — is it easy to use? Accessibility — can the product be used by anyone? In the growth stage you’re going to start getting more and different types of users using the product, so these types of quality aspects may naturally fit here. Performance, for me, overlaps with usability, so consider that quality attribute too.
Then onto the next….
Summary of thoughts so far
My thoughts are likely to evolve on this — but I feel this is a good start to explore solutions to these questions. If you have any thoughts or feedback, then let me know!