Tag Archives: Agile Testing

Design Thinking and its Relevance to Agile Testing

 Design Thinking Cover

Here I present a review of Design Thinking: Integrating Innovation, Customer Experience, and Brand Value at the same time connecting it to Agile Testing.  Quotations are from the book unless explicitly mentioned otherwise.  The good news, I think, is Agile Testing and the Quality mindset has an important part to play.  Does it resonate and connect with you?  Can they work together?  Are you doing something like it already?  Can we learn from each other? Let’s see.

Many things that model Agile Testing map to Design Thinking.  The techniques are either knowingly or unknowingly being applied.  Let’s make it them explicit.

We can connect this immediately to this from the book’s introduction:

‘The point of the story is that our innovation was successful, better products came to market, and people were more satisfied because a few open-minded designers teamed with some thoughtful engineers and with users who liked to experiment, developed and tested very rough prototypes, discovered flaws and reworked quickly, and included business analysis during the development process.  I call this design thinking…’

Well, I also find it a very good definition of Agile Testing!  Or near enough – there is a missing piece for most teams, it has key words, thoughtful engineers (testers and developers), users, business analysts combining with designers (the missing piece?) to create the process.  The missing piece is that testers and developers rarely get to participate in the well strategy defining tests that design thinkers are doing.  There may be cases where they are, and certainly in smaller companies it happens.  In larger organisations, the more traditional, I haven’t see it.  The real customer facing side of the business is often obscured and obfuscated.

Here is some more on the missing piece for us from the book’s introduction:

‘design thinking is primarily an innovation process.  It is a way to help discover unmet needs and opportunities and create new solutions’

Phil Best says it’s ‘a five step process that includes immersion and understanding, discovery of opportunities, creating a vision, validation with key stakeholders, and finally, integration and activation’

Testing is not usually considered a player in innovation.  I think it is when it is allowed to flourish it can really excel.  We may not even notice but some very innovative ideas come out of good agile testing (requirements) workshops,  which leads on to …

Everybody is Connected to a Goal

‘A big part of modern product development is the workshop exercise.’

And this too is what we do with ATDD, BDD and SBE.  These are focussed discussions of what the software for a product should do.  They encourage discussion and importantly dissension.   We call this a cross functional gathering.

Design Thinking takes it further.  It more than cross functional, it’s interdisciplinary.   Design thinking calls for a heightened view of Customer needs.  Often this is given lip service.  Many enlightened teams do mind mapping and paper prototyping, all of which fit nicely in the Design Thinking toolkit.

Can we take it further.  Customer Empathy,  generates real value.  Do we understand what makes the Customer happy or are we just order takers.  Design Thinkers spend their time on the options that determine these.   As testers can we take it to another level, amplifying the techniques we already use and supplementing them with others to achieve better value.

Let’s continue with more excerpts from the book, making direct connections to what we do:

‘start any new design activity or change program with an intent workshop.  This involves inviting all key stakeholders …’  p. 27

Liftoffs are one way to approach this,  Strategy Deployment is a more detailed and focused approach.

Exploratory Testing

Exploratory Testing, is just testing according to  http://www.satisfice.com/blog/archives/1509

‘The role of thinking, feeling, communicating humans became displaced.’ from http://www.satisfice.com/blog/archives/1509

We need to link to a human process and unleash from the straightjacket of the script.   Context Driven Testing (CDT), seems to line up somewhat with Design Thinking.

To further align with CDT definitions, would be to identify with a humanistic and even all of body experience of testing.   It’s bringing in abduction, what might be.  Less on deduction, what it should be – that could prevent innovation.  Testing would still be somewhat aligned to induction, proving it does work but the continuum slanted to a mindset of abduction, particularly early on.

From Elizabeth Hendrickson’s book Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing,

‘No matter how many tests we write, no matter how many cases we execute, we always find the most serious bugs when we go off script’,

the message in going off script helps even when discovering what the user needs.  That’s how we can debug the process.  That’s how testers can help in Design Thinking.

Let’s turn Hendrickson’s definition of Exploratory Testing around to suit Design Thinking:

‘Simultaneously designing and executing tests to learn about the system, using your insights from the last experiment to inform the next’

Changing only a few words for

‘Designing and executing experiments to learn about the system, using your insights from the last experiment to inform the next’

