SlideShare a Scribd company logo
Ambiguous Requirements –
Translating the message from C-level
to implementation
IIBA Presentation, 24/04/2014, Salford, Manchester
Llyr Wyn Jones – Senior Programmer / Consultant – Grid-Tools Ltd.
Introduction
• Llyr Wyn Jones
• Senior Programmer, Grid-Tools Ltd.
• Graduated 2010 from the University of St. Andrews – Masters in Mathematics
(First Class)
• Certified Requirements-Based Testing (RBT) Practitioner
• Main roles: Programming; Software Design; Requirements and Test Case
Design Consultancy
• Specialist subjects: Test case design, requirement specifications, cryptography
• Contributor to Professional Tester Magazine, as well as writing white papers
for Grid-Tools Ltd.
Motivation – Why am I here?
• Using Requirement-Based Testing (RBT) methods on software projects,
discovered that, by the time a project gets to the testing phase, realizing
cost/quality/time projections depends on what has gone before (i.e. it’s too late
to do anything about it!)
• The majority of project overruns are caused by poor and/or ambiguous
requirements.
• C-level executives do not speak the same language as a database coder (for
example).
• As a business analyst, it is critical to be able to write requirements that can be
understood by both the user (e.g. CIO) and the person(s) implementing it (e.g.
the programmers and testers).
Cost Projection via Unambigious Requirements
• The white paper “Cost, Complexity and Coverage” was written to address the
problem of calculating project cost by considering the number of testable
requirements in a software project.
• Built on the work of Peter B. Wilson (“Sizing Software With Testable
Requirements”).
• Using a mathematical model of requirements (see Appendix), shown how
ambiguities can increase the variance of cost projections (i.e. the margin of error
increases in proportion with the “quality” of requirements)
• You may ask yourself: What has this got to do with C-level visions?
Clarity of Vision via Unambiguous Requirements
• The same mathematical model can be employed to show how ambiguities
increase the margin of error as it travels through the project lifecycle.
• We focus on software projects, but it applies to ALL projects – for non-software
projects, if we define a “defect” as “an instance where the implementation differs
from the high-level requirement”, then the problem is reduced to that of a
software project.
• Throughout, we use the above definition of a defect (otherwise referred to as a
‘bug’).
Example: A typical development process
Business Analyst Programmer TesterUser
The User Knows what they want
The Analyst specifies what that is
The Programmer writes the code
The Tester tests the program
The further the visions diverge The greater the problems
Clarity and Vision during development
Business Analyst Programmer TesterUser
There are less bugs and the product is delivered faster
The closer the vision means the user gets a quality product
Clarity and Vision during development
Business Analyst Programmer TesterUser
Verify & Clarify Clear Logic Test Cases
Agile-
Designer
Design
Tests
Design Data
• Minimum
• Optimal
• Find it
• Make it The scope for ambiguity is
much less
The product is of higher
quality and is delivered faster
Vision Convergence – Unambiguous Requirements
• The key to ‘converging the vision’ is making sure that the requirements are:
• Unambiguous
• Can be understood by everyone reading them.
• The first can be achieved by putting the requirements through a formal
“ambiguity review” process, which involves analyzing the language used and
making sure that the requirements can be interpreted in one and only one way.
• The second is a bit more difficult to achieve, but can be done by sub-dividing
requirements such that:
• Each sub-division level is more granular than the last.
• Sub-requirements add up to the higher-level requirement.
• Each sub-requirement is unambiguous.
• Each sub-requirement can be understood by the appropriate person.
Examples of Ambiguities
• Dangling Else
• All “If” clauses must have an “else”
• Non-exhaustive case statements must have an “else”
• Ambiguity of Reference
• Consistently use explicit variable names.
• Scope of Action
• Use tables, explicit lists.
• Omissions
• Structure and reviews improve completeness
• Ambiguous Logical Operators
• Use restricted set
• Use brackets
Examples of Ambiguities
• Negation
• Use brackets
• Put negatives last in list
• Ambiguous Statements
• Use explicit variable names
• Use restricted set of qualifiers
• Random Organisation
• Sequence set by “If, then, else” statements.
• Built-In Assumptions
• Use restricted set of terms
• Factor in environmental constraints
• Add a glossary of terms
Examples of Ambiguities
• Ambiguous Precedence Relationships
• Decision making very structured
• Implicit Cases
• Else clauses qualified with description
• Etc.
• All variables explicit
• All processes explicit
• i.e. versus e.g.
• Correct usage defined
• Temporal Ambiguity
• Timing explicit
• Boundary Ambiguity
• Boundaries explicit
Sub-dividing Requirements
• Using the classical model of software requirements, outline the high-level
requirements:
Highest Level Requirements
Account Management
Security
Payments
Integration With Orders System
Sub-dividing Requirements
• For each high-level requirement, sub-divide into lower-level requirements:
Highest Level Requirements Next Level
Account Management Add Account
Delete Account
….
Security Password security
Payment details security
…
Sub-dividing Requirements
• Continue (usually three or four levels of subdivision suffice) until the entire
requirement has been fully specified:
Highest Level Next Level Lowest Level
Account Management Add Account Customer First Name
Customer Last Name
Customer Address
The Importance of Sub-division
• Sub-division allows for the business analyst to write a requirement in many
different ways – so that the requirement can be understood by everyone involved
from conception to implementation.
• Granularity increases along the way – this eases the process of passing the vision
down the hierarchy (not unlike an organizational hierarchy)
• For each requirement, it is critical that it’s constituent parts sum up to the whole:
this ensures that they say the same thing.
• Ambiguity is strongly discouraged at every step: each ambiguity results in a
divergence from the vision.
• Each level of granularity needs to be understood by the appropriate person – else
the whole exercise is a waste.
The Bottom Line – Ambiguities Results in Divergence
• Using the mathematical model used for cost projection, ambiguities result in
increased margins of error.
• Using the same reasoning, it can be shown that ambiguities directly results in
divergence from the high-level vision.
• By the time the implementation is reviewed by the C-Level executive, it is too
late, and correcting the ‘defects’ will take time and money.
• Delivering quality projects, on time and to specification, requires eliminating this
divergence – hence, better and less ambiguous requirements are the order of the
day.
Thank you for listening
Cost Projection Mathematical Model
The User knows what they want
The Analyst specifies what it is
The Programmer writes the code
The Tester tests the solution
Cost Projection Mathematical Model
• For this analysis, we model ‘requirement sets’ simply as sets of requirements as
understood by the particular group (e.g. the user has his set of interpretations,
marked in red, while the analyst has his set of interpretations, marked in violet,
and the intersection is what is understood commonly by the two).
• We will be introducing the Hausdorff metric to measure the differences between
the interpretations of each group (basically, treating the sets as geometric spaces
and then using the Hausdorff metric to measure distance between the spaces, as
we would do a geometric space).
Cost Projection Mathematical Model
Cost Projection Mathematical Model
Cost Projection Mathematical Model
Cost Projection Mathematical Model

