SlideShare a Scribd company logo
1 of 45
Download to read offline
Addressing Non-Functional
Requirements with Agile Practices
MarioCardinal
SoftwareArchitect
Version: Dec16th
Who Am I?
• Independent senior consultant
• Software architecture
• Agile coaching
• ALM with Team Foundation Server
• www.mariocardinal.com
Agile is Like Teen Sex Because…
• Everyone wants to do it
• Many say they’re doing it
• Everybody else seems to be doing more than you
• Very few of you/your friends are doing it correctly
• Your start getting a bad reputation when you
spend too much time ‘Doing it’
Source: agile101.net
Agenda
1. Non-functional requirements
• Externaland internal quality
2. Functional requirements and agile framework
• User Storyand scenario
3. Non-functional requirements and agile framework
• Improve external quality using expectations
• Ensureinternalqualityusingsoundengineeringpractices
Non-Functional Requirements
What are they?
• Specify "how well" the "what" must behave
• Not about new featuresto deliver, but rather about
desirable characteristicsof existing features
• Set constraintsthat typicallycut acrossfunctional
requirements
• Also known as "technical requirements", “quality
attributes” or "quality of service requirements“
Non-Functional Requirements
It is all about quality
• Can be divided into two main categories:
1. Externalqualitysuch as performance,correctness,
securityand usability, which carryout the software's
functionsat run time, and as such,is not only visible
by stakeholdersbut also highly desirable
2. Internalqualitysuch as maintainability,modifiability
and testability,which is barely visible by stakeholders
but simplifyhow to build the software
Non-Functional Requirements
Knowledge is not experience
• I do not intend to tell you how to satisfy the many
non-functional requirements
• It is a skill that one acquires with experience
Non-Functional Requirements
I aim for a simpler goal
• I will explain how to translate non-functional
requirements into constraints
• Constraintsset a limit to comply with
• Constraintsguide your work
• Constraintshelp determinewhether you have satisfied
the non-functional requirements
Non-Functional Requirements
Need to review functional requirements
• Constraints weave through the functional
requirements
Functional Requirements
Express goals with user stories
• Auser story is a short description written in
everyday language that represents a discrete
piece of demonstrable functionality
• It is a desirable outcomeby stakeholders
• Classic template
• “As a < role>,I want <goal> so that <benefit>”
Functional Requirements
Example: User stories for a Transit Authority
• As a <student>, I want <to buy a pass valid
only on school days> so that I can <go to
school>
• As a <worker>, I want <to buy a monthly pass>
so that I can <go to work>
• A scenario is a concrete example written in
everyday language
• It describes a significant exercise that is required
for the fulfillment of a user story
Functional Requirements
Illustrate User Story with scenarios
Functional Requirements
Confirm success criteria with scenarios
• Scenarios establish the conditions of acceptation
• Scenarios are concrete examples that says in the
words of the stakeholders how they plan to verify
the desirable outcome
• Scenarios enables the team to know when they
are done
• Scenarios are a specification as important, if not
more important, than stories
Functional Requirements
Express scenarios with formality
Given one precondition
And another precondition
And yet another precondition
When an action occurs
Then a consequence
And another consequence
Functional Requirements
Express scenarios with formality
Given an empty shoppingcart is created
And a monthly studentpass is added to shopping cart
When buyer checkoutthe shopping cart
Then a 76 dollars sale occurred
Functional Requirements
Store requirements in a database
User Story
User Story
Parent/ChildLinks
Scenario
Constraint
Constraint
Constraint
Constraint
Constraint
Constraint
Scenario
Create a web
of
interconnected small pieces
of
requirements
Non-Functional Requirements
Two categories of constraint
• External quality
• Expectations imposeconditionsthat setsa limit to
comply during softwareexecution
• Internal quality
• Practicesensurethat the softwareconstructionis
done correctly
External Quality
What is it?
Non-Functional
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 specified users to achieve
measurable goals.
External Quality
Expectations should be SMART
• Specific
• Itshouldtargetapieceoffunctionalitythatissmall,consistentand
simple
• Measurable
• It imposesa limit thatis measurable,otherwisehow would you
knowwhenyou’ve addressedit
• Attainable
• Itisrecognizedasachievablebytheteam
• Relevant
• Itisdirectlyrelated,connected,andpertinenttothenon-functional
requirement
• Traceable
• Itislinkedwitharequirementandatargetthatjustifieswhyitexists
Expectation
The most important element is the ‘measure’
• Easier to express if you
• Reduce the scaleof what needs to be measured
• Reduce functionalscope
Expectation
Reduce the functional scope to a scenario
• An expectation is addressed side by side with its
linked functional scope
Expectation
Reduce the functional scope to a scenario
• Linking expectations with scenarios is a processed
repeated story after story
Expectation
Set Explicit Quality Objectives
Expectation
Set expectations with formality
Given one precondition
And another precondition
And yet another precondition
Expect a quality objective
Then a consequence
And another consequence
Expectation
Set expectations with formality
Expect response time less than 5 seconds
Expectation
Set positive expectations (Happy path)
Given buyer is logged in
Expect buyer to be authenticatedpositively
Expectation
Set negative expectations
Given buyer is not logged in
Expect buyer to be authenticatednegatively
Then event is saved in securitydatabaseand user is
redirected to “Login” page
Expectation
Omit implicit expectations
Given the server is down
Expect the query to return0 transit fare
Then user is redirected to “Server unavailable. Please try
later” page
Expectation
Specific for one scenario
Set expectations with measurable quality
objectives
Given 10 differentusers accomplishedthe scenario
Expect 8 users to complete the scenariowith success
Expectation
Specific for one user story
“As a user, I want to log in so that I can do transaction”
Given 10,000 buyers are logged in
And new user is not logged in
Expect new user to be unable to completethe story
Then new user is redirectedto “Server unavailable.
Please try later” page
External Quality
Test Expectations with Proven Practices
• Accessibility: Verifyvisual impairments,mobilitydifficulty,
hearinginabilityand cognitivedisabilities
• Correctness:Determineif the softwarerespectsthe
specification(Acceptancetesting)
• Performance:Measureresponsetime and inspect
throughput
• Reliability: Seek forextraordinaryresourceconsumption
over a specified period of time (memory, CPU, disk space)
External Quality
Test Expectations with Proven Practices
• Robustness: Determine ability ofthe softwareto function
correctlyin the presence of invalid inputs or stressful
environmentalconditions
• Scalability: Verifysoftwarebehavior under both normal and
anticipatedpeakloadconditions(Loadtesting)
• Security: Perform intrusion detection and vulnerability
scanning
• Usability:Conduct heuristicevaluation,consistency
inspectionand activity analysis to verify if users achieve
specifiedgoals
External Quality
Less is more
• Negotiate with stakeholders to reduce number of
expectations
• Is it « really, really » a desirableoutcome?
• Try to target a specific iteration for testing a non-
functional requirement
• Benefit:Transform from a recurrent concern to a one-
time concern
Non-Functional Requirements
What about User Story?
• Cannot be satisfied in a finite period of time
• The “what” that needs to be restrictedis not concrete
enough
• The functionalscope is fuzzy becauseit is an iteration
• Can easily induce technical debt
• Once thestory is completed,you must put it backin the
backlog to make it available again for a future iteration
• Complicatesthe management of the backlog unduly
Non-Functional Requirements
Two categories of constraint
• External quality
• Expectation imposesconditionsthatsets a limit to
comply during softwareexecution
• Internal quality
• Practicethat ensure the softwareconstructionis done
correctly
Internal Quality
What is it?
Non-Functional
Requirement
Definition
Simplicity Ease to understand or explain
Maintainability Ease to change and evolve with minimal effort
Testability Ease to confirm conformance by observing a reproducible behavior
Portability Ease to reuse for multiple platforms
Extensibility Ease to takes into consideration future changes
Internal Quality
Ensure quality using sound practices
• Practices define how the software construction is
done
• It preserves the sustainabilityof the sourcecode for
future developments
Internal Quality
Explicit Engineering Practices
Non-Functional
Requirement
Practices (to be applied for each scenario)
Simplicity
Self-documenting code: Practices that ensure code is its own best
documentation by allowing useful information, such as programming constructs
and logical structure, to be deduced from the naming convention and code layout
convention.
• The naming and code layout convention guide
the team during software construction
Internal Quality
Confirm practice with collaborative construction
• Pair programming
• Two teammateswork together at one workstation
• Driver
• Type at the keyboard
• Focus his attention on the task at hand
• Use the observer as a safety net and guide
• Observer
• Look at what is produced by driver
• Consider the constraints imposed by the practices
• Offer ideas for improvements
• The two teammatesswitch roles frequently
Internal Quality
Confirm practice with collaborative construction
• Peerreview(aka formalinspectionduringconstruction)
• Well-definedroles
• Moderator,author,reviewers,scribe
• Planning
• Inspectionisscheduledbymoderator(accordingtopredefinedselectioncriteria)
• Preparation
• Reviewerworksalonetoscrutinizetheworkproductunderreview
• Reviewerusesachecklist tostimulatetheirexamination
• Inspection
• Moderatorchoosessomeoneotherthantheauthortopresenttheworkproduct
• Authorisa«flyonthewall»andscriberecordsreworksastheyaredetected
• Constructivefeedbacks,«Iproposetoreplacewith…»,
• Afterinspection
• Moderatorensurethatallreworkiscarriedoutpromptlybytheauthor
Internal Quality
Other examples of engineering practices
Non-Functional
Requirements
Practices (to be applied for each scenario)
Maintainability Continuous Integration: Practices of applying quality control for each new
checked in code by verifying if it integrate with success in the development
branch.
Testability Red-Green-Refactor: Practice that promotes the notion of writing test first when
programming a piece of code and that relies on the repetition of a very short
development cycle divided into three stages (the red, the green and the refactor
stage).
Portability Multi-target compiling: Practices that verifies compilation on every platform.
• Each scenario is not « Done » until each practice is
confirmed
Internal Quality
Engineering practices and user story
Non-Functional
Requirements
Practices (to be applied for each user story)
Maintainability Branching and merging : Practices to merge with the main branch (and
tagged appropriately for traceability) source code from the development
branch.
Portability Multi-target deploying: Practices that verifies the automated build can deploy
on every platform.
• Each user story is not « Done » until each practice
is confirmed
Internal Quality
How to store practices description in TFS
User Story
User Story
Parent/ChildLinks
Scenario
Practice
Practice
Practice
Practice
Scenario
Practice
Practice
Global list
Resources
• My website
• http://mariocardinal.com
• Book
• Title: AgileSpecification
• Author: Mario Cardinal
• Publisher:Addison-Wesley
• PublicationDate: Spring 2012
Q & A