Almost the same and perhaps I could have left it the same.  Tests are experiments, but I put experiment in to convey a larger gravity to idea.  The experiments do not have to be the real thing, they can be a role play and will generate immediate feedback from real customers.

Exploratory Test Charters may in fact be useful and its template of Target, Resources and Information (to find) could be a useful model for Design Thinkers to use.  Importantly the charter’s are designed to leave enough room for exploration, ignoring the specifics.

During requirements sessions, design thinking sessions, candidate charters can be constructed for later on.   You can be testing the requirements with an inter-disciplinary group of people.  It would shortcut assumptions even they can have.  Formulating tests, is an expression of requirements and all their shortcomings are realised earlier.

Design Thinkers may not understand the -ilities part of software.  Here’s the chance to bring that to bear. Listen out for the reliability, performance, load abilities often expressed in the language they are familiar with.

Testers Question

Testers have the opportunity through their knowledge of how products work to be innovators.  A frequent example I see in websites is not dealing with ethnographic qualities.  Different font sets for non English languages are often neglected.  That can give rise to interesting bugs as well.  But what about the experience for that group.  Could that experience take them elsewhere.  Was it even considered and what of the cost if it was.

Accepting requirements as is, and from the book: ‘This form of research is really just being an order taker, not an innovator’

Accepting requests as is, is leaving out innovation.  Testers know this as well as ‘test infected’ developers.

It means encouraging the proverbial dog with a bone:

‘Remember, the key is to solve the right problem, and the right problem is not often the first identified’ p. 89

‘Only if you take people out of their comfort zone you get meaningful answers’ p. 116

Use your testers doubting mind to check on assumptions.  Some examples are documented by Gojko Adzic in his book Specification by Example: How Successful Teams Deliver the Right Software.  I include my own example in my training.

As mentioned previously, also make sure it always connected to a goal:

‘Ideas need to be based on some relevant insight about connection to the desired outcome – otherwise they are just ideas’ p. 148

Here’s something where we can probably all improve, most of us are just not exposed to this.  We should be.  We should (be allowed to) take the plunge and learn more.

‘The more brands understand that it is not just the features of a brand that create consumer pull but the benefits as well, the more leadership they will attain within their categories’  p. 101

Leaders need to allow that, there will be failures and will need to be needing to accept that.  Risk taking leaders will excel here.  Their companies generally do better. Office furniture maker, Herman Miller, is an active risk –taker factoring that into their strategy.  p. 166

Here is something that links to overall goals of good product development:

‘Designers, however, prefer to proceed with a flexible toolbox of heuristics and an agile, curious mind. They don’t know yet what the outcome will be of their creative explorations, and therefore cannot define what specific steps may be required to get there’  p. 25

So for testers to shine, then following this is key.  Following this quote is a table of dysfunctions that describes the cults and the corresponding antidote for a design friendly environment – instead of copy and paste take a look yourself.

Behaviour Driven Development – BDD

BDD fits in very well with Design Thinking.  Two areas that work in complex domains that sprung up, it seems, independently but share many of the same values.  BDD brings in automation to shorten the feedback loop between the what and the how, however the front end of BDD is the most valuable when executed in the spirit it was intended.

Dan North, coiner of the term, has spoken and written about Deliberate Discovery.   It means admitting to fallibility in ego, in skillsets and what the user truly needs.   Ethnography is a key plank, but few people in the process get to witness what the user does and feel empathy for the user.  Usually the ‘budget’ and resource utilization thinking means this is usually siloed with business people responsible for what the user needs, and delivering personas perhaps, and the devs and testers making sure it’s built and delivered.  As an aside, Rachel Davies uses the word ‘research’ for user stories.  She coaches the developers in XP teams to write the story and do the research to build it and therefore connecting fully with customer needs rather than a build all those stories and demo in a sprint review.  Seems to fit in nicely, building on empathy for customer needs.

Often the disconnect to needs and delivery is not felt till later when the unhappy user gets something they didn’t want or need.  This can result in expensive re-writes, which I’ve seen and no doubt others have as well.   Design Thinking and BDD both want to eliminate this possibility as much as possible.   Testers and Devs have a key role to play.   (Some teams only have Devs – so being Design and Test infected is even more helpful for them)

Connecting to What is Human

Because ultimately it comes down to what people feel and if you aren’t doing something that connects to them positively then we haven’t passed.  Connecting the head, heart and gut.   Usability testing, often neglected for pure functional outputs, is important then.

