What is the difference between the Base Size Unit and the Function Unit?
The Function Unit is a measure of software size, which represents the project scope or the amount of work to be done. It makes sense to dscribe a book as a collection of chapters, or a building by the number of floors or rooms it contains. The Function Unit allows us to describe a system as a group of functional or logical components, e.g., Function Points, features, reports, or interfaces.
The QSM database contains thousands of projects sized in different Function Units. Without a common reference point it would be impossible to make meaningful size comparisons between a project sized in Function Point to one sized in User Stories. The Base Size Unit represents the most common, elementary programming steps being performed. Historically, that was writing lines of code and labeled Source Lines of Code (SLOC). With the introduction of modern development tools, a more generic term, Implementation Unit (IU) was added to account for tasks such as configuring packages or using a GUI interface to build a cloud infrastructure. To normalize the Function Units to the Base Size Unit so project data can be used in scatter plots for comparison and to create statistical trend lines, we need a conversion, or Gearing Factor that tells us how big components are relative to each other. For example, a common Gearing Factor for Functions Points is 50 IU/FP - on average it takes 50 programming steps to implement 1 Function Point.
The Base Size Unit is set by going to Tools | Customize Global Options. Choose the acronym that reflects the work being performed - typically IU or SLOC. The Gearing Factor of the Base Size Unit is always 1 - it cannot be set the the user.
The Function Unit is set by going to Tools | Customize Project Environment, Project Environment tab. In the Product Construction area, select the Function Unit that matches the data available or the development method. In the Agile-Story-Pnt Estimation template installed with SLIM-Estimate, the Function Unit has been set to Story Points with a Gearing Factor of 85 (IU/Story Pnt). This allows all charts and reports to display the Effective and Total Size in Story Points, which is great for communicating with the Agile community.
Setting the Function Unit to the Base Unit makes it possible to use any number of component types or size units to measure all or parts of the system. For example, QSM's Package Implementation template contains a Sizing by Decomposition method based on RICEF objects, using different gearing factors for each object type. This method captures component complexity by supply appropriate gearing factors for simple, average, and complex components like reports and conversions.