More Related Content

What's hot

The Agile BA (Business Analyst)
The Agile BA (Business Analyst)The Agile BA (Business Analyst)
The Agile BA (Business Analyst)Bill Gaiennie
 
Continuous delivery xebia
Continuous delivery xebiaContinuous delivery xebia
Continuous delivery xebiaAgileNCR2016
 
Agile Requirements Writing
Agile Requirements WritingAgile Requirements Writing
Agile Requirements WritingBernhard Kappe
 
Agile training workshop
Agile training workshopAgile training workshop
Agile training workshopSyed Ahmed
 
Free CBAP V3 study guide
Free CBAP V3 study guideFree CBAP V3 study guide
Free CBAP V3 study guideLN Mishra CBAP
 
Adaptive business analysis skill enhancement program v6.0 slideshare
Adaptive business analysis skill enhancement program v6.0 slideshareAdaptive business analysis skill enhancement program v6.0 slideshare
Adaptive business analysis skill enhancement program v6.0 slideshareAnanya Pani
 

What's hot (10)

Resume
ResumeResume
Resume
 
The Agile BA (Business Analyst)
The Agile BA (Business Analyst)The Agile BA (Business Analyst)
The Agile BA (Business Analyst)
 
Continuous delivery xebia
Continuous delivery xebiaContinuous delivery xebia
Continuous delivery xebia
 