head heart gut

 This is where innovation can arise and testers can have the eye for this.  Being connected from the beginning and during execution through to the end fits right in.  Here’s some more to back up starting at the beginning:

‘Customer experience mapping, or the process of storyboarding and documenting a variety of possible scenarios with detailed interactions and outcomes, is a useful means of probing and uncovering opportunities to design a better service’ p. 200

This example actually refers to service design, Design Thinking goes beyond ‘things’ to design experiences, but the concepts are still valid.  A tester is learned in thinking through scenarios and different outcomes,  and continuing on to the details is another area testers thrive in:

‘This reminds us that service design is about attention to detail, as even a staff member’s failure to say “thankyou” can leave the customer with a perception of inferior service.  Looking for opportunities to influence positive perceptions should be part of the service design process.’  p. 200

Again it refers to service design, yet it is still applicable to the software world.  The little details get noticed, they might not be obvious but they still accumulate.  Testers know through asking questions, and with an exploratory mindset they can sniff these things out.

At the same time that you are building your technical skills in automation, keep this in mind

‘If you want long-term profits, don’t start with technology – start with design’  p. 19

It so tempting to resort to and keep to the norm of reductionist silos and let others do that.  Rather it’s more relevant today than it was previously, that it is the interdisciplinary collaboration in all it’s initial messiness is where the insights, innovations and opportunities lie.

‘All too often, it seems, businesses either excel at the creative side, in which case innovations usually fail, or they excel at the analysis side, which generally leads to only incremental innovation, or more likely, stagnation.’  from the introduction of the book

What does it mean, for testers, it means knowing that this important:

‘a shift from using design to make things simple and easy to design being about making people care’  also from the book’s introduction.

It will mean that you’ll need to factor in the ‘Social, Economic with the Technical’  These SET factors are forces that interact in emergent ways, and only through probing can the preferred state be discovered for customers.

Role of Quality

The probes will not all be a right!  Generally accepted that 50% will fail and sometimes 80% will fail as observed at a recent client.  Still much learning occurs from either state.   Testing will execute on quality and that is still important.  Quality will enable the emergence of the right, and only after the market has had a chance to validate it.  We can’t know that upfront, it may exceed or underperform expectations.   Just know that the quality has its part to play. That helps with the punt that the business is taking.

Agile Testing therefore has a very relevant part to play in innovative product development.

Advertisements

Webinar: Case Study Agile Testing results in DevOps Success

I recorded a webinar for CodeGenesys on a case study on Agile Testing involving my Australian Client called AgWorld.

Hopefully it conveys that quality is owned by everyone and quality starts well before a line of code is written.

Quality right through the value stream is cornerstone of DevOps success. This carries on right through the software development life cycle starting with requests and turning those into executable specification with BDD/ATDD, automation of unit and integration tests and with the aid of automation tools (Build and Deploy) to increase the delivery rate of completed software to increase the frequency of feedback lloops.

 


About Agile: New Class Schedule for Agile Testing in June 2015

New Training Schedule for Agile Testing Released 

The next batch of public training sessions from About Agile for the ICAgile Accredited Agile Testing course is set down for June and will be held in Singapore and in the Australian cities of Sydney, Melbourne and Perth.

You can book through EventBrite or contact us directly to negotiate better pricing for multiple attendees and avoid Eventbrite fees.

You can read about real benefits of taking the course by reading this interview with AgWorld from Perth.

We can also run the course in-house.  Please contact us if you’d like to do this and realize more savings over the public training.

Later in the year we will be releasing new ICAgile accredited courses focused on the Fundamentals of Agile, Agile Programming and Agile Product Ownership.  Special discounts are provided for early adopters of these courses.  Please be in touch if you are interested in these.

We have other courses available and in-house coaching whereby training can be rolled into a longer engagement and course fees can be reduced significantly as a result.  Please be in touch if you want to know more.

Dealtesting

From an exercise in the course – students create an agile testing manifesto of their own


Realizing the Power of Agile Testing

In this interview with AgWorld, a company that undertook the Agile Testing course that I present through my company About Agile, we learn about their journey to Agile Testing. In the six months since the course they have applied the ideas and reaped massive benefits from doing so.