More Related Content

What's hot

Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurancegopal10scs185
 
A Survey Of Agile Development Methodologies
A Survey Of Agile Development MethodologiesA Survey Of Agile Development Methodologies
A Survey Of Agile Development Methodologies
Abdul Basit
 
Various types of software testing by kostcare | London | Waterloo
Various types of software testing by kostcare | London | WaterlooVarious types of software testing by kostcare | London | Waterloo
Various types of software testing by kostcare | London | Waterloo
KostCare
 
Types of program testings and errors
Types of program testings and errorsTypes of program testings and errors
Types of program testings and errorsAmiirah Camall Saib
 
Structural and functional testing
Structural and functional testingStructural and functional testing
Structural and functional testing
Himanshu
 
White box testing
White box testingWhite box testing
White box testing
Abdul Basit
 
UNIT testing
UNIT testingUNIT testing
UNIT testing
SKMohamedKasim
 
White Box Testing
White Box TestingWhite Box Testing
White Box Testing
Alisha Roy
 
Data Generation with PROSPECT: a Probability Specification Tool
Data Generation with PROSPECT: a Probability Specification ToolData Generation with PROSPECT: a Probability Specification Tool
Data Generation with PROSPECT: a Probability Specification Tool
Ivan Ruchkin
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
HendMuhammad
 
Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07uShubham Sharma
 
Solid principles
Solid principlesSolid principles
Solid principles
Kumaresh Chandra Baruri
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
RacingKings
 
Black box testing
Black box testingBlack box testing
Black box testing
Abdul Basit
 