Agile Requirements Writing
Agile Requirements WritingAgile Requirements Writing
Agile Requirements Writing
 
Agile training workshop
Agile training workshopAgile training workshop
Agile training workshop
 
CIO Review QA Mentor
CIO Review QA MentorCIO Review QA Mentor
CIO Review QA Mentor
 
QA Mentor Brochure
QA Mentor BrochureQA Mentor Brochure
QA Mentor Brochure
 
Requirements Management
Requirements ManagementRequirements Management
Requirements Management
 
Free CBAP V3 study guide
Free CBAP V3 study guideFree CBAP V3 study guide
Free CBAP V3 study guide
 
Adaptive business analysis skill enhancement program v6.0 slideshare
Adaptive business analysis skill enhancement program v6.0 slideshareAdaptive business analysis skill enhancement program v6.0 slideshare
Adaptive business analysis skill enhancement program v6.0 slideshare
 

Similar to Addressing quality requirements with agile practices

Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practicesfboisvert
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanAgile Testing Alliance
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Writing effective requirements
Writing effective requirementsWriting effective requirements
Writing effective requirementsLizLavaveshkul
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile worldRavikanth-BA
 
Requirements Engineering @ Agile
Requirements Engineering @ AgileRequirements Engineering @ Agile
Requirements Engineering @ AgileGirish Khemani
 
Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile Anton Oosthuizen
 