I presented the course in a coaching style which they responded to positively and subsequently they really picked up the ball and ran with it afterwards. They did all the work to achieve the benefits and recognize that the journey is not complete either.

The full interview transcript is reproduced below.  I can give this course to your company or combine it with a coaching engagement for even better effect.  Use the contact details on the About Agile website to get in touch to find out more.  I also run the course in a public setting if you prefer to use that avenue.  A schedule appears on the About Agile website for that as well.

Interview Transcript

Here we have an interview with two participants to About Agile’s Agile Testing course.  Stephen Baldry is Chief Technical Officer at AgWorld and Michael Holmes is QA and Testing Team Lead at AgWorld.

The interview was conducted over Google Hangout whilst I (Nick) was in Croatia on a break, and Stephen and Michael are in Perth.  We find that the central theme is that Agile Testing is a collaborative and whole of team effort and this has been the main benefit of the course.

a 50% reduction in bug count

The course is not a Scrum or a Fundamentals of Agile course, rather it overlays the Agile principles over testing activities and the biggest outcome is better communication and sharing of responsibilities.  The course does delve in details like types of testing, the testing quadrants and Exploratory Testing and Testing For Requirements.  We don’t talk so much about these important facets in the course during the interview.  Read on to find out more.

Nick: Hi Guys, lets do a freeform chat and just start with the results you got in the last 6 months since you did the course.  For instance reductions in bug counts and also that you had the first release without any known defects.

Stephen:  Michael might want to take this answer and you’re closer to the QA process.

Michael: Sure, I posted recently on LinkedIn a major reduction in defect count and finding the issues earlier rather than later.  Weekly builds have helped, but also (more so) having a tester involved from the outset (i.e. doing Scrum rather than ScrumBut).  We are finding the issues before they become issues.

Nick:  Any specific examples you could give?

Michael:  There have been many none of which spring to mind at the moment, it’s more rather a continuous feeling of getting requirements right for all the stories we take on.

Nick:  Essentially testing the requirements, is that right?

Michael:  Yes, that’s right

Nick:  Be great to get a specific anecdote 🙂

Stephen:  It’s been something that we have been observing more externally (i.e. when the product goes to production).   Let’s expand a bit more, a year ago QA was discovering requirements when it was time to start testing.  Now QA is discovering requirements when we are planning development.  Beginning rather than at the end.

Nick: So you have been keeping track of this via metrics and stats have you not?

Stephen: Yes we have year on year stats for bug counts.  So year on year we have a 50% reduction in bug count compared with the previous twelve months.  And as we said earlier, this is the first major release we have released with zero known defects.  This is a massive change for us, this has never occurred before.

customers are taking the time out to give us the bouquets rather than the brick bats

Nick:  How did everyone feel about that?

Stephen: Ahhh, we didn’t care  (we all laugh in unison)

Nick:  Ah, it’s a bit of a nonchalance there…. It’s just what we do now

All:  Agreement 🙂

Stephen:  We have come to expect it now.

Nick:  That’s great to hear, so drilling down a bit more on that, what sort of effects has that had on the team and has it had any effects on a company wide level?

Stephen:  We’ve had contact with customers both via telephone and email, where customers have told us specifically that what we’ve been doing with the product in the last 12 months has been amazing.  The quality has gone up so much and it’s really saving them a lot of time, and they wanted to commend us on what we’ve done in the last 12 months and a lot of that has been around improved quality.  It has flowed right from the development team to the support team to the sales team and all the way through to customers.

Michael:  It’s great that our customers are actually cognizant of that and actually the taking the time out to give us the bouquets rather than the brick bats.

Nick: That’s got to be a good morale booster?

Stephen:  Yes, and it’s completely unprompted. For example, our CEO got a message on his phone where the customer said: “You don’t need to phone me back, it’s nothing urgent – just wanting to tell you that what you guys have done with the product lately has been amazing, a big increase in quality.”  It’s really good to get that kind of feedback from customers.

Nick:  Yeah that’s great, that’s the best kind of feedback – the feedback that you don’t ask for.  How has it helped with the team dynamics?

Michael:  I’ve heard back from the developers that it helps them get on with doing it.  Because we find the problems earlier, it’s still fresh in their mind.  They also don’t need to second guess themselves as to what was I thinking when I did that bit of code.  They can just go in the make the fix. It makes the turnaround time on detected issues much faster because of the freshness (Nick:  It can take 24 times longer to fix a bug after the fact).  Because the turnaround is fast they are much more efficient and deliver much more with better quality.