White box testing
White box testingWhite box testing
White box testing
Neethu Tressa
 
Test Case Design and Technique
Test Case Design and TechniqueTest Case Design and Technique
Test Case Design and Technique
Sachin-QA
 
Mca se chapter_9_formal_methods
Mca se chapter_9_formal_methodsMca se chapter_9_formal_methods
Mca se chapter_9_formal_methods
Aman Adhikari
 
Can F# make us better as .NET developers?
Can F# make us better as .NET developers?Can F# make us better as .NET developers?
Can F# make us better as .NET developers?
Kevin Avignon
 
DISE - Programming Concepts
DISE - Programming ConceptsDISE - Programming Concepts
DISE - Programming Concepts
Rasan Samarasinghe
 

What's hot (20)

Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurance
 
A Survey Of Agile Development Methodologies
A Survey Of Agile Development MethodologiesA Survey Of Agile Development Methodologies
A Survey Of Agile Development Methodologies
 
Various types of software testing by kostcare | London | Waterloo
Various types of software testing by kostcare | London | WaterlooVarious types of software testing by kostcare | London | Waterloo
Various types of software testing by kostcare | London | Waterloo
 
Types of program testings and errors
Types of program testings and errorsTypes of program testings and errors
Types of program testings and errors
 
Structural and functional testing
Structural and functional testingStructural and functional testing
Structural and functional testing
 
White box testing
White box testingWhite box testing
White box testing
 
UNIT testing
UNIT testingUNIT testing
UNIT testing
 
White Box Testing
White Box TestingWhite Box Testing
White Box Testing
 
Data Generation with PROSPECT: a Probability Specification Tool
Data Generation with PROSPECT: a Probability Specification ToolData Generation with PROSPECT: a Probability Specification Tool
Data Generation with PROSPECT: a Probability Specification Tool
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07u
 
Solid principles
Solid principlesSolid principles
Solid principles
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Black box testing
Black box testingBlack box testing
Black box testing
 
White box testing
White box testingWhite box testing
White box testing
 
Test Case Design and Technique
Test Case Design and TechniqueTest Case Design and Technique
Test Case Design and Technique
 
Mca se chapter_9_formal_methods
Mca se chapter_9_formal_methodsMca se chapter_9_formal_methods
Mca se chapter_9_formal_methods
 
Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Can F# make us better as .NET developers?
Can F# make us better as .NET developers?Can F# make us better as .NET developers?
Can F# make us better as .NET developers?
 
DISE - Programming Concepts
DISE - Programming ConceptsDISE - Programming Concepts
DISE - Programming Concepts
 

Viewers also liked

Lecture 2: From Semantics To Semantic-Oriented Applications
Lecture 2: From Semantics To Semantic-Oriented ApplicationsLecture 2: From Semantics To Semantic-Oriented Applications
Lecture 2: From Semantics To Semantic-Oriented Applications
Marina Santini
 
Ambiguous Sentences and Headlines
Ambiguous Sentences and HeadlinesAmbiguous Sentences and Headlines
Ambiguous Sentences and Headlines
pgongary
 
anaphora and deixis
anaphora and deixisanaphora and deixis
anaphora and deixisEika Razi
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
Hywel Evans
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
T'cher June
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
Jose Herrera
 
Structural ambiguity
Structural ambiguityStructural ambiguity
Structural ambiguity
Asif Ali Raza
 

Viewers also liked (10)

Lecture 2: From Semantics To Semantic-Oriented Applications
Lecture 2: From Semantics To Semantic-Oriented ApplicationsLecture 2: From Semantics To Semantic-Oriented Applications
Lecture 2: From Semantics To Semantic-Oriented Applications
 
Ambiguous Sentences and Headlines
Ambiguous Sentences and HeadlinesAmbiguous Sentences and Headlines
Ambiguous Sentences and Headlines
 
Linguistics5
Linguistics5         Linguistics5
Linguistics5
 
anaphora and deixis
anaphora and deixisanaphora and deixis
anaphora and deixis
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
 
AMBIGUITY IN A LANGUAGE
AMBIGUITY IN A LANGUAGEAMBIGUITY IN A LANGUAGE
AMBIGUITY IN A LANGUAGE
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
 
Ambiguity
AmbiguityAmbiguity
Ambiguity
 