Agile Requirement Development - A Breathtakingly Quick Introduction
Agile Requirement Development - A Breathtakingly Quick IntroductionAgile Requirement Development - A Breathtakingly Quick Introduction
Agile Requirement Development - A Breathtakingly Quick IntroductionTieturi Oy
 
Agile+Course+Presentation.pdf
Agile+Course+Presentation.pdfAgile+Course+Presentation.pdf
Agile+Course+Presentation.pdfChandan Kumar
 
Software Agility.pptx
Software Agility.pptxSoftware Agility.pptx
Software Agility.pptxZaid Shabbir
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer IiJongens85
 
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...Lviv Startup Club
 
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...Lviv Startup Club
 

Similar to Addressing quality 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
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Story of user story
Story of user storyStory of user story
Story of user story
 
Writing effective requirements
Writing effective requirementsWriting effective requirements
Writing effective requirements
 
Use Cases and Use in Agile world
Use Cases and Use in Agile worldUse Cases and Use in Agile world
Use Cases and Use in Agile world
 
Requirements Engineering @ Agile
Requirements Engineering @ AgileRequirements Engineering @ Agile
Requirements Engineering @ Agile
 
Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile Cheapest User Stories - The Achilles Heel of Agile
Cheapest User Stories - The Achilles Heel of Agile
 
Agile Requirement Development - A Breathtakingly Quick Introduction
Agile Requirement Development - A Breathtakingly Quick IntroductionAgile Requirement Development - A Breathtakingly Quick Introduction
Agile Requirement Development - A Breathtakingly Quick Introduction
 
Agile+Course+Presentation.pdf
Agile+Course+Presentation.pdfAgile+Course+Presentation.pdf
Agile+Course+Presentation.pdf
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
Software Agility.pptx
Software Agility.pptxSoftware Agility.pptx
Software Agility.pptx
 
Agile
Agile Agile
Agile
 
Sw Test Engineer Ii
Sw Test Engineer IiSw Test Engineer Ii
Sw Test Engineer Ii
 
