Putnam Model
Definition
The Putnam Model, also known as the Software Equation or the Rayleigh Curve Model, is a mathematical model used for software project management, specifically for estimating the effort, schedule, and productivity required for software development projects. Developed by Lawrence H. Putnam in the 1970s, the model uses empirical data to create a relationship between project size, effort, and time. It is based on the observation that the distribution of software development effort over time follows a Rayleigh curve, with a peak at the middle of the project and gradually tapering off towards the end.
Purpose and Role
The Putnam Model serves several purposes in software project management:
- Effort Estimation: The model provides a method for estimating the effort required to complete a software development project, based on the project's size and historical data from similar projects.
- Schedule Estimation: The model can also be used to estimate the project schedule, helping project managers determine how long the project will take to complete.
- Productivity Measurement: By comparing actual project data to the estimates generated by the Putnam Model, project managers can assess their team's productivity and identify areas for improvement.
- Resource Allocation: The model can be used to guide resource allocation decisions, ensuring that an appropriate balance between effort, schedule, and productivity is maintained throughout the project.
Components
The Putnam Model consists of the following components:
- Software Size: Measured in thousands of lines of code (KLOC) or function points, software size is an essential input to the model, as it directly impacts the effort and schedule estimations.
- Effort: Measured in person-months, effort is the amount of work required to complete the project, estimated based on the project size and historical data.
- Schedule: The project schedule, measured in months, is estimated using the software size and effort estimates.
- Productivity: A measure of how efficiently the project team is using their resources, productivity is calculated by comparing actual project data to the estimates generated by the Putnam Model.
- Rayleigh Curve: A curve that represents the distribution of effort over time, the Rayleigh curve forms the basis of the Putnam Model and is used to estimate the project schedule.
Importance
The Putnam Model is essential for software project management, as it provides a method for estimating effort, schedule, and productivity based on empirical data. Accurate estimations can help project managers make better decisions regarding resource allocation, risk management, and project planning, ultimately leading to more successful software development projects.
Pros and Cons
Pros:
- Empirical Basis: The Putnam Model is based on empirical data from completed software projects, making its estimations more reliable than those based on subjective opinions or intuition.
- Simplicity: The model is relatively simple and easy to understand, making it accessible to project managers and stakeholders.
Cons:
- Limited Applicability: The Putnam Model may not be suitable for all types of software projects, particularly those that do not follow a traditional development process or have unique characteristics.
- Inaccurate Size Estimates: Estimating software size accurately can be challenging, and inaccurate size estimates can lead to errors in effort and schedule estimations.
- Overemphasis on Lines of Code: The use of lines of code as a measure of software size has been criticized, as it does not account for factors such as code quality, reusability, or complexity.