Structural ambiguity
Structural ambiguityStructural ambiguity
Structural ambiguity
 
Ppt semantic
Ppt semanticPpt semantic
Ppt semantic
 

Similar to Ambiguous Requirements – Translating the message from C-level to implementation

Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 
Introduction to Software Engineering and Software Process Models
Introduction to Software Engineering and Software Process ModelsIntroduction to Software Engineering and Software Process Models
Introduction to Software Engineering and Software Process Models
santoshkawade5
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
MrVinothKumarLAsstPr
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process ModelsEducation Front
 
Software process models shaukat wasi
Software process models shaukat wasiSoftware process models shaukat wasi
Software process models shaukat wasi
Dr. Shaukat Wasi
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
Azhar Shaik
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
AnkitKumar891632
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
MohammadSamiuddin10
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniques
Ashutosh Garg
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniques
2PiRTechnologies
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
Damian T. Gordon
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applicationsnadeembtech
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Cost estimation
Cost estimationCost estimation
Cost estimation
Nameirakpam Sundari
 

Similar to Ambiguous Requirements – Translating the message from C-level to implementation (20)

Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 
Introduction to Software Engineering and Software Process Models
Introduction to Software Engineering and Software Process ModelsIntroduction to Software Engineering and Software Process Models
Introduction to Software Engineering and Software Process Models
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
Software process models shaukat wasi
Software process models shaukat wasiSoftware process models shaukat wasi
Software process models shaukat wasi
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Development Guideline
Development GuidelineDevelopment Guideline
Development Guideline
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniques
 
Test case design techniques
Test case design techniquesTest case design techniques
Test case design techniques
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
Software process models
Software process modelsSoftware process models
Software process models
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Cost estimation
Cost estimationCost estimation
Cost estimation
 

Recently uploaded

May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

