There is an old management adage “You can’t manage what you don’t measure”, which is still very accurate in today’s day. Unless you measure something, you don’t know if it is getting better or worse. You can’t manage improvement if you don’t measure to see what is getting better and what isn’t. With a clearly established measurement metric for success, you can quantify progress and adjust your process to produce the desired outcome. Without clear objectives, you’re stuck in a constant state of guessing.
In this modern era, when the software industry is moving to Digital, E-commerce, Analytics, Cloud, Virtual reality, Artificial intelligence etc., it has become a major challenge to quantify or size non-functional user requirements (NFRs). These requirements are primarily related to usability, security, performance efficiency, reliability, portability, maintainability, compatibility & functional stability related aspects of the application. It has been observed that in most modern-day software applications, more than 50% of the life cycle cost are related to NFRs.
Until recently, sizing NFRs was not covered by any standard structured measurement methodology. It has been done using Work Breakdown Structure (WBS) based expert judgement approach which is not only people dependent but also depends upon the knowledge of similar NFRs encountered in past projects. Also, since the NFRs mostly impact the behaviour of application, its quantification is often subjective and debatable.
To overcome the difficulty of measuring NFRs, International Function Point User Group (IFPUG) created a Non-Functional Software Sizing Committee (NFSSC). This committee came up with a mature standard methodology ‘Software Non-Functional Sizing Process (SNAP)’ in April 2013. The primary objective of SNAP was to provide a quantifiable measure for the Non-Functional size of software products in order to: a) Improve software cost & resource estimation; b) improve productivity & quality measurement; c) build better benchmarks & d) better communicate non-functional issues among all stakeholders.
ISO/IEEE 25010 has defined 31 non-functional characteristics. All these characteristics are logically grouped under the SNAP framework. SNAP’s latest Assessment Practices Manual (APM 2.3) provides all definitions, guidelines, rules and formulas to capture and measure every non-functional requirement present in the software. It provides the non-functional size which should be used in conjunction with functional size for estimations and productivity or quality analysis.
SNAP is simple enough to minimize the overhead of the measurement process and is a consistent measure among various projects and organizations. Global organizations have realised the importance of measuring non-functional aspects of software and are gradually adopting SNAP as their de facto standard non-functional measurement methodology.
Function Point & SNAP Consultant