SlideShare une entreprise Scribd logo
1  sur  4
©2011 David Consulting Group Page 1 of
4 v1
“How do I size my non-functional software?”
October 2014
Scope of this Report
 What is the definition of non-functional software?
 When do I need to use a non-functional size measure?
 What non-functional size measure(s) should I use?
 How do we implement non-functional sizing?
 How do we implement non-functional estimating?
 Do estimating products cover non-functional changes?
What is the definition of non-functional software?
Non-functional characteristics of software include items such as compatibility, maintainability, usability,
portability, security, performance efficiency and functional stability and reliability.
In simple terms, functional requirements describe what the software will deliver to the user, while non-
functional requirements indicate how the software will implement that user functionality
When do I need to use a non-functional size measure?
If your organization is using Functional sizing as a metric to monitor productivity, then, where a
significant proportion of project effort relates to that non-functional development, productivity clearly
appears reduced and this leads to difficult discussions within the project.
When examining that apparent productivity loss due to non-functional requirements, you must take a
careful look at a project before using a separate measure. Bear in mind that IFPUG and other functional
sizing methods assume that some part of project effort will be devoted to non-functional activities, as
do benchmarking databases, so you must decide what makes a project exceptional.
Also, there is a level of variation in productivity between projects that is to be expected, for example
due to changes in staff or complexity of algorithms and you must decide what makes an exception
before you turn to using non-functional sizing methods.
When we look at the project consider the purpose of the release was it based on requirements to meet
any of compatibility, maintainability, usability, portability, security, performance efficiency and
functional stability?
©2014 David Consulting Group Page 2 of 4 v1
If you are using IFPUG function points then the following are just some of the common software
development activities excluded by the IFPUG counting rules. They deliver no change to the functional
process or are done for purely technical reasons and usually have limited business meaning.
 Creation of static code tables or parameter files
 Addition of new reference data entries to an existing table
 Database changes for performance reasons
 User Interface (UI) changes for cosmetic reasons
 Performance improvements (streaming batch jobs or adding database indexes)
While these activities may be technically necessary, they can significantly increase effort and cost and
therefore negatively impact a project’s productivity or perceived performance.
Note this isn’t a failing or a gap in the Function point methodology but a different perspective
altogether.
It is this situation that best lends itself to using a non-functional measure.
We should consider the non-functional size measure in conjunction with a functional size measure to
 Provide overall insight into the delivery of projects and maintenance of applications,
 Assist in project estimating
 Provide insights for the analysis of quality and productivity performance.
What non-functional size measure(s) should I use?
The IFPUG approach is SNAP - a methodology developed by IFPUG to meet the needs of the industry to
have a generic sizing process for non-functional requirements or functional requirements not captured
by function points.
SNAP is divided into 4 major categories and a number of sub-categories
 Data Operations -The Data Operations Category relates to how data is processed within the
Snap Counting Unit to meet the Non-Functional requirements in the Application.
 Interface Design-Interface Design assesses the design of UI processes and methods that allow
the user to interface with the application.
 Technical Environment-Technical Environment assesses technology as well as changes to
internal data and configuration that do not provide added or changed functionality from a
Function Points perspective.
 Architecture-Architecture relates to the design and coding techniques utilized to build and
enhance the application. SNAPs assesses the complexities of modular and/or component based
development
Alternatively it is feasible to use your own metrics and size measures to capture the non-functional
requirements. For example, if your organization uses reference stories to set consistent story point
sizing across Agile teams and projects then it may make a reasonable initial size measure for non-
functional requirements.
©2014 David Consulting Group Page 3 of 4 v1
The benefit is they may be recognized already by SMEs in your organization and historical data may be
available but the downside is the challenge of ensuring a consistent application of the measure and the
inability to compare with industry data.
Our preference would be SNAP. Indeed, one large organization challenged us to match up their non-
functional requirements across a number of platforms and SNAP covered them!
How do we implement non-functional sizing?
Once you determine the scope of the metrics capture, then consider the following steps.
 Determine if organizational historical data is available or can be reasonably derived.
 Consider how many metric types you may have that can represent the population, for example
