Sunday, April 13, 2008

Determining success in software product development

My blogging has slowed to a crawl in the past few months. This is in large part because my group (SAP Governance, Risk and Compliance) has been on the verge of releasing two new versions of its flagship products Access Control and Process Control. Like a marathon, it’s that last mile that hurts the most.

During this past year and especially during the past few months, I’ve spent a lot of time thinking about what defines success when one delivers software products. It’s very difficult to know when to say “job well done” and I think many experienced software executives still make this call incorrectly.

False Measures of Success

If you work in software, you can understand why this assessment is hard. Software development is a tricky activity to measure, and the measurements you can make are very context dependent. Thus results are typically useless when comparing one product or release to another.

For example, you cannot say you have been successful if you “delivered the product on time.” After all it is easy to deliver a product on time if you cut back on scope or skimp on quality. This basic product delivery loophole is a byproduct of what project managers refer to as the “iron triangle” of scope, cost and quality. To move one variable up you must decrease the others and these relationships are for the most part fixed.

You also cannot say you are successful if you “delivered the product on time, on scope on quality.” While this sounds impressive on the surface, it is really more a function of good expectation management. Time, scope and quality are things you set targets for (i.e. fixed values). Whether you arrive ahead of or behind a target value has a lot to do with the target itself. Delivering on time, on scope, on quality is more often the result of a successful negotiation on the part of the project manager.

Any Hope to Judge Success?

I’ve come to understand that there are actually two triangles and, given the right timeframe, neither one of them is iron.

Let us call one the “execution triangle.” This is essentially the same stuff as the iron triangle: scope, time/resources, and quality. In software, this triangle is truly iron for short periods of time (e.g. 3-12 months), but you can push and pull at it when you look beyond that time horizon as you have more freedom to change processes, practices and technologies.

The other more strategic triangle is the “context triangle.” It is comprised of change, waste and innovation.

Change – how rapidly is the context changing while the product is being built? If you decide to simultaneously change the architecture, the people, the technology and the requirements, the size of the execution triangle will get very, very small.

People – how many good people do you have on the team? Product managers that write first rate requirements? Engineers with years of experience with the tools and technology? Architects that are not astronauts? If you want to accept more change with the same level of waste, you need better people on the team.

Waste – What percentage of the time and money you spent on release was put to productive use (i.e. working code that someone wants) and how much was lost to confusion and dead ends? If you want more change with the same people who built the last release, you must accept more waste.

The relationships between the elements of the context triangle are also fixed (e.g. the same release with a higher rate of change will result in greater waste). In addition, the context triangle drives the size of the execution triangle. If you have great people, low waste and a low rate of change, you can deliver some 5-10 more functionality with the same amount of time and same level quality as you otherwise could have.

Many people, executives in particular, are willfully blind to the context triangle. They do not want to believe it exists because it takes away strategic choices. To understand the context triangle is to understand for example that one cannot enter a new market with a new product on a new technology platform with a newly hired team.


So What’s Your Point?

Like most things in business, it is important to distinguish between lucky and good, circumstance and success, however tricky it may be. And so, true success in software development is the execution you achieve given your context, because the context is almost never under your control. Change, waste and innovation are the cards you are dealt and how much scope and quality you derive from these circumstances are how you played them.

P.S.

If you're in the market, please take the time to check out the newest releases of SAP GRC Process Control and Access Control. They’re both excellent. I should know :-)

15 Comments:

At 6:18 AM, Blogger R said...

Hi Charles,

Good post. I think your view on how you measure success is primarily from the development management level which is great. Have you seen anywhere how companies bubble this up and measure at an executive-level in terms of linking development efforts to revenue driven or customers retained? In a small company, this is a pretty simple proposition, but once you reach some order of magnitude, its harder to link an individual product to performance. Instead, it seems most companies focus on the initial opportunity development and seldom revisit once the product is done. Thanks.

 
At 2:58 AM, Blogger Thomas said...

Good to see you back, Charles. Thoughtful stuff...

Real success can only be measured some time after the product is shipped, and then the measures are a lot simpler. Do customers use it? -good. Do customers like it? better. Do customer demand more of the same? even better.

The problem is, by the time you can make the measures properly, people are working on the next thing.

In some sense, software is a bit like literature. We typically only find out if a novel is truly great once the novelist has shuffled off.

 
At 1:11 PM, Blogger Charles said...

Hi R,

Yes, I think I'm speaking more to defining success in the creation of software product but not so much defining success from a "management level." IMO, there are 3 ways of evaluating success of a product from a general management point of view:

1. Market adoption. Quite simply the product is successful if customer buy more of that than any competitor.

