Agile Zone is brought to you in partnership with:

Bob Hartman has spent 30+ years in software development. His logic-based approach to development and quality was honed early in his career when he obtained Bachelors and Masters degrees in Computer Science from Rensselaer Polytechnic Institute. Over the past 10 years he has grown from being an early adopter of agile to his current status as a Certified Scrum Trainer (CST) and Certified Scrum Coach (CSC). He also remembers the pain of long waterfall development cycles and understands the human and business interactions necessary to achieve success regardless of development methodology. Bob is a DZone MVB and is not an employee of DZone and has posted 22 posts at DZone. You can read more from them at their website. View Full User Profile

How to Make a LOT More Money Using Agile

04.16.2011
| 820 views |
  • submit to reddit
Yesterday’s blog post dealt with how to manage scope for an agile project.  Today I have to admit it was a bit of a setup.  It was designed to set up today’s blog post which is really the important one!

See that pile of money over there to the left?  That represents a small fraction of the amount of money your organization is potentially wasting by not being able to properly manage the scope of projects.  I want to be clear this is not about project delays and overruns caused by scope creep.  I am actually writing about something completely different.  Something much more fundamental and actually fairly easy to obtain when an organization has truly embraced all that agile has to offer.  To me this is one of the most important benefits of agility, but the number of organizations doing it well is extremely small.  Warning, this is a LONG blog entry, but I think it is well worth the effort to read it!

The topic I’m writing about is the ability to manage scope and expectations properly.  The gains available by doing this are truly staggering.  If your organization was given the opportunity to increase ROI by 100% per project would someone in the organization be tasked with looking into the opportunity?  What if the ROI per project could be increased by 200%?  If the opportunity was for 500% increase in ROI per project would your organization perhaps have more than one person look into the opportunity, or would it sound too good to be true and therefore be discounted?  I know this sounds unbelievable, but the ability to achieve much, much higher ROI is very real, and it only depends on your organization’s ability to manage scope and expectations effectively.

Do I have your attention yet?  I hope so because this is really valuable information that most people just gloss over in various agile courses.  I have to admit that I didn’t cover it very well until recently.  I glossed over it mostly because I didn’t understand it very well.  Now I understand it and I’ll try to help you understand it.  The basic concept is VERY simple and can be covered with just 3 words:

More frequent releases

Yup, that’s the key.  It is much easier said than done though.  It means expectations must be set for releases to be smaller but still have significant marketable value.  It also means managing scope for smaller releases so the value can actually be delivered to meet the expectations.  If we make the assumption these two pre-requisites can be handled, then we can also assume faster releases are possible.  Yes, I know, releasing software is expensive, requires other groups, etc.  For now, let’s assume all of those costs are negligible compared to the potential results and see where we end up.

Let’s use a standard scenario as a starting point.  In this scenario a team of 8 people work on a project for a year with an anticipated ROI of 100% after 2 years.  In numbers this means the organization spends $1,000,000 (approximately) in 12 months to build the product and they expect to get $2,000,000 in revenue within the 12 months following release.  ROI is calculated as $profit/$invested which in this case is ($2,000,000-$1,000,000)/$1,000,000 or 100%.  Another interesting number is cash expended, which in this case exactly matches the investment since we did all of the investment prior to receiving any return.

Let’s assume that scope can be managed so the product can be delivered in two phases, each taking 6 months.  Let’s further assume each piece of the product is worth about half of the revenue value of the complete product.  In this case the team works 6 months at an investment of $500,000 to build the first piece of the product.  They then work 6 more months at an additional cost of $500,000 to complete the second half of the product.  However, after 6 months revenue starts to be brought in for the first release.  This revenue equals half of what was originally expected for a full product, so after going through some calculations we realize the amount of revenue during the first 6 months of release of the first half of the product would be $500,000 ($2,000,000 for full product for 12 months = $500,000 for half product for 6 months).  Interestingly, this exactly matches the cost for building the second half of the product, so the cash expended is actually only $500,000 for building the product vs. $1,000,000 for building the product in one step.

Now let’s look at the other numbers.  After phase 2 of the product is completed it too starts to bring in revenue.  We now have the complete product, so we can get full value of it during each time period.  In other words, during the next 12 months it will generate $2,000,000 in revenue.  This brings total revenue to $2,500,000 which means our ROI is now 300% (higher profit divided by smaller investment – $1,500,000 profit / $500,000 invested).  Remember, all we did was have two releases of approximately equal value.  Nothing else changed, but half the cash was saved and more revenue was generated.  Here is a table showing this scenario:

Month Expense Revenue Cash (Profit) Total Revenue
6 $500,000 $0 -$500,000 $0
12 $500,000 $500,000 -$500,000 $500,000
24 $0 $2,000,000 $1,500,000 $2,500,000

 

Time to take another step.  Let’s make the assumption we can release 4 times per year with approximately equal valued releases and the same assumptions as in the above scenarios.  Now we work 3 months at a cost of $250,000 to generate release 1.  We do the same thing every 3 months until the year is completed.  Each release generates 25% of the value of the entire release, which over a 3 month period would be $125,000.  This leads to the following table:

Month Expense Revenue Cash (Profit) Total Revenue
3 $250,000 $0 -$250,000 $0
6 $250,000 $125,000 -$375,000 $125,000
9 $250,000 $250,000 -$375,000 $375,000
12 $250,000 $375,000 -$250,000 $750,000
15 $0 $500,000 $250,000 $1,250,000
18 $0 $500,000 $750,000 $1,750,000
21 $0 $500,000 $1,250,000 $2,250,000
24 $0 $500,000 $1,750,000 $2,750,000

 

Now we have a situation where our cash outlay is reduced to $375,000 and our revenue has increased to $2,750,000.  This gives an ROI of 467%.