SNAP gives its view of distinct categories you might consider.
 Identify future projects where you can capture the relevant size metrics by category and build a
historical repository for those types.
 When planning projects separate the non-functional development tasks from the functional
tasks in the work breakdown structure. This gives a much more balanced view of a project’s
productivity and ensures you are comparing like with like.
 Be aware that you may have multiple categories apply to the same process.
 Decide if you want to implement on all projects or projects which are atypical with a large non-
functional component.
 Gather data across different technologies to set benchmarks for future estimating.
 Test if the size metric you are using can be used for early sizing or estimating as the benefit will
be severely dented if not.
How do we implement non-functional estimating?
As far as possible you should use the same process as your functional estimating. We are simply using a
different size metric and should consider similar additional factors to produce the estimate, for example
duration, technology (in most cases), experience will have an impact.
You may find some changes have a fixed effort/duration like a regression pack or code compile and
delivery and can be estimated/included as such from historical data and excluded from the size metric.
Changes such as UI standardization will be variable based on the number of UI changes and so analysis
of the historical data should show a pattern which can be used for future estimating.
Do estimating products cover non-functional requirements?
Common tools such as SEER-SIM and SLIM1
allow you to use custom alternate size metrics so you can
adapt the tools to use your own organizational data.
1
SEER-SIM is a registered trademark of Galorath, Inc. SLIM is a registered trademark of Quantitative Software
Management, Inc.
©2014 David Consulting Group Page 4 of 4 v1
There is a benefit using tooling that takes into account the differences in timescale/size and other
mitigating factors that are difficult to include in experience based estimating.
Conclusion
With SNAP there is now an industry size metric that can be used to measure non-functional changes
however, you can use your own metrics as well.
In many projects it is unnecessary to use a non-functional measure such as SNAP, as the amount of non-
functional change impacted is not out of the ordinary (or typical for those projects used as a
benchmark/ comparison) but the benefit is found when the degree of non-functional change is likely to
skew the total effort needed to deliver the project and by extension have an untoward impact of
productivity.
Non-functional metrics will enhance your overall project metrics to give a more complete view of
project size which greatly benefits the understanding of project performance and ultimately effort
estimation.

Contenu connexe

