Using Function Points to Estimate Agile Development Programs
Glen Alleman MSSM
Vietnam Veteran, Applying Systems Engineering Principles, Processes & Practices to Increase the Probability of Program Success for Complex Systems in Aerospace & Defense, Enterprise IT, and Process and Safety Industries
Determining the size of system functionality and measuring the performance of project teams is the basis of successful projects. [1]
A Case Study of Cost Estimating Agile IT Systems at the Department of Homeland Security (DHS)
As federal agencies embraced the Agile software framework, the development teams describe the functionality of the desired system in the form of Features and Stories rather than the traditional Software Requirements Specification. [2] As Agile Software Development becomes the basis of system development, estimating the cost and duration of these systems becomes problematic.
The traditional approach of detailed functional user requirements (in terms of elementary fields, logical files, references to files, etc.) produces a measurement of the business value of an application and the cost to achieve that Value. These detailed requirements are no longer available in Agile development. In the traditional Function Point measurement methods, the International Function Point User Group (IFPUG) and Common Software Measurement International Consortium (COSMIC) approaches can be applied to produce an estimate.
Producing traditional estimates with IFPUG methods can be costly and time-consuming and require high levels of knowledge and experience for those making the estimates.
In Software Intensive System of Systems (SISoS) [3] implemented in a multi-tier environment, complexity is created by combinations of integrated systems, real-time applications, and embedded systems. The original Function Point Analysis was not designed to address these development approaches.
Simple Function Point (SiFP) [4] is an Agile approach to Function Point Analysis based on two Basic Functional Components (BFCs) compliant with the IFPUG standard. All the resources and contractual frameworks developed for IFPUG are also valid for Simple FP, starting from the ISBSG productivity database.
Estimation and project metrics based on functional sizing are good practices, regardless of the delivery framework used ? Agile or Traditional. They allow the project team to provide the business with realistic project cost and duration expectations and measure themselves against improvement goals and the industry. [1]
Assessment of Selected Concept of Operations (ConOps)
Software sizing, using Agile development, starts with a Concept of Operations (ConOps). A CONOPS is a high-level description of the actions to be taken in the pursuit of mission accomplishment.
A well-formed ConOps describes the characteristics of the proposed system from the point of view of the individuals using the system. Our work examined several ConOps. It was not intended to assess these ConOps against specific guidance formally. Still, the framework for a good ConOps is provided in a later section of this report from the Department of Homeland Security.
The framework in §3.0 is applied to each of these ConOps and summarized here:
Condition for SUccess Use of Function Points [6]
Several conditions must exist to succeed for Function Point Analysis and Simple Function Point measurement. These conditions start with the properly formed Concept of Operations (ConOps) that must provide the following information to develop the Function Point Model:
Moving Toward Successful Estimating of Agile
With the guidelines for developing a properly formed Concept of Operations, deploying a Function Point Analysis process using Simple Function Point measurement. Functional User Requirements (FUR) identify the functional processes. These processes are a set of sub-processes that are either movements or manipulations of data.
The SiFP method provides advantages to DHS, over traditional Function Point Analysis and other means of estimating software cost:
The first step in deploying Function Point estimate for agile programs is derived from Simple Function Point analysis. There are five elements of the Agile approach.
The number of data elements involved determines the range of values for each element. Since the Agile paradigm does not provide detailed information, a range of values can be used.
These values can be applied to the User Stories developed from the Features developed from the Agile Product Roadmap and Release Plan of the project.
领英推荐
A sample User Story from ConOps number 3 listed in Section 2.0 ? Concept of Operations Examined:
Create and maintain nonimmigrant biographical and dependent information in user accounts that give schools and sponsors unique identities.
The Story description in this example ConOps is likely too simple to estimate the work using Function Points (or any other method).
The ConOps needs to describe the needed Features in the following steps:
Conditions for Success Start with a Well Formed Concept of Operations (ConOps) [7]
The Concept of Operations is a Systems Engineering document describing the characteristics of a proposed system from the viewpoint of an individual who will use that system. Examples include business requirements specifications or stakeholders. A Sample Template and Guidance for the Concept of Operations Development and an example for Customs and Border Protections' Predator B.
A good Concept of Operations:
There are four major components of the ConOps.
Next Steps
Train, support, and mentor the development of a credible Concept of Operations for the sample program.
Using the ConOps, Select the sample program to estimate the cost based on IFPUG Function Point Analysis or SiFP analysis.
Start a repository of data from prior programs to calibrate the FPA database.
References
Here are a few guidelines and examples of estimating Agile software development using Function Points. The Simple Function Point site has guidance and Case Studies, which can be the Next Steps' starting point.
Footnotes
[1]?DHS Acquisition Instruction/Guidebook #102-01-001: Appendix F, located at https://dau.gdit.com/aqn201a/pdfs/APPENDIX%20F_CONOPS.pdf “Implementing an Estimating Process,” Tom Dekkers, Software Estimation Series, Galorath
[2] “Developing Operational Requirements: A Guide to the Cost-Effecrtive and Efficient Communication of Needs,” Version 2.0, Department of Homeland Security, November 2008.
[3] ISO/IEC/IEEE 42010:2011, Systems and Software Engineering ? Architecture Description
[4] “Simple Function Point Size Measurement Method Reference Manual,” SiFP-01.00-RM-EN-01.01, 2014
[5] “Is Function Point Analysis Valuable in an Agile Environment?” Tony Manno, DCG Blog, January 4, 2016
[6] “Simple Function Point Functional Size Measurement Method: Reference Manual, SiFP-01.00-RM-EN-01.01, March 2014.
Evolving Engineering Leader and Player/Coach: builds cohesive delivery teams of inspired, high-trust, and highly-motivated product developers who create satisfied customers and bottom-line business impacts.
1 年I'd like to experiment with this based on an approach I've been cultivating. Prework would be a high-level event map derived from the event storming ( Alberto Brandolini ) or event modeling ( Adam Dymitruk ) techniques, the purpose for which is ensure the system architecture separates the concerns of the evolving business landscape. Derived from that is a high-level C4 architecture model ( Simon Brown ) that's very close to the Concept of Operations you describe. From here I follow a technique pioneered by Neil Maiden in the late 1990's that describes the textual scenarios of behavior between agents of the system (my sketch of the technique can be viewed here: https://test-driven-development.github.io/decomposing-stories ).