If your sending a rocket to the moon, if you’re off by a small degree at the launch point, you are totally going to miss.

Nick: Certainly, still having a developer hat at times, achieving milestones quickly and reliably is a great confidence booster.

Stephen:  We have made plenty of improvements over the last year, but there is still plenty we can still improve upon.   We haven’t yet reached our objectives with all of this, but we have seen significant improvements and we’ve seen the benefits of making these changes.  Including QA earlier in the process, we clearly are gaining the benefits from that, we feel there are other things we can improve as well.  (Nick:  Good improvement culture)

Nick:  Please tell us more of what you’d like to improve in the coming year?

Stephen:  Not specifically pertaining to QA, but more Agile process like the Scrum Process and better prioritization.  Part of the analogy that you covered in the course which showed making a cake whereby traditional software development if you don’t get to complete things you get holes in the cake.  Whereas in Agile development the layers that you have done are fully functional perfect layers of the cake.  Whilst we have a good agile process the prioritization of issues within the sprints is an issue, we sometimes still end of up a cake with holes in it at the end of a sprint (Nick: Probably requiring a hardening sprint) Note: The Cake Analogy is courtesy of Ilan Goldstein.

Nick:  Get a less holey cake?

Stephen:  And developers still like to cherry pick issues, so we tend to end up with a holey cake.

Nick:  Yes this is a common issue, i.e. thinking of the what I like first at the expense of the product overall (hard one to manage especially if innovation is what you want)

Stephen: So we still also want to understand the problem.  This can still be disconnected from the development team, the people who do they initial gathering of requirements are not part of the development team.  Not necessarily a problem, but if you can’t articulate what the problem is to the development team then you have a gap.  We would like to see that gap close.

Nick:  We are getting in the Product Ownership area and Agile Business Analysis area and making that more collaborative.  I still tend to think that Agile Testing overlaps quite a bit with techniques like Impact Mapping and Story Mapping are applicable in Agile Testing as well as in Business Analysis.

Nick:  One of the quotes I had back from the feedback from the initial delivery was from Tristan which was quite good and I wonder if it resonates with you?  He said: ”I got a lot out of this course (Agile Testing). It has changed the way I work subtly but the effect has been dramatic. I feel quite a few things have crystallized in the week following as the information is sinking in”  from: http://www.aboutagile.com/testimonials/

Does that resonate with you?

Stephen:  I think that’s right. The changes that we’ve made are kind of subtle but the the impacts are much larger than the changes would indicate.

Michael:  If you were to make an analogy.  If your sending a rocket to the moon, if you’re off by a small degree at the launch point, you are totally going to miss.  Whereas at the start if your accuracy is correct you are more likely to arrive on the target and successfully land on the moon.

Stephen:  One of the things that I have noticed that is kind of small and subtle is just having QA involved early and continually through the process has often led to discovering missed requirements.

Nick:  Discovering Gaps?

Stephen:  Yes and that’s often because of the different angle QA is looking at it I think.  Because of that they are asking questions that developers aren’t asking and we are discovering it early on.  We add those requirements as we go (Nick:  still fulfilling the sprint goal, not going out of scope so to speak).

Nick:  During the course you mentioned that errant requirements were missed, do you think they are being captured as well.

Stephen:  Not yet I think, I was was referring to earlier this is about understanding the problem.  Gaps in understanding between those building and those asking.  We can only have a subset of the team understanding the problem and that subset need to articulate that to the other team members.  This is our next place of improvement.

Michael:  We had a coaching session with our organisational coach and it ties back to the trust that develops between people.  You need to believe what the other person is saying and not doing something stupid but doing that intelligently.  I’m not asking this to be done because I say so, but because it makes sense.

you don’t know it because if you knew it you’d be doing it

Nick:  So you know the Why?

Stephen:  Yes, the session was the speed to trust.  What sometimes happens is that we may do a lot of work in requirements gathering then trying to articulate those requirements we can say ‘You need to build it like this, just trust me – I’ve done all the work to figure it out and you need to do it like this.’  That actually doesn’t work because we are knowledge workers and we need to understand the rationale behind things and we need to trust that the right methodology and process has been used and if that is not transparent then it’s hard for us to trust that.  We had a workshop to promote transparency in the process and the outcome of what has been learnt is that this aligns really well with the requirements and the team understands this.  That speed to trust increases because the process of how they were gathered is transparent.  (Nick:  Specification by Example is deliberate in this respect and well as Deliberate Discovery)

