This is another one of the most confusing terms that carries a different meaning when used in Information Technology and business, versus the Function Points use of the term. For business and IT professionals, the term ‘enhancement’ or ‘enhancement project’ refers to any project where the existing software is enhanced in terms of performance, appearance, function, operation, platform, usability, etc.
Note: ‘Enhancement projects’ are often discerned by both users and developers from the term ‘maintenance’ in that the latter pertains to work done to keep the existing software up and running.
All of the following are examples of what our clients’ users and developers would refer to as software ‘enhancements’:
- Making changes / additions to hard coded data within the system
- Populating new occurrences of dynamic data (e.g., having developers do data administration / table population as part of the project either manually or with the use of tools)
- Upgrading software to be compatible with new database releases (such as a new Oracle release)
- Splitting one physical screen into multiple physical screens (but not changing the functionality)
- Changing error message text to be more “user friendly”
- Cosmetic screen or report rearrangement, adding more screen highlighting, or creating additional menus (restructuring the navigation)
- Adding new peripheral devices (such as adding the ability to print to laser printers on a formerly dot-matrix only network)
- Testing one application to verify the expected effects of changes in another application
- Increasing the results list for an existing report by adjusting a filter to retrieve more valid values
- Adding data elements to an existing report
This is very different from ‘enhancement’ in the context of function point counting, where it means Functional enhancement. The IFPUG Counting Practices Manual (IFPUG 4.1) Glossary definition is:
‘Enhancement project function point count (EFP). A count that measures the modifications to the existing application that add, change, or delete user functions delivered when the project is complete.’
‘Enhancement’ in function point terminology strictly refers to logical, functional enhancements, i.e., only those modifications to the logical user requirements or elementary processes (EI, EO, EQ, ILF or EIF) of the software. As such, if an ‘enhancement project’ in business terms does not create new logical functions, modify existing logical functions, or remove logical functions from the software — NO function points can be counted. What this means is that out of the previous list of enhancements in the business and IT context, potentially only the last point (adding new data elements to an existing report) would count ANY function points. This is because the remaining list items are not considered to be functional enhancements, and therefore, would score zero FP.
This can be very frustrating to the uninitiated Function Point practitioner who does not have an appreciation for the importance of the context in which the term ‘enhancement project’ is used. Remember, enhancement project to the business/IT community is not necessarily considered to be an enhancement project when counting function points.