SlideShare a Scribd company logo
Addressing
Nonfunctional Requirements
Version May 16th
Mario Cardinal
Agile Coach & Software Architect
www.mariocardinal.com
• Agile Coach & Software architect
• Leading independent consultant
• www.mariocardinal.com
Who am I ?
"The real voyage of discovery consists, not in seeking new landscapes, but in
having new eyes.”
Marcel Proust
A. Nonfunctional requirements
– External and internal quality
B. Functional requirements and agile
framework
C. Nonfunctional requirements and agile
framework
Why are we here?
Agenda
Addressing Nonfunctional
Requirements
Section A
Nonfunctional requirements
Nonfunctional Requirements
What are they?
• Specify"howwell"the"what"mustbehave
• Notaboutnewfeaturestodeliver,butratheraboutdesirable
characteristicsofexistingfeatures
• Setconstraintsthattypicallycutacrossfunctional
requirements
• Alsoknownas"technicalrequirements",“quality
attributes”or"qualityofservicerequirements“
Nonfunctional Requirements
It is all about quality
Canbedividedintotwomaincategories:
1. Externalqualitysuchasperformance,correctness,security
andusability,whichcarryoutthesoftware'sfunctionsat
runtime,andassuch,isnotonlyvisiblebystakeholdersbut
alsohighlydesirable
2. Internalqualitysuchasmaintainability,modifiabilityand
testability,whichisbarelyvisiblebystakeholdersbut
simplifyhowtobuildthesoftware
Nonfunctional Requirements
Knowledge is not experience
• Idonotintendtotellyouhowtosatisfythemany
nonfunctionalrequirements
• Itisaskillthatoneacquireswithexperience
Nonfunctional Requirements
I aim for a simpler goal
• IwillexplainhowtotranslateNonfunctional
requirementsintorestrictions
• Restrictionssetalimittocomplywith
• Restrictionsguideyourwork
• Restrictionshelpdeterminewhetheryouhavesatisfiedthe
nonfunctionalrequirements
Nonfunctional Requirements
Need to review functional requirements
• Constraintsweavethroughthefunctional
requirements
Addressing Nonfunctional
Requirements
Section B
Functional requirements
and
agile framework
Functional Requirements
Express desirements with user stories
• Auserstoryisashortdescriptionwrittenineveryday
languagethatrepresentsadiscretepieceof
demonstrablefunctionality
• Itisadesirableoutcomebystakeholders
• Classictemplate
• “Asa<role>,Iwant<goal>sothat<benefit>”
Functional Requirements
Example: User stories for a TransitAuthority
• Asa<student>,Iwant<tobuyapassvalidonlyon
schooldays>sothatIcan<gotoschool>
• Asa<worker>,Iwant<tobuyamonthlypass>sothat
Ican<gotowork>
• Ascenarioisaconcreteexamplewrittenineveryday
language
• Itdescribesasignificantexercisethatisrequiredforthe
fulfillmentofauserstory
Functional Requirements
Illustrate User Story with scenarios
Action
Precondition
Consequence
describes the current state of the system
describes a transition or stimulus to that system
describes the resulting state of the system
Functional Requirements
Confirm success criteria with scenarios
• Scenariosestablishtheconditionsofacceptation
• Scenariosareconcreteexamplesthatsaysinthewords
ofthestakeholdershowtheyplantoverifythe
desirableoutcome
• Scenariosenablestheteamtoknowwhentheyare
done
• Scenariosareaspecificationasimportant,ifnotmore
important,thanstories
Functional Requirements
Express scenarios with formality
Givenoneprecondition
Andanotherprecondition
Andyetanotherprecondition
Whenanactionoccurs
Thenaconsequence
Andanotherconsequence
Functional Requirements
Express scenarios with formality
Givenanemptyshoppingcartiscreated
Andamonthlystudentpassisaddedtoshoppingcart
Whenbuyercheckouttheshoppingcart
Thena76dollarssaleoccurred
Addressing Nonfunctional
Requirements
Section C
Nonfunctional requirements
and
agile framework
Nonfunctional Requirements
Two categories of constraint
• Externalquality
• Restrictionsimposeconditionsthatsetsalimittocomply
duringsoftwareexecution
• Internalquality
• Practicesensurethatthesoftwareconstructionisdone
correctly
External Quality
What is it?
Nonfunctional
Requirement
Definition
Correctness Ability with which the software respects the specification.
Performance Ease with which the software is doing the work it is supposed to do. Usually it is
measured as a response time or a throughput.
Reliability Ability with which the software performs its required functions under stated
conditions for a specified period of time.
Robustness Ability with which the software copes with errors during execution.
Scalability Ability with which the software handles growing amounts of work in a graceful
manner.
Security Degree to which the software protects against threats.
Usability Ease with which the software can be used by specific users to achieve specific
goals.
External Quality
Restrictions should be SMART
• Specific
• Itshouldtargetapieceoffunctionalitythatissmall,consistentandsimple
• Measurable
• Itimposesalimitthatismeasurable,otherwisehowwouldyouknow
whenyou’veaddressedit
• Attainable
• Itisrecognizedasachievablebytheteam
• Relevant
• Itisdirectlyrelated,connected,andpertinenttothenonfunctional
requirement
• Traceable
• Itislinkedwitharequirementandatargetthatjustifieswhyitexists
Restriction
The most important element is the ‘measure’
• Easiertoimposeifyou
• Reducethescaleofwhatneedstobemeasured
• Reducefunctionalscope
Restriction
Reduce the functional scope to a scenario
• Arestrictionisaddressedsidebysidewithitslinked
functionalscope
Nonfunctional Requirements
What about User Story?
• Cannotbesatisfiedinafiniteperiodoftime
• The“what”thatneedstoberestrictedisnotconcrete
enough
• Thefunctionalscopeisfuzzybecauseitisaniteration
• Caneasilyinducetechnicaldebt
• Oncethestoryiscompleted,youmustputitbackinthe
backlogtomakeitavailableagainforafutureiteration
• Complicatesthemanagementofthebacklogunduly
Restriction
Reduce the functional scope to a scenario
• Linkingrestrictionswithscenariosisaprocessed
repeatedstoryafterstory
Restriction
Set Explicit Quality Objectives
Restriction
Set restrictions with formality
Givenoneprecondition
Andanotherprecondition
Andyetanotherprecondition
Restrictafterxoccurrencewithameasurablequality
objective
Thenaconsequence
Andanotherconsequence
Restriction
Set expectations with formality
Restrictwithresponsetimelessthan5seconds
Restriction
Set positive expectations (Happy path)
Giventhebuyerisuser‘KnownBuyer’
Restrictwiththebuyertobeauthenticatedpositively
Restriction
Set negative expectations
Giventhebuyerisuser‘UnknownBuyer’
Restrictwiththebuyertobeauthenticatednegatively
Thenissueissavedinsecuritydatabaseanduserisredirectedto
“Login”page
External Quality
Test Restrictions with Proven Practices
• Accessibility:Verifyvisualimpairments,mobilitydifficulty,hearing
inabilityandcognitivedisabilities
• Correctness:Determineifthesoftwarerespectsthespecification
(Acceptancetesting)
• Performance:Measureresponsetimeandinspectthroughput
• Reliability:Seekforextraordinaryresourceconsumptionovera
specifiedperiodoftime(memory,CPU,diskspace)
External Quality
Test Restrictions with Proven Practices
• Robustness:Determineabilityofthesoftwaretofunction
correctlyinthepresenceofinvalidinputsorstressful
environmentalconditions
• Scalability:Verifysoftwarebehaviorunderbothnormaland
anticipatedpeakloadconditions(Loadtesting)
• Security:Performintrusiondetectionandvulnerabilityscanning
• Usability:Conductheuristicevaluation,consistencyinspection
andactivityanalysistoverifyifusersachievespecifiedgoals
External Quality
Less is more
• Negotiatewithstakeholderstoreducenumberof
restrictions
• Isit«really,really»adesirableoutcome?
• Trytotargetaspecificiterationfortestinga
nonfunctionalrequirement
• Benefit:Transformfromarecurrentconcerntoaone-time
concern
• Reduce the scope of requirements
– User Story
– Scenario
• Start expressing Restriction
– Add restrictions as success criteria
Next Steps
What should you do tomorrow?