Nick:  Exploring a little bit more around the testing side of things.  Michael are there any specific areas from the course you may have felt were immediately applicable?

Michael:  Just this week, we’ve had feedback from developers that we hit a problem and the feedback was that the tests around the work we were doing can improve and be doing that better.  We as ‘developers’ are not bashing QA anymore, as we have all these other lines of defense that come into play.

Stephen:  So what I think Michael is trying to say is that the course helps us better recognise that QA is everyone’s job and that it’s everyone’s responsibility and that we just don’t hand it over to QA.  They understand not doing this is breaking down the QA process and they now understand they have a part in this as well.

Nick:  That’s cool, do you find yourselves doing more things like triads, increasing T-Shaped skill sets?

Stephen:  To a small degree.  A lot of this is the change in mindset.  So changing from testing is only QA’s problem.  Previously, if a bug appeared it was because QA didn’t test it properly.  Now it’s everyone’s responsibility and this is the first step? That’s the biggest benefit in my mind, the change in mindset and the accountability for all of the process and not ‘just their part.’

It’s like a lot of things, sometimes you can have a course and you say to yourself – we know this why are you telling us this.  We don’t need to be in this course.  What you discover is that you don’t know it.  It’s like common sense and you do know it, but you don’t know it because if you knew it you’d be doing it.  That is what I found this course is that there is a lot of things in it that are from our experience was like we already know this stuff but then it becomes apparent that you don’t know it because you aren’t doing it.

Michael: Everybody has their own take and perspective on it, but here we are as a group have the same perspective and the same picture, so everyone realizes the gaps that exist between each other and at the same time those gaps get filled.

Nick: Once the gaps are apparent you can then deal with them?

Stephen: Yeah, and also agreeing on a common vocabulary and common ideas because you had common training just made it easier.  Therefore when we talk about X we all know what X is.  This is also helping us to be more effective.

Nick:  That is a common statement about Common Sense.  It’s very easily mentioned and agreed but rarely practised in a coherent way.  I read a quote this week – ‘It’s common sense to treat adults are adult human beings but in fact it’s rarely practiced’

Thanks guys for sharing your learning’s since taking the Agile Testing course.  Good luck and all the best in your ongoing journey.  I’m sure there will be more tangible and intangible benefits to AgWorld’s bottom line.

Stephen:  Thanks Nick, no problem.  Thanks for staying up at 1am to do the interview.

All: chuckles

Nick: That’s not a problem, not a problem at all.  Once again, I’m happy that you’ve received positive outcomes from taking the course as well and achieving the results to your bottom line. Those intangibles you get from the customer are going to result in tangibles to the bottom line.

Stephen:  Yes, I think it has definitely been contributing to changing results and changing the bottom line and changing customer feedback.  I definitely think that the changes we have made, some of which are directly attributable to the course are having definite effects in our efficiency and effectiveness and our customers perception of us as a company.

Nick:  Once again thanks!

All: Bye


“It has changed the way I work subtly but the effect has been dramatic”

The title is some feedback from a recent running of About Agile’s Agile Testing Course.

There were some photos taken.  And some more should have been taken 🙂

WP_20140730_002


Test Infected Developer

TwoBearsDeveloping

Lisa Crispin and Janet Gregory’s seminal book, Agile Testing, refers to fellow agile author and coach Jonathan Rasmussen as a Test Infected Developer.

The story as presented in the book describes the first encounter between Jonathan Rasmusson and Janet Gregory.  Jonathan’s first reaction was to think there was no role for a tester in an XP (extreme programming) team. Janet’s inital response is long forgotten, however the value she introduced was displayed in the next six months. Automation of the low level test cases allowed her to focus on more value add areas like Exploratory Testing.  Jonathan was thus converted and saw the valuable role of a tester on a team.

They also go on to say a happy result of Agile Development is that many programmers are ‘test infected’. An agile team is happily test infected.

This essentially means that everyone is pulling for the team. Testing becomes a task rather than a role. What’s good for goose is good for the gander.

