Category Archives: Testing

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.

 


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


ICAgile Agile Testing Expert Gate

In this recording of a webinar I participated in on January 28th 2015, Janet Gregory who is one of the track authors and has written the immensely popular Agile Testing with Lisa Crispin and now More Agile Testing again with Lisa Crispin, tells us about the criteria for achieving Expert Status in Agile Testing.

It’s quite a jump from taking a course and we learn that demonstrated experience over a number of years is key.  No exams here we emphatically say.

We also talk about the new book, More Agile Testing, and I pose some questions as well.  Janet and Lisa bring up Organisational culture early in the book and I commend them for this rather than assuming that it takes place.  I also liked the balanced reporting of views of the testing quadrants.  It’s mental model that has been in some quarters taken down in an unkind manner.  They report on the better variations and tell us not to take a ‘cookie cutter’ approach to its application.

We also had other panelists involved bringing in their expert views.  Thanks to Aldo Rall, Devin Hedge and Agile Bill Krebs.  Elinor Slomba once again handled the facilitation brilliantly over a difficult medium at times.


“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


Agile and Lean Bookshelf

Some books on lean and agile software development.  The list is still in development.  I’ve read all of these books and will not place books here that I have not read. Some books resonate more than others, but still don’t expect instant recall of all the detail – rather the key ideas and concepts and then drive into the detail if required.

You’ll find some books are relevant to more than one section, so they will be repeated in the sections in which they have relevance.

The Lean and Lean Startup Side

Lean Thinking: Banish Waste and Create Wealth in Your Corporation, Revised and Updated  The archetype Lean book for the Western Reader from leaders in the field. Real life case studies of people over process.
This is Lean: Resolving the Efficiency Paradox
Running Lean: Iterate from Plan A to a Plan That Works (Lean Series)
Kanban: Successful Evolutionary Change for Your Technology Business  Start with this for Kanban, let it sink in, read others and then come back to this.
Leading Lean Software Development: Results Are not the Point
The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses
The Goal: A Process of Ongoing Improvement
Kanban in Action  I nice start for those wanting to learn about Kanban, don’t ignore David Anderson’s book though!
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win  Systems Thinking for IT People.  Be nice to those Brent’s they only work in a system.
Lean from the Trenches: Managing Large-Scale Projects with Kanban
Kanban and Scrum – making the most of both (Enterprise Software Development)
Personal Kanban: Mapping Work | Navigating Life
Lean-Agile Software Development: Achieving Enterprise Agility
Lean Software Development: An Agile Toolkit
Lean Enterprise: Adopting Continuous Delivery, DevOps, and Lean Startup at Scale

The Agile and Lean Frameworks Side

Essential Scrum: A Practical Guide to the Most Popular Agile Process (Addison-Wesley Signature Series (Cohn))
Scrum Shortcuts without Cutting Corners: Agile Tactics, Tools, & Tips (Addison-Wesley Signature Series (Cohn))
Kanban: Successful Evolutionary Change for Your Technology Business
Scrumban – Essays on Kanban Systems for Lean Software Development (Modus Cooperandi Lean)
The Scrumban [R]Evolution: Getting the Most Out of Agile, Scrum, and Lean Kanban (Agile Software Development Series)
Real-World Kanban: Do Less, Accomplish More with Lean Thinking
Agile Project Management: Creating Innovative Products (2nd Edition)
Agile Software Development with Scrum (Series in Agile Software Development)
Kanban in Action
Agile Project Management with Kanban (Developer Best Practices)
Agile Project Management with Scrum (Developer Best Practices)
Lean from the Trenches: Managing Large-Scale Projects with Kanban
Kanban and Scrum – making the most of both (Enterprise Software Development)
Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, And Leave Competitors In the Dust
Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series)
Lean Software Development: An Agile Toolkit
Succeeding with Agile: Software Development Using Scrum
The Art of Agile Development
Disciplined Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the Enterprise (IBM Press)
Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise (Agile Software Development Series)
Scaling Software Agility: Best Practices for Large Enterprises
The Software Project Manager’s Bridge to Agility
Scrum and XP from the Trenches (Enterprise Software Development)
Actionable Agile Metrics for Predictability: An Introduction

The Technical Side

Domain-Driven Design: Tackling Complexity in the Heart of Software
Pair Programming Illuminated
ATDD by Example: A Practical Guide to Acceptance Test-Driven Development (Addison-Wesley Signature Series (Beck))
Agile Testing: A Practical Guide for Testers and Agile Teams
The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series)
Clean Code: A Handbook of Agile Software Craftsmanship
Code Complete: A Practical Handbook of Software Construction, Second Edition
The Pragmatic Programmer: From Journeyman to Master
Growing Object-Oriented Software, Guided by Tests
Agile Software Development, Principles, Patterns, and Practices
Patterns of Enterprise Application Architecture
Refactoring: Improving the Design of Existing Code
Refactoring to Patterns
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))
Continuous Integration: Improving Software Quality and Reducing Risk
Test Driven Development: By Example
Pattern-Oriented Software Architecture Volume 1: A System of Patterns
Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
Design Patterns: Elements of Reusable Object-Oriented Software
Extreme Programming Applied: Playing to Win
Writing Solid Code (20th Anniversary 2nd Edition)
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Working Effectively with Legacy Code
Dependency Injection in .NET
Effective Unit Testing: A guide for Java developers
The Art of Unit Testing: with Examples in .NET
Pragmatic Unit Testing in C# with NUnit

