What is the distribution of effort of a software project

I received an email this morning asking, “What is the effort distribution across a software development life-cycle?”  This is a great question and it is important information for your organization to learn and understand.  I have been tracking this type of data since the 1980’s.

It turns out there is a relationship between how a software organization spends its time and productivity.  The more time it spends in coding and testing the lower the software productivity and quality rates.    Those organizations that spend the most time in requirements and analysis have the highest productivity rates.  The data is conclusive on this point.

In 1980 the best in class software organizations spent about 80 percent of it’s times in coding and testing.  Today the best in class organizations spend about 25% of it’s time in coding and testing.    Today those organizations with the lowest productivity and quality rates spend the bulk of time it’s coding and testing.

While the data does vary depending on the type of industry, the conclusion remains the same regardless of industry.  For example,  the Healthcare industry has the highest productivity and quality rates of any industry.   Those HealthCare IT organizations that spend the most time in requirements and analysis have much higher productivity rates than those HealthCare IT organizations that spend the bulk of its time in coding and testing.

The bottom 25 percentile have a breakdown as follows.

Requirements 15%
Design & Analysis 10%
Coding  35%
Testing  40%

The top 25 percentile have a breakdown as follows.

Requirements 35%
Design & Analysis 40%
Coding 10%
Testing 15%

Read more at Reboot! Rethinking and Restarting Software Development.

Advertisements

The URI to TrackBack this entry is: https://davidlongstreet.wordpress.com/2009/05/14/what-is-the-distribution-of-effort-of-a-software-projects/trackback/

RSS feed for comments on this post.

4 CommentsLeave a comment

  1. Hi,

    I am a software developer with around 3 years of work experience on Microsoft platform. I have worked into multiple projects with diverse business requirements and I’ve concluded the following:

    1. Its very important to have a thorough understanding of the functional aspects like understanding the business effectively for every level, being a Tech Lead, Team Lead, a developer or a Trainee that should give best clarity to the person which is working on something.

    Generally People with improper clarity tends to make out a solution which never fits into the functional aspects.

    2. Organisational Behaviour plays a key role if there is a lack of motivation among the team players, random tricks are being played which never results in any fruitful outcome.

    • That is a great comment. I concur that organizational behavior plays a significant (perhaps the most) role in software development. Over the years I have learned most software project failures are the result of something other than a technical problem or issue.

      • Thanks david,

        I also feel that generally there is a trend among software developers that instead of figuring out the root cause, they try to find out the other way round to fix the bug. It happens among mostly those organizations which are non-process driven and where working deliverable is more important than the quality benchmarks.

  2. I tankfull to u for this knowladgeful information.but i ask u somthink to u that please write in easy laguage because some student do not understand diffcult language


Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: