13 Continuous and Collaborative Validation: A Field Study of Requirements Knowledge in AgilePresentation Transcript
Continuous and Collaborative Validation Rosalva E. Gallardo-Valencia and Susan Elliott Sim A Field Study of Requirements Knowledge in Agile University of California, Irvine MARK’09 - Second International Workshop on Managing Requirements Knowledge
Agile methods used: Scrum, daily stand-up meeting, user stories, continuous integration, on-site customer, and automated acceptance testing.
Written and Live Requirements Knowledge
Requirements Knowledge in Agile – Pre-Iteration Business People Scrum Master Product Owner Programmers Testers C |EMCV US = User Story 1.1 Request functionality - |E-C- 1.2 Talk about functionality C |E-C- 1.3 Present requested functionality C |--C- 1.4 Ask questions and identify sw pieces C |-MCV Brainstorming Meeting 1.5 Ask for estimation of US C |-M-- Iteration Prioritization Meeting 1.6 Ask for priority of US C |EM-- 1.7 Ask for details and satisfaction conditions C |E-CV US Checklists 1.8 Fill out - |-M-- 1.9 Ask questions, if needed C |E-CV
Requirements Knowledge in Agile – Iteration Planning Business People Scrum Master Product Owner Programmers Testers C |EMCV Iteration Planning Meeting US = User Story 2.3 Ask questions to determine tasks C |-MCV - |-MC- USs 2.2 Create 2.1 Explain USs C |--C- C |-MCV 2.4 Coordinate tasks and test cases needed -|-MC- Task Cards 2.5 Create Test Cards 2.5 Create
Requirements Knowledge in Agile – Intra-Iteration Business People Scrum Master Product Owner Programmers Testers C |EMCV US = User Story C |-MCV 3.2 Ask questions about functionality - |-MC- High Level Test Cases 3.1 Write C |E-CV 3.3 Ask questions, if needed 3.4 Update - |-MC- - |-MC- Acceptance Test Cases 3.5 Write C |-MCV 3.6 Ask questions about functionality C |E-CV 3.7 Ask questions, if needed 3.8 Ask for background info about functionality C |--C- - |--C- High Level Test Cases 3.9 Read C |E-CV 3.11 Ask questions, if needed C |-MCV 3.10 Ask questions about functionality - |---- Unit Test Cases 3.12 Write - |---- Code 3.13 Write - |---V Acceptance Test Cases 3.14 Run C |--C- 3.15 Give feedback about Acceptance Test Cases
Agile Validation is Continuous
Validation takes place before and during each iteration.
Written and live knowledge used to validate requirements - Conversations between Testers and PO, PO and Business People, and Programmers and PO. Acceptance Test Cases Intra-Iteration - Conversations between Programmers and PO, and Testers and PO. - Conversations between Programmers and Testers. - Iteration Planning - Conversations between Programmers and PO, and Testers and PO. - Conversations between PO and Business People. - Pre-Iteration Live Knowledge Written Knowledge Stage
Agile Validation is Continuous
Within an iteration, user stories are validated individually.
Shared understanding of the user story.
A user story is validated when:
It is discussed.
It is broken down into tasks and tests.
It is written on index cards.
High level test cases are created.
Acceptance test cases are run.
Agile Validation is Collaborative
Every member of the development team is responsible for validation.
Members ask questions to make sure they have the correct understanding.
The Product Owner, Programmers, and Testers can trigger validation and also validate requirements.
If the Product Owner misses some details, these could be discovered later in the iteration by other team members.
For practitioners of agile
Think about test cases and acceptance criteria during requirements elicitation.
Encourage question asking.
Write test cases even for the obvious success scenarios.
Broaden the definition of validation to include activities that ensure that a software system is being built to the customer’s satisfaction in the absence of a specification document.
Analyze interview data from two other field sites.
Compare and contrast requirements knowledge and agile validation among the three field sites.
Look for companies that use agile practices and observe their software team.
Traditional definitions of Requirements Validation do not fit agile practices.
We performed a field site to study Agile Validation of written and live Requirements Knowledge.
How is Agile Validation of Requirements Knowledge performed?
It is done mainly through conversations around user stories, checklists, and test cases.
It is done before the iteration starts and during each iteration.