Software Estimation Best Practices

Blogs

Practical Software Sizing Methods

Sizing is arguably the most challenging part of any software estimate. Without a notion of functional size, managers may find it difficult to negotiate realistic schedules based on their demonstrated ability to deliver software. They are unable to show empirically why the twelve person team that worked so well on a 150,000 ESLOC project over six months not only fails to deliver a 75,000 ESLOC project in half the time, but produces an error-ridden product that infuriates the customer. Unlike manufacturing shoes, software development is full of non-linear relationships between size, time, effort, and defects. What data driven estimation does successfully is arm managers with the ability to sanity check their current plans against past performance and negotiate achievable outcomes based on a realistic assessment of how much functionality can be built with a set time frame and resource profile.

So how do project managers get a better handle on size? The best place to start is with establishing a practical method for size estimation.

Read the full white paper!

Blog Post Categories 
Sizing

30 Years of Innovation

Progress, far from consisting in change, depends on retentiveness. When change is absolute ...no direction is set for possible improvement... when experience is not retained, as among savages, infancy is perpetual. Those who cannot remember the past are condemned to repeat it.

- George Santayana, The Life of Reason

The French have a saying: "Plus ca change, plus c’est la meme chose".

That time tested axiom aptly summarizes QSM's 30 years of experience in the software industry. In the three decades since a senior Army Colonel first explored the relationship between software size, schedule, effort and defects, Larry Putnam’s original work has been refined, retested and ultimately reinforced by the dizzying pace of modern software development. Tools and methods du jour continue to replace their predecessors in quick succession but our research shows a reassuring constancy in the fundamentals of software development.

In retrospect, it is not surprising that Larry's work stood the test of time. His approach - practical, results oriented software measurement - was dictated by a feeling familiar to beleaguered developers: pain. When he arrived at the Army Computer Systems Command in the mid-1970s, software cost estimation relied on a simplistic productivity measure: lines of code per person month of effort. Dividing this ratio by the estimated size of the contemplated software product yielded total effort, which could then be divided by planned effort resource gave a schedule estimate that could be tweaked if needed.

System Characteristics