More Related Content

What's hot (20)

Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
Ian Sommerville
 
Design for non functional requirements
Design for non functional requirementsDesign for non functional requirements
Design for non functional requirements
Habeeb Mahaboob
 
Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)
Sanjay Kumar
 
Non-Functional Requirements
Non-Functional RequirementsNon-Functional Requirements
Non-Functional Requirements
Yuriy Guts
 
Non functional performance requirements v2.2
Non functional performance requirements v2.2Non functional performance requirements v2.2
Non functional performance requirements v2.2
Ian McDonald
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Ayaz Shariff
 
Non functional requirement
Non functional requirementNon functional requirement
Non functional requirement
Getacher Zewudie
 
business requirements functional and non functional
business requirements functional and  non functionalbusiness requirements functional and  non functional
business requirements functional and non functional
CHANDRA KAMAL
 
Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?
Evgeniy Labunskiy
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Syed Zaid Irshad
 
Requirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specificationRequirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specification
Wolfgang Kuchinke
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Slideshare
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
Gang Tao
 
Introduction to Requirement engineering
Introduction to Requirement engineeringIntroduction to Requirement engineering
Introduction to Requirement engineering
Nameirakpam Sundari
 
Using Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A SimplifiedUsing Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A Simplified
cbb010
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Sweta Kumari Barnwal
 
