SlideShare una empresa de Scribd logo
1 de 33
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?

Más contenido relacionado

La actualidad más candente

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 requirementsHabeeb 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.2Ian McDonald
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringAyaz 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 functionalCHANDRA 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 specificationWolfgang 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 architectureGang Tao
 
Introduction to Requirement engineering
Introduction to Requirement engineeringIntroduction to Requirement engineering
Introduction to Requirement engineeringNameirakpam 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 Simplifiedcbb010
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSweta Kumari Barnwal
 
Software engineering
Software engineeringSoftware engineering
Software engineeringsuganyasanjai
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Ahmed Alageed
 

La actualidad más candente (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
 

Destacado

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 ProjectKen Howard
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements frameworkwweinmeyer79
 
Non functional requirements
Non functional requirementsNon functional requirements
Non functional requirementsPavel 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 agileSubrahmaniam S.R.V
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developersMario Cardinal
 
SPM 5 - Release Planning
SPM 5 - Release PlanningSPM 5 - Release Planning
SPM 5 - Release PlanningGarm 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 PrioritizationThanh 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
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 

Destacado (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 a Adressing nonfunctional requirements with agile practices

Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practicesfboisvert
 
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 16thmarwakhalid
 
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 ivAndrew 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 btechIIITA
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdfMUSAIDRIS15
 
Quality Concept
Quality ConceptQuality Concept
Quality ConceptAnand Jat
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software QualityAjeng Savitri
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen 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 TesterDeclan 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
 
1_Software Quality Control.pptx
1_Software Quality Control.pptx1_Software Quality Control.pptx
1_Software Quality Control.pptxBahaAbuKbash
 
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 qualityBabak Khorrami
 

Similar a 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
 

Último

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

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?

Notas del editor

  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