Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


Articles
Lifecycle
Design
Programming
Soapbox
Reviews
Cthulhu

Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



Java Swing
Swing's greatest threat isn't SWT, it's Flash
Swing Survival Guide

Check out our ageing Reviews Section




Lifecycle

A Developers' Guide to ROI

<< Introduction

RULE 1: Have a clear business model.

Senior managers like to keep the business model for a software project close to their chest. This is because either they don't have one, they're not confident about it, or they don't think that the developers should know about such things.

A clear business model should tell you the value to the business of the functionality you intend to develop. The model should tell you as an architect or designer where to put extensibility into your code and which part to make invariant. Flexibility costs more to develop in terms of both design, coding and testing. So the better you understand the business model, the better you understand the invariants and the better your delivery timescales will be.

Another critical aspect of the business model is whether a software function is expected to increase revenue or decrease costs. There is sometimes a revenue and cost component to a software function but a general expectation can be set. Knowing this expectation lets you make value judgements about the inclusion of functionality when you are developing code.

Knowing the business model allows you to develop the success of the software you are developing against the business model. The business model also allows you to be objective when setting priorities.


>> RULE 2: Prioritise functionality against ROI not perceived priority by users.

Talkback:

Post a new message

Message Index:

good points
Keith Ray keithray at mac dot com

The Messages:
good points
Interesting thing mentioned on

http://www.martinfowler.com/articles/xp2002.html

- all 50 states have to implement a child-welfare tracking system, giving us the opportunity to see the "same" system implemented 50 times.

In Florida, a team of 100 people expected to deliver their implementation of this system in 8 years [starting 1990], though it is now to expected to deliver after 15 years [2005]. The budget is of course around $140 million over the original estimate of $32.

In Minnesota, a team of 10 people implemented their system in less than 2 years [starting 1999], using 10 people. Total cost $1.1 million.

These systems have the same federal requirements, but Minnesota probably focused on the "essential" requirements.

quote:

The comparison is a startling illustration of Chet Hendrickson's statement that "inside every large system there's a small system trying to get out".

Keith Ray keithray at mac dot com

Tue Jul 09 01:10:12 BST 2002

Post a new message

 

<< Back to Lifecycle

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2007 Matt Stephens. ALL RIGHTS RESERVED.