Software engineering
Software engineeringSoftware engineering
Software engineering
suganyasanjai
 
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
SivaRamaSundar Devasubramaniam
 
Software testing
Software testingSoftware testing
Software testing
Aman Adhikari
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
Ahmed Alageed
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
Ian Sommerville
 
Design for non functional requirements
Design for non functional requirementsDesign for non functional requirements
Design for non functional requirements
Habeeb Mahaboob
 
Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)
Sanjay Kumar
 
Non-Functional Requirements
Non-Functional RequirementsNon-Functional Requirements
Non-Functional Requirements
Yuriy Guts
 
Non functional performance requirements v2.2
Non functional performance requirements v2.2Non functional performance requirements v2.2
Non functional performance requirements v2.2
Ian McDonald
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
Ayaz Shariff
 
Non functional requirement
Non functional requirementNon functional requirement
Non functional requirement
Getacher Zewudie
 
business requirements functional and non functional
business requirements functional and  non functionalbusiness requirements functional and  non functional
business requirements functional and non functional
CHANDRA KAMAL
 
Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?
Evgeniy Labunskiy
 
Requirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specificationRequirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specification
Wolfgang Kuchinke
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Slideshare
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
Gang Tao
 
Introduction to Requirement engineering
Introduction to Requirement engineeringIntroduction to Requirement engineering
Introduction to Requirement engineering
Nameirakpam Sundari
 
Using Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A SimplifiedUsing Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A Simplified
cbb010
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Sweta Kumari Barnwal
 
Software engineering
Software engineeringSoftware engineering
Software engineering
suganyasanjai
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
Ahmed Alageed
 

Viewers also liked (11)

Handling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile ProjectHandling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile Project
Ken Howard
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements framework
wweinmeyer79
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirements
Pavel Růžička
 
Testing of non functional requirements in agile
Testing of non functional requirements in agileTesting of non functional requirements in agile
Testing of non functional requirements in agile
Subrahmaniam S.R.V
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
Mario Cardinal
 
SPM 5 - Release Planning
SPM 5 - Release PlanningSPM 5 - Release Planning
SPM 5 - Release Planning
Garm Lucassen
 
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based PrioritizationPMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
Thanh Nguyen
 
Agile requirements discovery
Agile requirements discoveryAgile requirements discovery
Agile requirements discovery
Mario Cardinal
 
Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.
Mario Cardinal
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
Sandra Svanidzaitė, PhD, CBAP
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Handling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile ProjectHandling Non Functional Requirements on an Agile Project
Handling Non Functional Requirements on an Agile Project
Ken Howard
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements framework
wweinmeyer79
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirements
Pavel Růžička
 