The Product Ownership and Agile Requirements Side

User Story Mapping
Scrum Product Ownership: Balancing Value from the Inside Out
Working Effectively with Legacy Code
User Stories Applied: For Agile Software Development
Agile Estimating and Planning
Agile Product Management with Scrum: Creating Products that Customers Love (Addison-Wesley Signature Series (Cohn))
Impact Mapping: Making a Big Impact with Software Products and Projects
Specification by Example: How Successful Teams Deliver the Right Software
Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing
The Principles of Product Development Flow: Second Generation Lean Product Development

The Agile Tester Side

Agile Testing: A Practical Guide for Testers and Agile Teams
More Agile Testing: Learning Journeys for the Whole Team
The Cucumber Book: Behaviour-Driven Development for Testers and Developers (Pragmatic Programmers)
Testing for Continuous Delivery with Visual Studio 2012 (Microsoft patterns & practices)
ATDD by Example: A Practical Guide to Acceptance Test-Driven Development (Addison-Wesley Signature Series (Beck))
Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration (Net Objectives Lean-Agile Series)
Specification by Example: How Successful Teams Deliver the Right Software
Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing
xUnit Test Patterns: Refactoring Test Code
Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing
Effective Unit Testing: A guide for Java developers
The Art of Unit Testing: with Examples in .NET
Pragmatic Unit Testing in C# with NUnit

The People Side

The Five Dysfunctions of a Team: A Leadership Fable
The Introvert Advantage: How to Thrive in an Extrovert World
Emotional Intelligence: Why It Can Matter More Than IQ
Fearless Change: Patterns for Introducing New Ideas
Turn the Ship Around!: A True Story of Turning Followers into Leaders
Management 3.0: Leading Agile Developers, Developing Agile Leaders (Addison-Wesley Signature Series (Cohn))
Peopleware: Productive Projects and Teams (3rd Edition)
Drive: The Surprising Truth About What Motivates Us
Slack: Getting Past Burnout, Busywork and the Myth of Total Efficiency
Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition (Addison-Wesley Signature Series (Cohn))
Death March (2nd Edition)
Agile Retrospectives: Making Good Teams Great
Software for Your Head: Core Protocols for Creating and Maintaining Shared Vision
The Core Protocols: A Guide to Greatness
Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers
Dynamics of Software Development
Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
Project Retrospectives: A Handbook for Team Reviews
The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully
Who Moved My Cheese?: An Amazing Way to Deal with Change in Your Work and in Your Life
The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change
Liftoff: Launching Agile Teams & Projects
The Fifth Discipline: The Art & Practice of The Learning Organization
Switch: How to Change Things When Change Is Hard
Start with Why: How Great Leaders Inspire Everyone to Take Action
Team of Teams: New Rules of Engagement for a Complex World
Principles Of Software Engineering Management
Emotional Intelligence 2.0
How to Win Friends & Influence People
Smart Questions: The Essential Strategy for Successful Managers
Great Boss Dead Boss Recommended by David Anderson in KCP Training. A model of identity.
Lessons in Agile Management: On the Road to Kanban
Thinking, Fast and Slow Science on how parts of the brain work. Involuntary vs Logical parts
Nonviolent Communication: A Language of Life, 3rd Edition: Life-Changing Tools for Healthy Relationships (Nonviolent Communication Guides) Judging or helping? Which is more helpful?

 The Organisational Side

Reinventing Organizations
Team of Teams: New Rules of Engagement for a Complex World
Maverick: The Success Story Behind the World’s Most Unusual Workplace
The Toyota Way: 14 Management Principles from the World’s Greatest Manufacturer
Toyota Kata: Managing People for Improvement, Adaptiveness and Superior Results
Why Plans Fail: Why Business Decision Making is More than Just Business (MemeMachine) (Volume 1)

 The Coaching Side

the act of coaching is distinct from the People and Organisational Sides although strongly linked

Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition (Addison-Wesley Signature Series (Cohn)) It’s a start but it won’t be enough
Executive Coaching with Backbone and Heart: A Systems Approach to Engaging Leaders with Their Challenges For real meat on the act of coaching. Years of experience here
Co-Active Coaching: Changing Business, Transforming Lives More meat on the idea that people have the ability to solve/change/improve their lives. Partnership wit a coach
The Coaching Habit: Say Less, Ask More & Change the Way You Lead Forever A good start, go to other sources still for more detail
A More Beautiful Question: The Power of Inquiry to Spark Breakthrough Ideas Build that muscle of inquiry first before jumping to a solution
Flawless Consulting: A Guide to Getting Your Expertise Used A consultant’s book every coach should have!

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