- Click
on the Allocation Structure button.
The
user will be presented with the ALLOCATION_STRUCTURE worksheet as shown below:

- The
ALLOCATION_STRUCTURE worksheet captures the descriptions of the allocation
methodology, which includes the three levels of detail supported by the
CAM-TOOL (i.e., functional modules, submodules, and details), as well as
the selection of the allocation base (e.g., development hours, lines of
code, etc.)
- Users
of the CAM-TOOL should provide a description of how the three available
levels of detail are used in their cost allocation process, as show above
in cells E3 through E5.
- The
three allocation levels are similar to a work-breakdown structure for the
system development. The three allocation levels can represent distinct
levels and units of work during the system development.
An example of the three allocation
levels in use is as follows:
- Level
1 – Functional_Module: The system may have a functional module
called “Alerts”. This Alerts functional module relates to the development
(e.g., programming, testing, etc.) needed to generate system
notifications to users about due dates or past due work.
- Level
2 – SubModule: Within the Alerts functional module are two
submodules called “Management” and “Staff” to differentiate the system
notifications that will be developed for managerial purposes versus staff
work.
- Level
3 – Detail: Finally under the “Management” and “Staff” alert
submodules are the names of specific alerts that are designed for
management or for the staff using the system.
The following example of system functionality
mapped to the allocation STRUCTURE would appear on the DETAILS worksheet:
FUNCTIONAL_MODULE
|
SUB_MODULE
|
DETAIL
|
DESCRIPTION
|
Alerts
|
Management
|
AL1
|
Management Alert 1
|
Alerts
|
Management
|
AL2
|
Management Alert 2
|
Alerts
|
Management
|
AL3
|
Management Alert 3
|
·
It will be necessary for the project to categorize or map
its system functionality into distinct levels of work and units of work in
order to use the CAM-TOOL. The CAM-TOOL supports up to 3 levels of work. For
example, all functional modules do not have to have submodules or details and
all submodules do not have to have details. The CAM-TOOL will work with a
combination of the three different levels.
·
The project should estimate or track software development
level of effort (e.g., programming time, testing time, etc.) associated to the
system functionality related to the allocation STRUCTURE. For example, if there
is “Detail” level system functionality, then it is optimal to track the work
expended on details like a specific report. However, if the system has only
been divided into distinct submodules, then one can only capture level of
effort at the submodule level.
- Any
cost allocation methodology will use the estimated or tracked level of
effort expended on system functionality to determine the “fair share” of
costs for each of the benefiting programs.
- The
selected allocation base(s) represents the work and/or level
of effort that will be estimated or tracked for the system functionality
related to the allocation STRUCTURE to allow for proper cost allocation.
- Allocation
Base Examples:
Allocation Base
|
Description
|
SOFTWARE DEVELOPMENT HOURS
|
Estimated or actual development
hours expended on specific system functionality
|
STORAGE/DATABASE SIZE
|
Estimated or actual storage size
or database size related to specific system functionality
|
LINES OF CODE (LOC)
|
Estimated or actual lines of
code related to specific system functionality
|
FUNCTION POINTS
|
Estimated or actual function
points related to specific system functionality
|
SCREENS
|
Estimated or actual screens
related to specific system functionality
|
- It is
optimal to capture estimated or actual development hours, which indicates
both work and level of effort (i.e., benefit) of specific system
functionality.
- If it
is not possible to capture hours, then other allocation base options like
lines of code (LOC) can be used in the cost allocation methodology.
However, allocation base options like LOC measure size and do not indicate
level of effort.
- For
example some very complex functionality of the system may only have 30
lines of code, but may have taken a lot of time to develop and test
versus some simple functionality with 100 lines of code.
- If
the project selects an allocation base like LOC, that does not measure
level of effort, then it will be necessary to create a weighting system
to designate some level of effort for the system functionality related to
the allocation STRUCTURE. The weighting system should be described on the
WEIGHTING_SYSTEM worksheet. However, the actual weight values for the
system functionality are entered on the ALL_SYSTEM_USAGE worksheet.
- Users
need to enter the selected allocation base(s) and the description of the
base(s) starting in Cell D10 of the ALLOCATION_STRUCTURE worksheet.