Testing of non functional requirements in agile
Testing of non functional requirements in agileTesting of non functional requirements in agile
Testing of non functional requirements in agile
Subrahmaniam S.R.V
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
Mario Cardinal
 
SPM 5 - Release Planning
SPM 5 - Release PlanningSPM 5 - Release Planning
SPM 5 - Release Planning
Garm Lucassen
 
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based PrioritizationPMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
PMI-ACP Lesson 08 Nugget 2 Agile & Scrum - Value-Based Prioritization
Thanh Nguyen
 
Agile requirements discovery
Agile requirements discoveryAgile requirements discovery
Agile requirements discovery
Mario Cardinal
 
Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.Best Practices for Architecting a Pragmatic Web API.
Best Practices for Architecting a Pragmatic Web API.
Mario Cardinal
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Ad

Similar to Adressing nonfunctional requirements with agile practices (20)

Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practices
fboisvert
 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
ZeyadAlquaimi1
 
Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16th
marwakhalid
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer Ii
Jongens85
 
Agility reboot iv
Agility reboot ivAgility reboot iv
Agility reboot iv
Andrew Chum
 
Software Quality and Testing_Se lect18 btech
Software Quality and Testing_Se lect18 btechSoftware Quality and Testing_Se lect18 btech
Software Quality and Testing_Se lect18 btech
IIITA
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdf
MUSAIDRIS15
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
Anand Jat
 
Fault code for the whole thing is that you have a
Fault code for the whole thing is that you have aFault code for the whole thing is that you have a
Fault code for the whole thing is that you have a
ABDULRAHMANSANI3
 
Utkarsh
UtkarshUtkarsh
Utkarsh
Utkarsh .
 
Quality
QualityQuality
Quality
Naren Kmar
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
Ajeng Savitri
 
construction of software engineering practices by using different empirical t...
construction of software engineering practices by using different empirical t...construction of software engineering practices by using different empirical t...
construction of software engineering practices by using different empirical t...
ahmed368666
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
Declan Whelan
 
SQA_Session2.pptx
SQA_Session2.pptxSQA_Session2.pptx
SQA_Session2.pptx
FaizasFaizasCreation
 
Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software Testing
Raghwinder Parshad
 
Tec314
Tec314Tec314
Tec314
John Art
 
Software testing
Software testingSoftware testing
Software testing
360logica Software Testing Services (A Saksoft Company)
 
1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptx
BahaAbuKbash
 
Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practices
fboisvert
 
Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16th
marwakhalid
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer Ii
Jongens85
 
Agility reboot iv
Agility reboot ivAgility reboot iv
Agility reboot iv
Andrew Chum
 
Software Quality and Testing_Se lect18 btech
Software Quality and Testing_Se lect18 btechSoftware Quality and Testing_Se lect18 btech
Software Quality and Testing_Se lect18 btech
IIITA
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdf
MUSAIDRIS15
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
Anand Jat
 
Fault code for the whole thing is that you have a
Fault code for the whole thing is that you have aFault code for the whole thing is that you have a
Fault code for the whole thing is that you have a
ABDULRAHMANSANI3
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
Ajeng Savitri
 
construction of software engineering practices by using different empirical t...
construction of software engineering practices by using different empirical t...construction of software engineering practices by using different empirical t...
construction of software engineering practices by using different empirical t...
ahmed368666
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
Declan Whelan
 
Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software Testing
Raghwinder Parshad
 
1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptx
BahaAbuKbash
 
Ad

Recently uploaded (20)

LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Palo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity FoundationPalo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity Foundation
VICTOR MAESTRE RAMIREZ
 
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMEstablish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
DevOps in the Modern Era - Thoughtfully Critical Podcast
DevOps in the Modern Era - Thoughtfully Critical PodcastDevOps in the Modern Era - Thoughtfully Critical Podcast
DevOps in the Modern Era - Thoughtfully Critical Podcast
Chris Wahl
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to KnowWhat is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
SMACT Works
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Securiport - A Border Security Company
Securiport  -  A Border Security CompanySecuriport  -  A Border Security Company
Securiport - A Border Security Company
Securiport
 
