Summary

Establish and maintain estimates of work product and task attributes.

Description

Size is the primary input to many models used to estimate effort, cost, and schedule. Models can also be based on other attributes such as service level, connectivity, complexity, availability, and structure.

 

Examples of attributes to estimate include the following:
  • Number and complexity of requirements
  • Number and complexity of interfaces
  • Volume of data
  • Number of functions
  • Function points
  • Source lines of code
  • Number of classes and objects
  • Number of database tables
  • Number of fields in data tables
  • Architecture elements
  • Experience of project participants
  • Amount of code to be reused versus created
  • Team velocity and complexity
  • Number of pages
  • Number of inputs and outputs
  • Number of technical risk items
  • Number of database tables
  • Number of fields in data tables
  • Architecture elements
  • Experience of project participants
  • Amount of code to be reused versus created
  • Number of logic gates for integrated circuits
  • Number of parts (e.g., printed circuit boards, components, mechanical parts)
  • Physical constraints (e.g., weight, volume)
  • Geographic dispersal of project members
  • Proximity of customers, end users, and suppliers
  • How agreeable or difficult the customer is
  • Quality and “cleanliness” of the existing code base


The estimates should be consistent with project requirements to determine the project’s effort, cost, and schedule. A relative level of difficulty or complexity should be assigned for each size attribute.

Example Work Products



  1. Size and complexity of tasks and work products
  2. Estimating models
  3. Attribute estimates
  4. Technical approach


Subpractices



1. Determine the technical approach for the project.

The technical approach defines a top-level strategy for development of the product. It includes decisions on architectural features, such as distributed or client/server; state-of-the-art or established technologies to be applied, such as robotics, composite materials, or artificial intelligence; and the functionality and quality attributes expected in the final products, such as safety, security, and ergonomics.



2. Use appropriate methods to determine the attributes of the work products and tasks to be used to estimate resource requirements.

Methods for determining size and complexity should be based on validated models or historical data.

The methods for determining attributes evolve as the understanding of the relationship of product characteristics to attributes increases.



3. Estimate the attributes of work products and tasks.

 

Examples of work products for which size estimates are made include the following:
  • Deliverable and nondeliverable work products
  • Documents and files
  • Operational and support hardware, firmware, and software