Ambiguous Requirements – Translating the message from C-level to implementation

  • 1. Ambiguous Requirements – Translating the message from C-level to implementation IIBA Presentation, 24/04/2014, Salford, Manchester Llyr Wyn Jones – Senior Programmer / Consultant – Grid-Tools Ltd.
  • 2. Introduction • Llyr Wyn Jones • Senior Programmer, Grid-Tools Ltd. • Graduated 2010 from the University of St. Andrews – Masters in Mathematics (First Class) • Certified Requirements-Based Testing (RBT) Practitioner • Main roles: Programming; Software Design; Requirements and Test Case Design Consultancy • Specialist subjects: Test case design, requirement specifications, cryptography • Contributor to Professional Tester Magazine, as well as writing white papers for Grid-Tools Ltd.
  • 3. Motivation – Why am I here? • Using Requirement-Based Testing (RBT) methods on software projects, discovered that, by the time a project gets to the testing phase, realizing cost/quality/time projections depends on what has gone before (i.e. it’s too late to do anything about it!) • The majority of project overruns are caused by poor and/or ambiguous requirements. • C-level executives do not speak the same language as a database coder (for example). • As a business analyst, it is critical to be able to write requirements that can be understood by both the user (e.g. CIO) and the person(s) implementing it (e.g. the programmers and testers).
  • 4. Cost Projection via Unambigious Requirements • The white paper “Cost, Complexity and Coverage” was written to address the problem of calculating project cost by considering the number of testable requirements in a software project. • Built on the work of Peter B. Wilson (“Sizing Software With Testable Requirements”). • Using a mathematical model of requirements (see Appendix), shown how ambiguities can increase the variance of cost projections (i.e. the margin of error increases in proportion with the “quality” of requirements) • You may ask yourself: What has this got to do with C-level visions?
  • 5. Clarity of Vision via Unambiguous Requirements • The same mathematical model can be employed to show how ambiguities increase the margin of error as it travels through the project lifecycle. • We focus on software projects, but it applies to ALL projects – for non-software projects, if we define a “defect” as “an instance where the implementation differs from the high-level requirement”, then the problem is reduced to that of a software project. • Throughout, we use the above definition of a defect (otherwise referred to as a ‘bug’).
  • 6. Example: A typical development process Business Analyst Programmer TesterUser The User Knows what they want The Analyst specifies what that is The Programmer writes the code The Tester tests the program The further the visions diverge The greater the problems
  • 7. Clarity and Vision during development Business Analyst Programmer TesterUser There are less bugs and the product is delivered faster The closer the vision means the user gets a quality product
  • 8. Clarity and Vision during development Business Analyst Programmer TesterUser Verify & Clarify Clear Logic Test Cases Agile- Designer Design Tests Design Data • Minimum • Optimal • Find it • Make it The scope for ambiguity is much less The product is of higher quality and is delivered faster
  • 9. Vision Convergence – Unambiguous Requirements • The key to ‘converging the vision’ is making sure that the requirements are: • Unambiguous • Can be understood by everyone reading them. • The first can be achieved by putting the requirements through a formal “ambiguity review” process, which involves analyzing the language used and making sure that the requirements can be interpreted in one and only one way. • The second is a bit more difficult to achieve, but can be done by sub-dividing requirements such that: • Each sub-division level is more granular than the last. • Sub-requirements add up to the higher-level requirement. • Each sub-requirement is unambiguous. • Each sub-requirement can be understood by the appropriate person.
  • 10. Examples of Ambiguities • Dangling Else • All “If” clauses must have an “else” • Non-exhaustive case statements must have an “else” • Ambiguity of Reference • Consistently use explicit variable names. • Scope of Action • Use tables, explicit lists. • Omissions • Structure and reviews improve completeness • Ambiguous Logical Operators • Use restricted set • Use brackets
  • 11. Examples of Ambiguities • Negation • Use brackets • Put negatives last in list • Ambiguous Statements • Use explicit variable names • Use restricted set of qualifiers • Random Organisation • Sequence set by “If, then, else” statements. • Built-In Assumptions • Use restricted set of terms • Factor in environmental constraints • Add a glossary of terms
  • 12. Examples of Ambiguities • Ambiguous Precedence Relationships • Decision making very structured • Implicit Cases • Else clauses qualified with description • Etc. • All variables explicit • All processes explicit • i.e. versus e.g. • Correct usage defined • Temporal Ambiguity • Timing explicit • Boundary Ambiguity • Boundaries explicit
  • 13. Sub-dividing Requirements • Using the classical model of software requirements, outline the high-level requirements: Highest Level Requirements Account Management Security Payments Integration With Orders System
  • 14. Sub-dividing Requirements • For each high-level requirement, sub-divide into lower-level requirements: Highest Level Requirements Next Level Account Management Add Account Delete Account …. Security Password security Payment details security …
  • 15. Sub-dividing Requirements • Continue (usually three or four levels of subdivision suffice) until the entire requirement has been fully specified: Highest Level Next Level Lowest Level Account Management Add Account Customer First Name Customer Last Name Customer Address
  • 16. The Importance of Sub-division • Sub-division allows for the business analyst to write a requirement in many different ways – so that the requirement can be understood by everyone involved from conception to implementation. • Granularity increases along the way – this eases the process of passing the vision down the hierarchy (not unlike an organizational hierarchy) • For each requirement, it is critical that it’s constituent parts sum up to the whole: this ensures that they say the same thing. • Ambiguity is strongly discouraged at every step: each ambiguity results in a divergence from the vision. • Each level of granularity needs to be understood by the appropriate person – else the whole exercise is a waste.
  • 17. The Bottom Line – Ambiguities Results in Divergence • Using the mathematical model used for cost projection, ambiguities result in increased margins of error. • Using the same reasoning, it can be shown that ambiguities directly results in divergence from the high-level vision. • By the time the implementation is reviewed by the C-Level executive, it is too late, and correcting the ‘defects’ will take time and money. • Delivering quality projects, on time and to specification, requires eliminating this divergence – hence, better and less ambiguous requirements are the order of the day.
  • 18. Thank you for listening
  • 19. Cost Projection Mathematical Model The User knows what they want The Analyst specifies what it is The Programmer writes the code The Tester tests the solution
  • 20. Cost Projection Mathematical Model • For this analysis, we model ‘requirement sets’ simply as sets of requirements as understood by the particular group (e.g. the user has his set of interpretations, marked in red, while the analyst has his set of interpretations, marked in violet, and the intersection is what is understood commonly by the two). • We will be introducing the Hausdorff metric to measure the differences between the interpretations of each group (basically, treating the sets as geometric spaces and then using the Hausdorff metric to measure distance between the spaces, as we would do a geometric space).