Co-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using ProvenanceCo-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using Provenance
Paul Groth
 
The case for on-premises AI
The case for on-premises AIThe case for on-premises AI
The case for on-premises AI
Principled Technologies
 
Compliance-as-a-Service document pdf text
Compliance-as-a-Service document pdf textCompliance-as-a-Service document pdf text
Compliance-as-a-Service document pdf text
Earthling security
 
IntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdfIntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdf
Luiz Carneiro
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
AI Creative Generates You Passive Income Like Never Before
AI Creative Generates You Passive Income Like Never BeforeAI Creative Generates You Passive Income Like Never Before
AI Creative Generates You Passive Income Like Never Before
SivaRajan47
 
Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
LSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection FunctionLSNIF: Locally-Subdivided Neural Intersection Function
LSNIF: Locally-Subdivided Neural Intersection Function
Takahiro Harada
 
Palo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity FoundationPalo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity Foundation
VICTOR MAESTRE RAMIREZ
 
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMEstablish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Create Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent BuilderCreate Your First AI Agent with UiPath Agent Builder
Create Your First AI Agent with UiPath Agent Builder
DianaGray10
 
How to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptxHow to Detect Outliers in IBM SPSS Statistics.pptx
How to Detect Outliers in IBM SPSS Statistics.pptx
Version 1 Analytics
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
DevOps in the Modern Era - Thoughtfully Critical Podcast
DevOps in the Modern Era - Thoughtfully Critical PodcastDevOps in the Modern Era - Thoughtfully Critical Podcast
DevOps in the Modern Era - Thoughtfully Critical Podcast
Chris Wahl
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to KnowWhat is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
What is Oracle EPM A Guide to Oracle EPM Cloud Everything You Need to Know
SMACT Works
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Securiport - A Border Security Company
Securiport  -  A Border Security CompanySecuriport  -  A Border Security Company
Securiport - A Border Security Company
Securiport
 
Co-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using ProvenanceCo-Constructing Explanations for AI Systems using Provenance
Co-Constructing Explanations for AI Systems using Provenance
Paul Groth
 
Compliance-as-a-Service document pdf text
Compliance-as-a-Service document pdf textCompliance-as-a-Service document pdf text
Compliance-as-a-Service document pdf text
Earthling security
 
IntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdfIntroSlides-May-BuildWithAi-EarthEngine.pdf
IntroSlides-May-BuildWithAi-EarthEngine.pdf
Luiz Carneiro
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
AI Creative Generates You Passive Income Like Never Before
AI Creative Generates You Passive Income Like Never BeforeAI Creative Generates You Passive Income Like Never Before
AI Creative Generates You Passive Income Like Never Before
SivaRajan47
 
Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use CasesDomino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 

