Estimating Staffing Levels for Software Projects
Estimating Staffing Levels for Software Projects
Aligning staffing levels with the Rayleigh curve ensures resource optimization throughout project phases, reducing work inefficiencies. Proper alignment prevents staffing from becoming a bottleneck during critical work periods and avoids slack during less intensive phases, thus minimizing excess cost and schedule delays. This adaptive staffing helps maintain project momentum and enables smoother transitions between phases .
Norden's approach, which focused on R&D projects, introduced the concept of approximating staffing patterns with the Rayleigh distribution curve. This approach was not initially specific to software projects but provided a framework for understanding staffing needs over time. Putnam expanded on Norden's work by applying the Rayleigh-Norden curve specifically to software projects. He established a relationship between the number of delivered lines of code, effort, and development time, showing how the same curves could model software project staffing patterns. Putnam found that optimal staff build-up follows the Rayleigh curve, requiring gradual increases and decreases in staff to avoid schedule slippages and inefficiencies .
The state of technology constant (Ck) in Putnam's model reflects constraints that impede the programmer's progress, including the development environment quality. It distinguishes between poor, good, and excellent environments, denoting how they impact productivity. For instance, poor environments (Ck = 2) lack formal methodologies and documentation, while excellent environments (Ck = 11) leverage automated tools and adhere to software engineering principles. Understanding Ck helps organizations gauge their development capability and adjust staffing and timelines accordingly .
The Rayleigh distribution curve models staffing level changes by mapping effort over time. Initially, few engineers are needed in planning, with staffing peaking as detailed work begins. This demand drop after implementation and testing phases uses a ‘bell-like’ distribution to depict the rise and fall of resource needs. Hence, the curve advises on staffing strategy changes as projects progress to maintain efficiency and timeliness .
Increasing team size too rapidly can correlate with schedule slippage. This disrupts the natural staffing pattern recommended by the Rayleigh-Norden approach, leading to misaligned workloads and project inefficiency. Smooth incremental changes in team size better accommodate workload variations and keep the project on schedule and budget .
In Putnam's formula, 'K' represents the total effort expended in person-months on the product development, while 'td' is the time corresponding to system and integration testing. The two are directly related through the formula L = Ck K1/3td4/3, where L is the product size. The relationship indicates that effort (K) is affected by the project’s schedule (td), and compressing 'td' demands much higher effort, reflecting the project's complexity and resource requirements .
Putnam identified that compressing the schedule of a software project increases the required development effort and the project cost, in proportion to the fourth power of the degree of compression. This implies that even small reductions in schedule time can significantly inflate costs and human effort, highlighting the inefficiency and risks of overly aggressive timelines .
A constant level of manpower is inefficient because it does not account for varying workload across different project phases. During some phases, excessive staffing can lead to understimulated engineers, while other phases may suffer from understaffing, causing delays. The Rayleigh-Norden staffing pattern recommends adjusting staffing levels to match the workload curve, ensuring optimal resource allocation. Failing to do so leads to wasted effort, increased costs, and potential schedule slips .
The expression implies that for a fixed product size, any reduction in development time 'td' must be compensated by increased effort 'K', which escalates due to the td4 term. This insight is critical for project managers assessing the trade-offs between timeline compression and resource allocation, as it cautions against overly ambitious scheduling that could exponentially increase costs and operational stress .
The Rayleigh-Norden model mitigates delays and costs by promoting gradual and strategic adjustments in staffing levels to match project progression. By avoiding rapid changes and constant staffing, the model aligns workforce with workload, reducing idle periods and stressful crunch times, both of which can lead to inefficiency and schedule slippages. This dynamic alignment minimizes the risk of unforeseen challenges and cost overruns .