Dernier

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Dernier (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

What Can We Use to Measure Non-Functional Requirements?

  • 1. ©2011 David Consulting Group Page 1 of 4 v1 “How do I size my non-functional software?” October 2014 Scope of this Report  What is the definition of non-functional software?  When do I need to use a non-functional size measure?  What non-functional size measure(s) should I use?  How do we implement non-functional sizing?  How do we implement non-functional estimating?  Do estimating products cover non-functional changes? What is the definition of non-functional software? Non-functional characteristics of software include items such as compatibility, maintainability, usability, portability, security, performance efficiency and functional stability and reliability. In simple terms, functional requirements describe what the software will deliver to the user, while non- functional requirements indicate how the software will implement that user functionality When do I need to use a non-functional size measure? If your organization is using Functional sizing as a metric to monitor productivity, then, where a significant proportion of project effort relates to that non-functional development, productivity clearly appears reduced and this leads to difficult discussions within the project. When examining that apparent productivity loss due to non-functional requirements, you must take a careful look at a project before using a separate measure. Bear in mind that IFPUG and other functional sizing methods assume that some part of project effort will be devoted to non-functional activities, as do benchmarking databases, so you must decide what makes a project exceptional. Also, there is a level of variation in productivity between projects that is to be expected, for example due to changes in staff or complexity of algorithms and you must decide what makes an exception before you turn to using non-functional sizing methods. When we look at the project consider the purpose of the release was it based on requirements to meet any of compatibility, maintainability, usability, portability, security, performance efficiency and functional stability?
  • 2. ©2014 David Consulting Group Page 2 of 4 v1 If you are using IFPUG function points then the following are just some of the common software development activities excluded by the IFPUG counting rules. They deliver no change to the functional process or are done for purely technical reasons and usually have limited business meaning.  Creation of static code tables or parameter files  Addition of new reference data entries to an existing table  Database changes for performance reasons  User Interface (UI) changes for cosmetic reasons  Performance improvements (streaming batch jobs or adding database indexes) While these activities may be technically necessary, they can significantly increase effort and cost and therefore negatively impact a project’s productivity or perceived performance. Note this isn’t a failing or a gap in the Function point methodology but a different perspective altogether. It is this situation that best lends itself to using a non-functional measure. We should consider the non-functional size measure in conjunction with a functional size measure to  Provide overall insight into the delivery of projects and maintenance of applications,  Assist in project estimating  Provide insights for the analysis of quality and productivity performance. What non-functional size measure(s) should I use? The IFPUG approach is SNAP - a methodology developed by IFPUG to meet the needs of the industry to have a generic sizing process for non-functional requirements or functional requirements not captured by function points. SNAP is divided into 4 major categories and a number of sub-categories  Data Operations -The Data Operations Category relates to how data is processed within the Snap Counting Unit to meet the Non-Functional requirements in the Application.  Interface Design-Interface Design assesses the design of UI processes and methods that allow the user to interface with the application.  Technical Environment-Technical Environment assesses technology as well as changes to internal data and configuration that do not provide added or changed functionality from a Function Points perspective.  Architecture-Architecture relates to the design and coding techniques utilized to build and enhance the application. SNAPs assesses the complexities of modular and/or component based development Alternatively it is feasible to use your own metrics and size measures to capture the non-functional requirements. For example, if your organization uses reference stories to set consistent story point sizing across Agile teams and projects then it may make a reasonable initial size measure for non- functional requirements.
  • 3. ©2014 David Consulting Group Page 3 of 4 v1 The benefit is they may be recognized already by SMEs in your organization and historical data may be available but the downside is the challenge of ensuring a consistent application of the measure and the inability to compare with industry data. Our preference would be SNAP. Indeed, one large organization challenged us to match up their non- functional requirements across a number of platforms and SNAP covered them! How do we implement non-functional sizing? Once you determine the scope of the metrics capture, then consider the following steps.  Determine if organizational historical data is available or can be reasonably derived.  Consider how many metric types you may have that can represent the population, for example SNAP gives its view of distinct categories you might consider.  Identify future projects where you can capture the relevant size metrics by category and build a historical repository for those types.  When planning projects separate the non-functional development tasks from the functional tasks in the work breakdown structure. This gives a much more balanced view of a project’s productivity and ensures you are comparing like with like.  Be aware that you may have multiple categories apply to the same process.  Decide if you want to implement on all projects or projects which are atypical with a large non- functional component.  Gather data across different technologies to set benchmarks for future estimating.  Test if the size metric you are using can be used for early sizing or estimating as the benefit will be severely dented if not. How do we implement non-functional estimating? As far as possible you should use the same process as your functional estimating. We are simply using a different size metric and should consider similar additional factors to produce the estimate, for example duration, technology (in most cases), experience will have an impact. You may find some changes have a fixed effort/duration like a regression pack or code compile and delivery and can be estimated/included as such from historical data and excluded from the size metric. Changes such as UI standardization will be variable based on the number of UI changes and so analysis of the historical data should show a pattern which can be used for future estimating. Do estimating products cover non-functional requirements? Common tools such as SEER-SIM and SLIM1 allow you to use custom alternate size metrics so you can adapt the tools to use your own organizational data. 1 SEER-SIM is a registered trademark of Galorath, Inc. SLIM is a registered trademark of Quantitative Software Management, Inc.
  • 4. ©2014 David Consulting Group Page 4 of 4 v1 There is a benefit using tooling that takes into account the differences in timescale/size and other mitigating factors that are difficult to include in experience based estimating. Conclusion With SNAP there is now an industry size metric that can be used to measure non-functional changes however, you can use your own metrics as well. In many projects it is unnecessary to use a non-functional measure such as SNAP, as the amount of non- functional change impacted is not out of the ordinary (or typical for those projects used as a benchmark/ comparison) but the benefit is found when the degree of non-functional change is likely to skew the total effort needed to deliver the project and by extension have an untoward impact of productivity. Non-functional metrics will enhance your overall project metrics to give a more complete view of project size which greatly benefits the understanding of project performance and ultimately effort estimation.