Rants and Ruminations 1 of 1 article InfoSyndicate: full/short
Cost-effective, reliable software delivered just in time...   31 Dec 03
[print link all ]
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).

Copyright © 2008 Willem van den Ende