Adressing nonfunctional requirements with agile practices

  • 1. Addressing Nonfunctional Requirements Version May 16th Mario Cardinal Agile Coach & Software Architect www.mariocardinal.com
  • 2. • Agile Coach & Software architect • Leading independent consultant • www.mariocardinal.com Who am I ?
  • 3. "The real voyage of discovery consists, not in seeking new landscapes, but in having new eyes.” Marcel Proust A. Nonfunctional requirements – External and internal quality B. Functional requirements and agile framework C. Nonfunctional requirements and agile framework Why are we here? Agenda
  • 5. Nonfunctional Requirements What are they? • Specify"howwell"the"what"mustbehave • Notaboutnewfeaturestodeliver,butratheraboutdesirable characteristicsofexistingfeatures • Setconstraintsthattypicallycutacrossfunctional requirements • Alsoknownas"technicalrequirements",“quality attributes”or"qualityofservicerequirements“
  • 6. Nonfunctional Requirements It is all about quality Canbedividedintotwomaincategories: 1. Externalqualitysuchasperformance,correctness,security andusability,whichcarryoutthesoftware'sfunctionsat runtime,andassuch,isnotonlyvisiblebystakeholdersbut alsohighlydesirable 2. Internalqualitysuchasmaintainability,modifiabilityand testability,whichisbarelyvisiblebystakeholdersbut simplifyhowtobuildthesoftware
  • 7. Nonfunctional Requirements Knowledge is not experience • Idonotintendtotellyouhowtosatisfythemany nonfunctionalrequirements • Itisaskillthatoneacquireswithexperience
  • 8. Nonfunctional Requirements I aim for a simpler goal • IwillexplainhowtotranslateNonfunctional requirementsintorestrictions • Restrictionssetalimittocomplywith • Restrictionsguideyourwork • Restrictionshelpdeterminewhetheryouhavesatisfiedthe nonfunctionalrequirements
  • 9. Nonfunctional Requirements Need to review functional requirements • Constraintsweavethroughthefunctional requirements
  • 11. Functional Requirements Express desirements with user stories • Auserstoryisashortdescriptionwrittenineveryday languagethatrepresentsadiscretepieceof demonstrablefunctionality • Itisadesirableoutcomebystakeholders • Classictemplate • “Asa<role>,Iwant<goal>sothat<benefit>”
  • 12. Functional Requirements Example: User stories for a TransitAuthority • Asa<student>,Iwant<tobuyapassvalidonlyon schooldays>sothatIcan<gotoschool> • Asa<worker>,Iwant<tobuyamonthlypass>sothat Ican<gotowork>
  • 13. • Ascenarioisaconcreteexamplewrittenineveryday language • Itdescribesasignificantexercisethatisrequiredforthe fulfillmentofauserstory Functional Requirements Illustrate User Story with scenarios Action Precondition Consequence describes the current state of the system describes a transition or stimulus to that system describes the resulting state of the system
  • 14. Functional Requirements Confirm success criteria with scenarios • Scenariosestablishtheconditionsofacceptation • Scenariosareconcreteexamplesthatsaysinthewords ofthestakeholdershowtheyplantoverifythe desirableoutcome • Scenariosenablestheteamtoknowwhentheyare done • Scenariosareaspecificationasimportant,ifnotmore important,thanstories
  • 15. Functional Requirements Express scenarios with formality Givenoneprecondition Andanotherprecondition Andyetanotherprecondition Whenanactionoccurs Thenaconsequence Andanotherconsequence
  • 16. Functional Requirements Express scenarios with formality Givenanemptyshoppingcartiscreated Andamonthlystudentpassisaddedtoshoppingcart Whenbuyercheckouttheshoppingcart Thena76dollarssaleoccurred
  • 18. Nonfunctional Requirements Two categories of constraint • Externalquality • Restrictionsimposeconditionsthatsetsalimittocomply duringsoftwareexecution • Internalquality • Practicesensurethatthesoftwareconstructionisdone correctly
  • 19. External Quality What is it? Nonfunctional Requirement Definition Correctness Ability with which the software respects the specification. Performance Ease with which the software is doing the work it is supposed to do. Usually it is measured as a response time or a throughput. Reliability Ability with which the software performs its required functions under stated conditions for a specified period of time. Robustness Ability with which the software copes with errors during execution. Scalability Ability with which the software handles growing amounts of work in a graceful manner. Security Degree to which the software protects against threats. Usability Ease with which the software can be used by specific users to achieve specific goals.
  • 20. External Quality Restrictions should be SMART • Specific • Itshouldtargetapieceoffunctionalitythatissmall,consistentandsimple • Measurable • Itimposesalimitthatismeasurable,otherwisehowwouldyouknow whenyou’veaddressedit • Attainable • Itisrecognizedasachievablebytheteam • Relevant • Itisdirectlyrelated,connected,andpertinenttothenonfunctional requirement • Traceable • Itislinkedwitharequirementandatargetthatjustifieswhyitexists
  • 21. Restriction The most important element is the ‘measure’ • Easiertoimposeifyou • Reducethescaleofwhatneedstobemeasured • Reducefunctionalscope
  • 22. Restriction Reduce the functional scope to a scenario • Arestrictionisaddressedsidebysidewithitslinked functionalscope
  • 23. Nonfunctional Requirements What about User Story? • Cannotbesatisfiedinafiniteperiodoftime • The“what”thatneedstoberestrictedisnotconcrete enough • Thefunctionalscopeisfuzzybecauseitisaniteration • Caneasilyinducetechnicaldebt • Oncethestoryiscompleted,youmustputitbackinthe backlogtomakeitavailableagainforafutureiteration • Complicatesthemanagementofthebacklogunduly
  • 24. Restriction Reduce the functional scope to a scenario • Linkingrestrictionswithscenariosisaprocessed repeatedstoryafterstory
  • 26. Restriction Set restrictions with formality Givenoneprecondition Andanotherprecondition Andyetanotherprecondition Restrictafterxoccurrencewithameasurablequality objective Thenaconsequence Andanotherconsequence
  • 27. Restriction Set expectations with formality Restrictwithresponsetimelessthan5seconds
  • 28. Restriction Set positive expectations (Happy path) Giventhebuyerisuser‘KnownBuyer’ Restrictwiththebuyertobeauthenticatedpositively
  • 30. External Quality Test Restrictions with Proven Practices • Accessibility:Verifyvisualimpairments,mobilitydifficulty,hearing inabilityandcognitivedisabilities • Correctness:Determineifthesoftwarerespectsthespecification (Acceptancetesting) • Performance:Measureresponsetimeandinspectthroughput • Reliability:Seekforextraordinaryresourceconsumptionovera specifiedperiodoftime(memory,CPU,diskspace)
  • 31. External Quality Test Restrictions with Proven Practices • Robustness:Determineabilityofthesoftwaretofunction correctlyinthepresenceofinvalidinputsorstressful environmentalconditions • Scalability:Verifysoftwarebehaviorunderbothnormaland anticipatedpeakloadconditions(Loadtesting) • Security:Performintrusiondetectionandvulnerabilityscanning • Usability:Conductheuristicevaluation,consistencyinspection andactivityanalysistoverifyifusersachievespecifiedgoals
  • 32. External Quality Less is more • Negotiatewithstakeholderstoreducenumberof restrictions • Isit«really,really»adesirableoutcome? • Trytotargetaspecificiterationfortestinga nonfunctionalrequirement • Benefit:Transformfromarecurrentconcerntoaone-time concern
  • 33. • Reduce the scope of requirements – User Story – Scenario • Start expressing Restriction – Add restrictions as success criteria Next Steps What should you do tomorrow?