QA in an Agile Environment
QA in an Agile EnvironmentQA in an Agile Environment
QA in an Agile Environment
 
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...
Андрій Просов: Managing Client Expectations in Fixed Price Agile Projects by ...
 
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...
Андрій Просов “Управління очікуваннями клієнтів в проектах з використанням гн...
 
The Scrum Guide
The Scrum GuideThe Scrum Guide
The Scrum Guide
 
One day Course On Agile
One day Course On AgileOne day Course On Agile
One day Course On Agile
 

Recently uploaded

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectErbil Polytechnic University
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptNarmatha D
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solidnamansinghjarodiya
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 

Recently uploaded (20)

Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
Risk Management in Engineering Construction Project
Risk Management in Engineering Construction ProjectRisk Management in Engineering Construction Project
Risk Management in Engineering Construction Project
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
Industrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.pptIndustrial Safety Unit-IV workplace health and safety.ppt
Industrial Safety Unit-IV workplace health and safety.ppt
 
Engineering Drawing section of solid
Engineering Drawing     section of solidEngineering Drawing     section of solid
Engineering Drawing section of solid
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 

Addressing quality requirements with agile practices

  • 1. Addressing Non-Functional Requirements with Agile Practices MarioCardinal SoftwareArchitect Version: Dec16th
  • 2. Who Am I? • Independent senior consultant • Software architecture • Agile coaching • ALM with Team Foundation Server • www.mariocardinal.com
  • 3. Agile is Like Teen Sex Because… • Everyone wants to do it • Many say they’re doing it • Everybody else seems to be doing more than you • Very few of you/your friends are doing it correctly • Your start getting a bad reputation when you spend too much time ‘Doing it’ Source: agile101.net
  • 4. Agenda 1. Non-functional requirements • Externaland internal quality 2. Functional requirements and agile framework • User Storyand scenario 3. Non-functional requirements and agile framework • Improve external quality using expectations • Ensureinternalqualityusingsoundengineeringpractices
  • 5. Non-Functional Requirements What are they? • Specify "how well" the "what" must behave • Not about new featuresto deliver, but rather about desirable characteristicsof existing features • Set constraintsthat typicallycut acrossfunctional requirements • Also known as "technical requirements", “quality attributes” or "quality of service requirements“
  • 6. Non-Functional Requirements It is all about quality • Can be divided into two main categories: 1. Externalqualitysuch as performance,correctness, securityand usability, which carryout the software's functionsat run time, and as such,is not only visible by stakeholdersbut also highly desirable 2. Internalqualitysuch as maintainability,modifiability and testability,which is barely visible by stakeholders but simplifyhow to build the software
  • 7. Non-Functional Requirements Knowledge is not experience • I do not intend to tell you how to satisfy the many non-functional requirements • It is a skill that one acquires with experience
  • 8. Non-Functional Requirements I aim for a simpler goal • I will explain how to translate non-functional requirements into constraints • Constraintsset a limit to comply with • Constraintsguide your work • Constraintshelp determinewhether you have satisfied the non-functional requirements
  • 9. Non-Functional Requirements Need to review functional requirements • Constraints weave through the functional requirements
  • 10. Functional Requirements Express goals with user stories • Auser story is a short description written in everyday language that represents a discrete piece of demonstrable functionality • It is a desirable outcomeby stakeholders • Classic template • “As a < role>,I want <goal> so that <benefit>”
  • 11. Functional Requirements Example: User stories for a Transit Authority • As a <student>, I want <to buy a pass valid only on school days> so that I can <go to school> • As a <worker>, I want <to buy a monthly pass> so that I can <go to work>
  • 12. • A scenario is a concrete example written in everyday language • It describes a significant exercise that is required for the fulfillment of a user story Functional Requirements Illustrate User Story with scenarios
  • 13. Functional Requirements Confirm success criteria with scenarios • Scenarios establish the conditions of acceptation • Scenarios are concrete examples that says in the words of the stakeholders how they plan to verify the desirable outcome • Scenarios enables the team to know when they are done • Scenarios are a specification as important, if not more important, than stories
  • 14. Functional Requirements Express scenarios with formality Given one precondition And another precondition And yet another precondition When an action occurs Then a consequence And another consequence
  • 15. Functional Requirements Express scenarios with formality Given an empty shoppingcart is created And a monthly studentpass is added to shopping cart When buyer checkoutthe shopping cart Then a 76 dollars sale occurred
  • 16. Functional Requirements Store requirements in a database User Story User Story Parent/ChildLinks Scenario Constraint Constraint Constraint Constraint Constraint Constraint Scenario Create a web of interconnected small pieces of requirements
  • 17. Non-Functional Requirements Two categories of constraint • External quality • Expectations imposeconditionsthat setsa limit to comply during softwareexecution • Internal quality • Practicesensurethat the softwareconstructionis done correctly
  • 18. External Quality What is it? Non-Functional 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 specified users to achieve measurable goals.
  • 19. External Quality Expectations should be SMART • Specific • Itshouldtargetapieceoffunctionalitythatissmall,consistentand simple • Measurable • It imposesa limit thatis measurable,otherwisehow would you knowwhenyou’ve addressedit • Attainable • Itisrecognizedasachievablebytheteam • Relevant • Itisdirectlyrelated,connected,andpertinenttothenon-functional requirement • Traceable • Itislinkedwitharequirementandatargetthatjustifieswhyitexists
  • 20. Expectation The most important element is the ‘measure’ • Easier to express if you • Reduce the scaleof what needs to be measured • Reduce functionalscope
  • 21. Expectation Reduce the functional scope to a scenario • An expectation is addressed side by side with its linked functional scope
  • 22. Expectation Reduce the functional scope to a scenario • Linking expectations with scenarios is a processed repeated story after story
  • 24. Expectation Set expectations with formality Given one precondition And another precondition And yet another precondition Expect a quality objective Then a consequence And another consequence
  • 25. Expectation Set expectations with formality Expect response time less than 5 seconds
  • 26. Expectation Set positive expectations (Happy path) Given buyer is logged in Expect buyer to be authenticatedpositively
  • 27. Expectation Set negative expectations Given buyer is not logged in Expect buyer to be authenticatednegatively Then event is saved in securitydatabaseand user is redirected to “Login” page
  • 28. Expectation Omit implicit expectations Given the server is down Expect the query to return0 transit fare Then user is redirected to “Server unavailable. Please try later” page
  • 29. Expectation Specific for one scenario Set expectations with measurable quality objectives Given 10 differentusers accomplishedthe scenario Expect 8 users to complete the scenariowith success
  • 30. Expectation Specific for one user story “As a user, I want to log in so that I can do transaction” Given 10,000 buyers are logged in And new user is not logged in Expect new user to be unable to completethe story Then new user is redirectedto “Server unavailable. Please try later” page
  • 31. External Quality Test Expectations with Proven Practices • Accessibility: Verifyvisual impairments,mobilitydifficulty, hearinginabilityand cognitivedisabilities • Correctness:Determineif the softwarerespectsthe specification(Acceptancetesting) • Performance:Measureresponsetime and inspect throughput • Reliability: Seek forextraordinaryresourceconsumption over a specified period of time (memory, CPU, disk space)
  • 32. External Quality Test Expectations with Proven Practices • Robustness: Determine ability ofthe softwareto function correctlyin the presence of invalid inputs or stressful environmentalconditions • Scalability: Verifysoftwarebehavior under both normal and anticipatedpeakloadconditions(Loadtesting) • Security: Perform intrusion detection and vulnerability scanning • Usability:Conduct heuristicevaluation,consistency inspectionand activity analysis to verify if users achieve specifiedgoals
  • 33. External Quality Less is more • Negotiate with stakeholders to reduce number of expectations • Is it « really, really » a desirableoutcome? • Try to target a specific iteration for testing a non- functional requirement • Benefit:Transform from a recurrent concern to a one- time concern
  • 34. Non-Functional Requirements What about User Story? • Cannot be satisfied in a finite period of time • The “what” that needs to be restrictedis not concrete enough • The functionalscope is fuzzy becauseit is an iteration • Can easily induce technical debt • Once thestory is completed,you must put it backin the backlog to make it available again for a future iteration • Complicatesthe management of the backlog unduly
  • 35. Non-Functional Requirements Two categories of constraint • External quality • Expectation imposesconditionsthatsets a limit to comply during softwareexecution • Internal quality • Practicethat ensure the softwareconstructionis done correctly
  • 36. Internal Quality What is it? Non-Functional Requirement Definition Simplicity Ease to understand or explain Maintainability Ease to change and evolve with minimal effort Testability Ease to confirm conformance by observing a reproducible behavior Portability Ease to reuse for multiple platforms Extensibility Ease to takes into consideration future changes
  • 37. Internal Quality Ensure quality using sound practices • Practices define how the software construction is done • It preserves the sustainabilityof the sourcecode for future developments
  • 38. Internal Quality Explicit Engineering Practices Non-Functional Requirement Practices (to be applied for each scenario) Simplicity Self-documenting code: Practices that ensure code is its own best documentation by allowing useful information, such as programming constructs and logical structure, to be deduced from the naming convention and code layout convention. • The naming and code layout convention guide the team during software construction
  • 39. Internal Quality Confirm practice with collaborative construction • Pair programming • Two teammateswork together at one workstation • Driver • Type at the keyboard • Focus his attention on the task at hand • Use the observer as a safety net and guide • Observer • Look at what is produced by driver • Consider the constraints imposed by the practices • Offer ideas for improvements • The two teammatesswitch roles frequently
  • 40. Internal Quality Confirm practice with collaborative construction • Peerreview(aka formalinspectionduringconstruction) • Well-definedroles • Moderator,author,reviewers,scribe • Planning • Inspectionisscheduledbymoderator(accordingtopredefinedselectioncriteria) • Preparation • Reviewerworksalonetoscrutinizetheworkproductunderreview • Reviewerusesachecklist tostimulatetheirexamination • Inspection • Moderatorchoosessomeoneotherthantheauthortopresenttheworkproduct • Authorisa«flyonthewall»andscriberecordsreworksastheyaredetected • Constructivefeedbacks,«Iproposetoreplacewith…», • Afterinspection • Moderatorensurethatallreworkiscarriedoutpromptlybytheauthor
  • 41. Internal Quality Other examples of engineering practices Non-Functional Requirements Practices (to be applied for each scenario) Maintainability Continuous Integration: Practices of applying quality control for each new checked in code by verifying if it integrate with success in the development branch. Testability Red-Green-Refactor: Practice that promotes the notion of writing test first when programming a piece of code and that relies on the repetition of a very short development cycle divided into three stages (the red, the green and the refactor stage). Portability Multi-target compiling: Practices that verifies compilation on every platform. • Each scenario is not « Done » until each practice is confirmed
  • 42. Internal Quality Engineering practices and user story Non-Functional Requirements Practices (to be applied for each user story) Maintainability Branching and merging : Practices to merge with the main branch (and tagged appropriately for traceability) source code from the development branch. Portability Multi-target deploying: Practices that verifies the automated build can deploy on every platform. • Each user story is not « Done » until each practice is confirmed
  • 43. Internal Quality How to store practices description in TFS User Story User Story Parent/ChildLinks Scenario Practice Practice Practice Practice Scenario Practice Practice Global list
  • 44. Resources • My website • http://mariocardinal.com • Book • Title: AgileSpecification • Author: Mario Cardinal • Publisher:Addison-Wesley • PublicationDate: Spring 2012
  • 45. Q & A