For the next scenario let’s say we can do the same 4 releases per year, but now we release higher value items first (after all, we are working from a prioritized product backlog, right???).  In this scenario let’s say release 1 is worth 40% of the total, release 2 is worth 30%, release 3 is worth 20% and release 4 is worth 10%.  Now our table is as follows:

Month Expense Revenue Cash (Profit) Total Revenue
3 $250,000 $0 -$250,000 $0
6 $250,000 $200,000 -$300,000 $200,000
9 $250,000 $350,000 -$200,000 $550,000
12 $250,000 $450,000 $0 $1,000,000
15 $0 $500,000 $500,000 $1,500,000
18 $0 $500,000 $1,000,000 $2,000,000
21 $0 $500,000 $1,500,000 $2,500,000
24 $0 $500,000 $2,000,000 $3,000,000

 

$300,000 cash invested and $2,000,000 total profit which is now 667% ROI.

Bear with me, almost done.  For the next scenario let’s not have the team build the features worth 20% or 10% of the total product value.  They are low priority items anyway.  Doing this would generate the following table:

Month Expense Revenue Cash (Profit) Total Revenue
3 $250,000 $0 -$250,000 $0
6 $250,000 $200,000 -$300,000 $200,000
9 $0 $350,000 $50,000 $550,000
12 $0 $350,000 $400,000 $900,000
15 $0 $350,000 $750,000 $1,250,000
18 $0 $350,000 $1,100,000 $1,600,000
21 $0 $350,000 $1,450,000 $1,950,000
24 $0 $350,000 $1,800,000 $2,300,000

 

In this scenario we have the same cash investment of $300,000 but now we only made $1,800,000 in profit for an ROI of 600%.  Why would we want to do this?  Well, what is our team doing during those second 6 months of development?  In this scenario they are idle.  So let’s use them!  Find another project with similar parameters and have them start it 6 months earlier than whey would have otherwise.  Consider the exact same setup as in the previous scenario except we’ll be generating revenue from two different products after month 9.  In this case the table looks like:

Month Expense Revenue Cash (Profit) Total Revenue
3 $250,000 $0 -$250,000 $0
6 $250,000 $200,000 -$300,000 $200,000
9 $250,000 $350,000 -$200,000 $550,000
12 $250,000 $550,000 $100,000 $1,100,000
15 $0 $700,000 $800,000 $1,800,000
18 $0 $700,000 $1,500,000 $2,500,000
21 $0 $700,000 $2,200,000 $3,200,000
24 $0 $700,000 $2,900,000 $3,900,000

 

$2,900,000 profit on an investment of $300,000 is an ROI of 967%.

Do I still have your attention?  If so, consider one final scenario:  The total cash invested in this project is only $300,000.  The organization was originally willing to commit $1,000,000 for the project.  Can you find 2 more teams and enough projects to do the same thing two more times?  If so, the original $1,000,000 investment will have been reduced to $900,000 and instead of $2,000,000 in revenue at the end of year 2 the organization could bring in $11,700,000 which is 5.85X more revenue than the original scenario and $7,700,000 more actual cash!  This equates to a 967% ROI for each of 6 products across 3 teams with 12 total releases per year.  Remember at the beginning when I said the cost of releasing would be negligible compared to the benefits?  I also mentioned 500+% increase in ROI was possible.  Do you believe me now?  :-)

I know this was a VERY long blog entry, but I think you’ll also agree this is an important topic to understand.  To see another way of explaining it try Clarke Ching’s Rocks Into Gold presentation on Slideshare.  I hope after reading this you are as excited about the possibilities as I was when I had my “lightbulb moment” about it.  I think it is vitally important for organizations to truly understand these concepts.  I hope those of you reading this blog entry agree and will pass it on to others so they can have their “lightbulb moment” and hopefully be able to make it happen!

Oh, one last thought – if you can prioritize so the percent of value delivered by each release is even higher, then the numbers can go even higher!  For example, can a first release be worth 50% of the value?  Can a second release be worth 40%?  These may be possible in light of studies that say more than 50% of features are rarely or never used.  Said differently more than half the software in existence has no value.  If we eliminate that half, maybe we can make the earlier releases worth even more!

Until next time I’ll be Making Agile a Reality™ by helping organizations understand why managing scope in order to have more frequent releases can be so important to their bottom line!  By the way, my good friend Richard Lawrence is a person who really helped me understand this concept, so thanks Richard!

References
Published at DZone with permission of Bob Hartman, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Matt Avery replied on Tue, 2011/04/19 - 8:06am

Excellent post!  If I can add a calculation of my own...

This calculation applies to large commercial projects that have a team to perform acceptance testing on the project.  Think of each feature or bugfix as a "change" to the project.  For simplicity, lets think of a checkbox input as a feature being added for a release.  There are two execution paths that the acceptance testing team needs to test to sign off on the checkbox feature.

Now add a second checkbox.  There are now four combinations to test.  Add a third checkbox and now there are eight combinations to test.  Clearly 

combinations = 2^change

Let's say there are 100 features (scenarios, use cases) / bugfixes in the issue tracking system for this $1M project and that the acceptance testing team can test an average of 1000 combinations per second because they have automated testing tools.

Single release: 100 features, time to test = 4^19 years

Semi-annual releases: 50 changes per release, total time to test = 71,404 years

Quarterly releases: 25 changes per release, totatl time to test = 1.55 days

6 week release cycle: Average of 12.5 changes per release, total time to test = 49 seconds

Clearly with the semi-annual and annual releases the acceptance testing team simply has to punt probably 2/3 of the issues to get the testing time down to a reasonable level.  That means that the product quality is going to necessarily suffer, resulting in lost revenue.  The extent of lost revenue due to buggy software is difficult to quantify, but you get the point.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.