Editor's Notes

  • #10: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #12: Master complexity by addressing goals. They are engaging; they enable conversations about how to create valueIt is a placeholder containing just enough information so that the stakeholders can prioritize it and the team can produce a reasonable estimate of the effort to implement it.Quick way of documenting a stakeholder’s desirable outcome without having to elaborate vast formalized requirement documentsEncourage the team to defer collecting detailsAn initial high level story can be written as a first cut and then split into more stories when the team successively refines the software and it becomes important to have the details
  • #13: Role: Student, goal: buy a pass valid only on school days, benefit: go to schoolRole: Worker, goal: buy a monthly pass, benefit: go to work
  • #15: Success criteria convey additional information about the storyThey are a specification as important, if not more important, than the storyThey are a key element of agile specifications
  • #16: Given-When-Thenis the Gherkin langage promote by Behavior-DrivenDevelopment (BDD)Widelypromote by the Ruby community (Rspec and Cucumber)
  • #20: Slide to announce last two sections
  • #21: carry out the software&apos;s functions at run time, and as such, are not only visible by stakeholders but also highly desirable
  • #23: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #24: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #25: Slide to restart discussingNonfunctionalrequirements
  • #26: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #27: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #28: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #29: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #30: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #31: Constraintis self-contained and shouldbe satisfied in a finite period of timeIntroduce the next section “Functional requirement” by explaining that you will explain in more detail what are User Story and Scenario
  • #32: Robustness: Client-server architecture  remove the server, does the client code copes gracefully with errors during execution?
  • #33: Robustness: Client-server architecture  remove the server, does the client code copes gracefully with errors during execution?
  • #34: Bewarethattoomany restrictions caneasilyspoil the success of an iteration