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

Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9Ian 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 RequirementsYuriy 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 requirementGetacher 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 EngineeringSlideshare
 
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
 
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
 

What's hot (20)

Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
 
Design for non functional requirements
Design for non functional requirementsDesign for non functional requirements
Design for non functional requirements
 
Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)
 
Non-Functional Requirements
Non-Functional RequirementsNon-Functional Requirements
Non-Functional Requirements
 
Non functional performance requirements v2.2
Non functional performance requirements v2.2Non functional performance requirements v2.2
Non functional performance requirements v2.2
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Non functional requirement
Non functional requirementNon functional requirement
Non functional requirement
 
business requirements functional and non functional
business requirements functional and  non functionalbusiness requirements functional and  non functional
business requirements functional and non functional
 
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?
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
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
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Introduction to Requirement engineering
Introduction to Requirement engineeringIntroduction to Requirement engineering
Introduction to Requirement engineering
 
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
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
 
Software testing
Software testingSoftware testing
Software testing
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
 

Viewers also liked

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 discoveryMario 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
 

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
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements framework
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirements
 
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
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
 
SPM 5 - Release Planning
SPM 5 - Release PlanningSPM 5 - Release Planning
SPM 5 - Release Planning
 
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
 
Agile requirements discovery
Agile requirements discoveryAgile requirements discovery
Agile requirements discovery
 
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.
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 

Similar to Adressing nonfunctional requirements with agile practices

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 IiJongens85
 
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
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
Ajeng Savitri
 
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 TestingRaghwinder Parshad
 
Software testing
Software testingSoftware testing
1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptx
BahaAbuKbash
 
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
Simone Onofri
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
Babak Khorrami
 

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
 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
 
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
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer Ii
 
Agility reboot iv
Agility reboot ivAgility reboot iv
Agility reboot iv
 
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
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdf
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
 
Utkarsh
UtkarshUtkarsh
Utkarsh
 
Quality
QualityQuality
Quality
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
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
 
SQA_Session2.pptx
SQA_Session2.pptxSQA_Session2.pptx
SQA_Session2.pptx
 
Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software Testing
 
Tec314
Tec314Tec314
Tec314
 
Software testing
Software testingSoftware testing
Software testing
 
1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptx
 
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 

Recently uploaded

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. Given-When-Thenis the Gherkin langage promote by Behavior-DrivenDevelopment (BDD)Widelypromote by the Ruby community (Rspec and Cucumber)
  6. Slide to announce last two sections
  7. carry out the software&apos;s functions at run time, and as such, are not only visible by stakeholders but also highly desirable
  8. 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
  9. 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
  10. Slide to restart discussingNonfunctionalrequirements
  11. 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. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Robustness: Client-server architecture  remove the server, does the client code copes gracefully with errors during execution?
  18. Robustness: Client-server architecture  remove the server, does the client code copes gracefully with errors during execution?
  19. Bewarethattoomany restrictions caneasilyspoil the success of an iteration