2. Balanced scorecard. Some combination of metrics that balance revenue, share, quality, TCO and user adoption.

3. Business value delivered. There are a lot of frameworks that try to track this while the product is being developed.

I do a fair bit of #1 and #2 and am starting to tinker with #3.

 
At 4:47 AM, Blogger Keaton said...

• It won’t be wrong to say that the creation and the eventual booming of the IT world is because of the USA. This can be very well understood by the downward slope in the IT sector right after the slowdown in the US economy. A software company is one of the most important elements of the IT world and they are currently suffering major setbacks after these attacks in the US and have not been able to completely recover since. The IT sector received a blow not only in the US but also elsewhere in the globe.

 
At 5:24 AM, Blogger Wilbur said...

• The mushrooming of the software development companies have been instrumental in raising the bar for the quality of the software services. The increase of the concerns providing software services have made it possible for the clients to choose the best software development company from among the lot. In the cut throat competition only the best can survive and hence the companies give their best in order to thrive amidst this competition.

 
At 3:37 AM, Blogger Roland said...

i think your post is has a informative subject..
go for gold
Busby SEO Challenge

 
At 4:52 AM, Blogger Roland said...

that was a nice post

i luv the info
kabonfootprint

 
At 10:04 PM, Blogger webmaster said...

As a top-rated company in the world of ecommerce, Infyecommercesolution has carved out a niche for itself and with the ecommerce solution provided by the company receiving accolades from clients all over the world, it has, in the true sense of the word, grown up to be a top-notch outsourcing software development company. For details on all the services provided by the company, visit http://www.infyecommercesolution.com.

 
At 12:35 AM, Blogger Ashok yadav said...

MAG Studios is a leading software development & web development company offering ecommerce web site development, search
engine friendly web development, customized software development services india delhi.
Software Development | SEO Services India | Website Design India |
Content Management System (cms) | Customer Relationship Management (CRM) | BPO India
Intranet Portal

 
At 10:38 PM, Blogger Mazhar Hussain Shah said...

I think the production or creation of the software is very important but the management is also very important.
Shopping Cart.

 
At 10:15 PM, Blogger 平平 said...

^^Thanks!!

婚前徵信婚姻感情大陸抓姦外遇抓姦法律諮詢家暴婚前徵信尋人感情挽回大陸抓姦離婚工商徵信婚前徵信外遇抓姦感情挽回尋人大陸抓姦離婚家暴工商徵信法律諮詢跟蹤工商徵信婚前徵信感情挽回外遇抓姦法律諮詢家暴尋人大陸抓姦離婚大陸抓姦外遇尋人家暴工商徵信法律諮詢家暴感情挽回大陸抓姦外遇婚前徵信離婚尋人工商徵信外遇抓姦法律諮詢家暴婚前徵信大陸抓姦尋人感情挽回外遇抓姦婚前徵信感情挽回尋人大陸抓姦工商徵信法律諮詢離婚家暴工商徵信外遇抓姦法律諮詢家暴婚前徵信尋人感情挽回大陸抓姦離婚婚前徵信工商徵信外遇抓姦尋人離婚家暴大陸抓姦感情挽回法律諮詢離婚感情挽回婚前徵信外遇抓姦家暴尋人工商徵信外遇抓姦法律諮詢家暴婚前徵信尋人感情挽回">徵大陸抓姦離婚婚前徵信工商徵信外遇抓姦尋人離婚家暴大陸抓姦感情挽回法律諮詢

 
At 10:05 PM, Blogger Mob said...

Thanks for this good stuff. I like your blog very much. Your blog i full of informational content of digital download software. Actually i was searching for logo software download. In urgently i type download sofware. LOL .yeah i know thats funny and i find your blog.

 
At 5:14 AM, Blogger Parker said...

CRM .The Easy CRM Software for Outlook. Prophet simplifies contact management software, contact manager, small business Sales CRM Software. Prophet is the easiest CRM software because it is built INTO Outlook vs simply synching with Outlook.

 
At 6:13 AM, Blogger Aleyah said...

In 2004, $3.7 billion was spent worldwide on software development tool which was 5% more compared to 2003. More is expected to be spent in the future so that 50% success rate can be achieved by the end of 2014.

Enterprise Mobility Solutions

 
At 12:59 PM, Blogger Phyllis Stoffel said...

Software can make your job easier and much more efficient. Imagine doing your job through accounting software itself.. It would be easier to manage the balances and accounts. Plus, it would be easy to edit wrong payroll inputs.

Phyllis Stoffel

 

Post a Comment

<< Home