There are 21 effort multipliers used by the estimating model. 16 are historically COCOMO effort multipliers while the other 5 are historically CORADMO effort multipliers. CORADMO effort multipliers are used a little differently from CORADMO ones. This will be explained. This post is organized by the subject area of the effort multiplier.
Architecture / Risk Resolution (RESL)
This effort multiplier is in a class by itself. It is also a COCOMO scale factor as was explained in Cost Drivers – Scale Factors. In that section, it was also explained what values to use when it is used as a CORADMO an effort multiplier. This must cost driver must be used as both a scale factor and an effort multiplier and it must be evaluated in the same way.
Product Factors
Size is the primary determinant of the amount of effort and schedule required for software development. Size is a function of the amount of functionality, often measured in function points, and the programming language used to develop the software. However, no one should expect that two 500 function point applications implemented in Java will take the same time to develop. Product factors will explain some differences.
Required Software Reliability (RELY)
This is a measure of the importance of the software performing properly. It is arrived at by considering the impact of software failure. The descriptions and associated multipliers are:
- Slight inconvenience – Very Low – .82
- Low, easily recoverable losses – Low – .92
- Moderate, easily recoverable losses – Nominal – 1.00
- High financial loss – High – 1.10
- Risk to human life – Very High – 1.26
Database Size (DATA)
This really measures the impact of the number of test cases. The database size refers to the size of the database used in testing, not production. Take the ratio of kilobytes of test data to SIZE as was calculated in Transforming Size into Schedule and Effort. Use the resulting ratio to assign an effort multiplier using these rules:
- DB KB / SIZE < 10 – Low – .90
- DB KB / SIZE < 100 – Nominal – 1.00
- DB KB / SIZE < 1000 – High – 1.14
- DB KB / SIZE >= 1000 – Very High – 1.28
Product Complexity (CPLX)
Two applications can have the same number of screens and reports, but be much different in terms of complexity. The more complex one should take more effort to develop. There are six levels of complexity to choose from, from very low to extra high.
A nominal application would be programmed using the simple conditional statements that are part of most programming languages and decision tables. It might use standard math and statistics routines. Input and output processing might include the selection of an appropriate device, checking its status and reporting errors. Data management might include files or complex COTS-DB queries and updates.
Very low and low complexity would be more simple. Very low might contain straight line code with a few conditional operations. Low complexity might include nested control structures. Computationally, very low would only include general arithmetic, while low might include use standard functions like SQRT. Very low would read and write from and to default devices, low complexity also has no cognizance of device, but might have writing of binary information. Simple and moderately complex COTS-DB functions might be used. Very low complexity applications use simple input forms and report generators; low complexity might use simple GUI builders.
High, very high and extra high are also possible choices. At the coding level, they might use capabilities like recursion. Very high may handle fixed priority interrupt handling while extra high might handle dynamic priority ones. Extra high includes the type of programming that is necessary for distributed real-time control. Computationally, these higher levels might involve numerical analysis, simple partial differential equations or analysis of stochastic data, respectively. Device dependent operations might include physical storage transactions, performance intensive embedded systems or performance critical embedded systems, respectively. Data management might involve complex data restructuring, search optimization or natural language data management, respectively. The user interface might involve multimedia, dynamic graphics or virtual reality, respectively.
The effort multipliers for these complexity rating levels are:
- Very low – .73
- Low – .87
- Nominal – 1.00
- High – 1.17
- Very High – 1.34
- Extra High – 1.74
Developed for Reuse (RUSE)
It is common for code that is developed to be reused throughout the project. If a new screen similar to an existing one is to be developed, much of the code will be reused. This has a rating level of nominal. Occasionally, “throw away” code is developed that has no possibility of reuse. This has a rating of low. Otherwise, code is developed that will be reused across a program (high), a product line (very high) or multiple product lines (extra high). A program would probably be for a single type of family of applications for a single organization. Like several sales applications. The higher forms of reuse are for situations where there are multiple types of applications, like sales and marketing. Also, a higher form a reuse might involve multiple organizations.
There is a relationship between the required reliability and reuse. The value for RELY should be at most one level below the RUSE rating. The effort multipliers are
- Low – .95
- Nominal – 1.00
- High – 1.07
- Very High – 1.15
- Extra High – 1.24
Documentation Match to Life-Cycle Needs (DOCU)
For any project, especially an agile one, the value should be 1.00. This means that just the right amount of documentation is being produced. This is normally user stories and backlogs. There is a relationship between RUSE and DOCU. If RUSE is very high or extra high, then DOCU should be at least high. The descriptions rating levels and effort multipliers are:
- Very Low – Many life-cycle needs uncovered – .81
- Low – Some life-cycle needs uncovered – .91
- Nominal – Right-sized to life-cycle needs – 1.00
- High – Excessive for life-cycle needs – 1.11
- Very High – Very excessive for life-cycle needs – 1.23
Platform Factors
These factors apply to the target machine where the application will be placed into production.
Execution Time Constraint (TIME)
The descriptor, rating levels and effort multipliers are:
- Nominal – Less than 50% use of available execution time – 1.00
- High – 70% use of available execution time – 1.11
- Very High – 85% use of available execution time – 1.29
- Extra High – 95% use of available execution time – 1.63
Main Storage Constraint (STOR)
The descriptor, rating levels and effort multipliers are:
- Nominal – Less than 50% use of available storage – 1.00
- High – 70% use of available storage – 1.05
- Very High – 85% use of available storage – 1.17
- Extra High – 95% use of available storage – 1.46
Platform Volatility (PVOL)
The platform consists of the hardware, operating system, network and database management system. The descriptor, rating levels and effort multipliers are:
- Low – Major change every year – .87
- Nominal – Major change every 6 months – 1.00
- High – Major change every 2 months – 1.15
- Very High – Major change every 2 weeks – 1.30
Personnel Factors
The personnel factors are the most important factors in determining effort and schedule for a system of a given size. They can be used in two ways. If the team has been assembled, then their capabilities can be considered to develop the best estimate possible. If the team has not been assembled, then each of these capabilities can be entered as nominal. Alternatively, the estimator can specify what attributes the team must possess in order to complete the project in the required time frame and with a certain degree of effort. This can then guide the recruiting process used to assemble the team.
In is important to recognize that these factors apply to the team as a whole, not the individuals. In an agile team, everyone is responsible for analysis, design, construction, testing and management tasks. The team may be strong in capabilities that certain members completely lack.
Analyst Capability (ACAP)
This driver considers capabilities in analysis and design. The ability to communicate and cooperate are also considered. Experience is considered in other factors. This one is strictly capability measured by the team’s standing relative to others, as shown in this mapping of percentile to effort multiplier:
- Very Low- 15th percentile – 1.42
- Low – 35th percentile – 1.19
- Nominal – 55th percentile – 1.00
- High – 75th percentile – .85
- Very High – 90th percentile – .71
Programmer Capability (PCAP)
This driver considers capabilities in programming. It considers efficiency and thoroughness. The ability to communicate and cooperate are also considered. Programmer capability is independent of the computer language that will be used. That, along with experience, is considered in other factors. This factor is strictly capability measured by the team’s standing relative to others, as shown in this mapping of percentile to effort multiplier:
- Very Low- 15th percentile – 1.34
- Low – 35th percentile – 1.15
- Nominal – 55th percentile – 1.00
- High – 75th percentile – .88
- Very High – 90th percentile – .76
Personnel Continuity (PCON)
This factor considers the percentage of the team that leaves every year and needs to be replaced. Note that this is turnover, and it is the inverse of continuity. The mapping of this percentage to the effort multiplier is:
- Very Low- 48% – 1.29
- Low – 24% – 1.12
- Nominal – 12% – 1.00
- High – 6% – .90
- Very High – 3% – .81
Application Experience (APEX)
This factor considers the experience of the team with the business area or type of application being developed. The mapping experience to the effort multiplier is:
- Very Low- 2 months or less – 1.22
- Low – 6 months – 1.10
- Nominal – 1 year – 1.00
- High – 3 years – .88
- Very High – 6 years – .81
Platform Experience (PLEX)
This factor considers the experience of the team with the graphic user interface, database and networking that will be used in the project. The mapping experience to the effort multiplier is:
- Very Low- 2 months or less – 1.19
- Low – 6 months – 1.09
- Nominal – 1 year – 1.00
- High – 3 years – .91
- Very High – 6 years – .85
Language and Tool Experience (LTEX)
This factor considers the experience of the team with the programming language being used. This also considers the entire development environment, including text editors, debuggers, source code managers. The mapping experience to the effort multiplier is:
- Very Low- 2 months or less – 1.20
- Low – 6 months – 1.09
- Nominal – 1 year – 1.00
- High – 3 years – .91
- Very High – 6 years – .84
Reuse and Very High Level Languages (RVHL)
This measures the team’s experience with rapid prototyping. Reuse here is non-code reuse. For example, if the team uses a design guide to help quick start some user decisions. Very high level languages (VHLL) are often domain specific languages that the team will use, usually for prototyping.
This cost driver was historically from the CORADMO set. These drivers may impact effort and schedule differently. The mapping from team prototyping experience to effort and schedule multipliers is:
- Very Low – None of the team members have any experience using rapid prototyping – Both effort and schedule multipliers are 1.01
- Low – On average, team members have experience in less than one project using rapid prototyping – Both effort and schedule multipliers are 1.00
- Nominal – Most team members have worked on more than one project using rapid prototyping – Effort multiplier is 1.00 and schedule multiplier is .99
- High – On average, team members have worked on more than 2 projects using rapid prototyping – Effort multiplier is .99 and schedule multiplier is .98
- Very High – All team members have worked on 3 projects using rapid prototyping – Effort multiplier is .98 and schedule multiplier is .97
Project Factors
COCOMO II recognized two project factors: the use of software tools and multi-site development. These are still important, but agile development must consider some additional factors. These additional factors are taken from the CORADMO model.
Use of Software Tools (TOOL)
This factor considers the type of development tools that will be used for this project. The mapping of tool type to the effort multiplier is:
- Very Low- simple editors, compilers and debuggers – 1.17
- Low – Simple CASE tools with little integration – 1.09
- Nominal – Basic life cycle tools with moderate integration – 1.00
- High – Strong life-cycle tools that are moderately integrated – .90
- Very High – Strong tools well integrated with the organization’s development processes – .78
Multisite Development (SITE)
In the perfect world of agile development, all developers and users are collocated. This is usually impossible. People can be virtually collocated if they have interactive multimedia connections to bind them together. This factor only considers the developers. These guidelines are used to assign an effort multiplier:
- Very Low – An international team communicating by snail mail and pay phones – 1.22
- Low – Multi-city and multi-company with phones and faxes – 1.09
- Nominal – Multi-city or multi-company with basic e-mail – 1.00
- High – Same metro area or wide-band electronic communications – .93
- Very High – Same building complex or occasional video conferencing – .86
- Extra High – Fully collocated, either virtually or in reality – .80
Development Process Re-engineering and Streamlining (DPRS)
This measures the project’s ability to re-engineer and streamline development processes. To a large extent, this is the inverse of bureaucracy. To determine this consider the following project attributes:
- Number of approvals required per task
- Time taken per approval
- Reduced task dependencies and critical path tasks
- Tendency to follow-up to expedite task completion
- Process measurement and streamlining
This cost driver was historically from the CORADMO set. These drivers may impact effort and schedule differently. The mapping from bureaucracy to effort and schedule multipliers is:
- Very Low – Heavily bureaucratic – Effort multiplier is 1.15 and schedule multiplier is 1.16
- Low – Bureaucratic – Both effort and schedule multipliers are 1.06
- Nominal – Basic good business practices – Both effort and schedule multipliers are 1.00
- High – Partly streamlined – Both effort and schedule multipliers are .98
- Very High – Fully streamlined – Effort multiplier is .95 and schedule multiplier is .94
Pre-positioning Assets (PPOS)
This reflects the assets that are made available to the project at the very beginning. These may be design guides, processes, tools or components. They have been developed for this project before the project began.
This cost driver was historically from the CORADMO set. These drivers may impact effort and schedule differently. The mapping from the type of asset to effort and schedule multipliers is:
- Nominal – Basic project legacy with no tailoring – Both effort and schedule multipliers are 1.00
- High – Some tailored assets – Effort multiplier is 1.03 and schedule multipliers are .93
- Very High – Key assets are tailored – Effort multiplier is 1.06 and schedule multiplier is .86
- Extra High – All assets are tailored – Effort multiplier is 1.1 and schedule multiplier is .80
Collaboration Efficiency (CLAB)
Agile development is impossible without collaboration between the stakeholders and the developers. This factor that spans several other areas. The stakeholders must be committed, the development team must be capable and everyone must be able to communicate effectively. This factor becomes a fuzzy average of the TEAM scale factor, all of the personnel factors and the SITE factor. It is fuzzy because a significant weakness in any of these factors will drive CLAB much lower.
This cost driver was historically from the CORADMO set. These drivers may impact effort and schedule differently. The mapping from the fuzzy average to effort and schedule multipliers is:
- Very Low – Effort multiplier is 1.12 and schedule multiplier is 1.13
- Low – Both effort and schedule multipliers are 1.06
- Nominal – Both effort and schedule multipliers are 1.00
- High – Effort multiplier is .97 and schedule multipliers are .96
- Very High – Effort multiplier is .93 and schedule multiplier is .92
- Extra High – Effort multiplier is .91 and schedule multiplier is .89
Leave a Reply