| Cost-effective, reliable software delivered just in time...
|
|
31 Dec 03 |
|
As we are starting with the CQ2 Software Studio, we are talking to various
people to investigate the market, and elaborate the idea further.
Yesterday, someone described us at CQ2 as
"Software Efficiency Experts" . Probably, because we try to
eliminate waste in software development, and we continually search for, and
find practices that work well for us and our clients.
But what about Effectiveness? It is nice to reduce costs, but if you
develop the wrong things, you are getting nowhere. You are getting there
more cheaply than otherwise, maybe faster as well, it is all well tested,
but it still is the wrong software!
The best way, in my opinion, to increase effectiveness is to eliminate
waste in requirements:
- Don’t automate things that don’t have to be automated.
If you leave it up to some technical people (I know I’ve been one),
you would have everything automated. Instead, automate work that costs much
more to do by hand than with software, or automate something so you can
deliver much more value to your customer than otherwise possible.
- Program your software ‘just in time’. Delay
implementation until you really need the software. It is more effective to
invest in software you need now, than in software you don’t need
right now, and might never need at all.
- Make sure all the features developed so far provide value. Measure
usage of features, remove them if they aren’t used anymore. Unused
features cost money for time spent maintaining software, and possibly
planning things based on these features. Sometimes it takes time to explore
software by using it, to find out which features are really essential and
which aren’t.
Now that we are developing the right thing, we can focus on developing the
thing right. What works well for us in this respect, is Test Driven
Development (which makes reliable software cheaper to build and maintain
than unreliable software), Refactoring and some other techniques from
Extreme Programming in combination with increasing the personal
effectiveness of development team members and better and more enjoyable
teamwork through e.g. Retrospectives.
Cost-effective is a nice word to describe this, because it focuses on cost
(efficiency) as well as on value (effectiveness).
|