The aim is to deliver more value for the customers. Testing and the Testers mindset from the beginning of the project is an important part of the process as it can effect everything from requirements gathering through to installation and all points in between.  In requirements gathering we are questioning to ensure we build the right thing and during the build we are building it right!

If you are a developer who unfortunately does not have access to a (agile) tester you will need to take these skills on if your haven’t already.  I’ve personally been in the place a few times in the past and adopting the testers mindset and directing yourself to the most value adding tests results in a much better result.  This is not necessarily to be confused with the very specific role of Software Developer In Test which some teams employ – although the swarming, t-shaped skills mindset still kicks in to ensure the value (value trumps output) is delivered for the customer.

Key Takeaway

We can all learn from each other and develop those T-Shaped skills that help deliver solutions faster.  When we have testers available we can accelerate even more, when we don’t we need to fill the role ourselves.  Either way we should and need to be Test Infected.

With this important part of our toolkit, we can delight our customers and get onto the next great thing. A win-win.


Agile and Efficient Requirements Workshop Tips

Agile requirements gathering is an ongoing task that occurs throughout the build of an application or project.  We never, ever, generate the full requirements up front as this assumes we have learnt everything.  This is hardly ever the case as we learn as we go as we get better at the domain we are working in and the feedback we receive from users.  It also means we don’t waste time on ideas that may not be needed. This great article gives more reasons as well. We must be careful to also focus on goals and avoid creating solutions (e.g. the system shall…) as we gather requirements.

One of the tools available to a team is the Requirements Gathering Workshop.  This is a focused and time-boxed activity to increase our learning and understanding of the domain.  Gojko Adžić has written about this quite extensively.  Other ideas like Deliberate Discovery and Feature Injection assist as well.  But for workshops Gojko provides solid reasoning.

I’ve summarized his thoughts on requirements workshops from his book Bridging the Communication Gap.  He builds on this in his subsequent book Specification by Example.  If you buy Specification by Example you can get Bridging the Communication Gap for free from Gojko.  This is a summary so don’t expect a full explanation here.  Hopefully you still find similarity in your own experiences and a reason to seek out Gojko’s pragmatic and useful books.

He also gives great training (from what I hear/read from Perth Western Australia – he’s in the UK).  I also include this in my course on Agile Testing for which this post is also a little plug for.

  • Diversity is an advantage.   Avoids GroupThink and embraces Wisdom of Crowds.  Diversity includes different roles, backgrounds and don’t forget the stakeholders.
  • Agreement should be reached within the timebox. Max 4 hours for a two week iteration.
  • Knowledge Transfer is key. It will allow suspect issues to be surfaced quicker.
  • Challenging of ideas is encouraged until agreement is reached.
  • Ok to come to a workshop with ideas – but they need to be critiqued.
  • Go to the source – avoid third parties and telephone game info.
  • Output are examples, not solutions. This will limit flow and is the wrong time to discuss solutions.
  • Examples are good, the most important output is Shared Understanding
  • Run Feedback exercises to measure understanding. Differences in feedback indicates misunderstanding exists
  • Common Language to avoid translation between business and technical jargon.  Use the language of the domain.
  • Not a Meeting and favour smaller workshops to remain focused
  • Not a Presentation – not how the system will work.
  • Open Discussion focussed on goals

Who can Facilitate – a role for a Business Analyst

Don’t have access a professional facilitator?  Got a Business Analyst?  Use them.  The role business analysis is transformed in an agile team.  No need to fear as a BA can provide constant and valued input at an increased level of effectiveness than in a traditional process.

The role is transformed from ferryman of information using the lowest bandwidth communication (documents) to a facilitator using highest bandwidth communication (human communication face to face).  Developers benefit from your valued input via the facilitation during the workshop, chasing down pesky issues, chasing greater business value. Because they don’t miss the vital points and aren’t subject to ambiguity and misunderstanding as before, you’ll have time to do this.

By automating the specification into an executable specification trace-ability is improved and tracking of progress is improved as well.  Costs come down and more value is delivered quicker.  Value can be created elsewhere (see the Pareto chart here).

Your confidence goes up and stress levels come down and rituals like CYAM are removed.

The role of the BA has a lot to offer in an Agile setting!  Here’s a great drawing from Lynne Cazaly summarizing the role of a BA in a talk given by Bernd Schiffer and Chris Chan.

Role of BA