Sydney based custom software and Microsoft experts

Custom Software Development



Contents

Infosphere is a software consultant based in Sydney, NSW Australia.

Our main service is custom-made computer software programming.

We specialise in the Microsoft software tools and we apply our expertise to all sorts of organisations.

 

Infosphere has been a Microsoft Certified Partner since 1998
Infosphere offers a complete money-back guarantee for a trial project


Build Date 14/09/2009

Avoiding Software Disasters – Symptoms and Problems

Introduction

This topic is inspired by the fact that a ridiculously high number of software projects fail. And most of them fail because of errors in requirement definition.

Over the course of the next four pages, we will delve into this subject matter and come up with some explanations and suggestions. In doing this we will follow this page structure:

  • Symptoms and Problems
  • Remedy
  • Requirements Gathering
  • Specification Template

Our emphasis, as always, is fixed price jobs of up to around 3 years of effort.

The Consequences of not Defining Requirements Properly

According to the Standish Group, only 16% of software projects succeed. 53% finish late, over budget or lacking functions. 31% are abandoned. They find that requirement errors account for 69% of the failures and management and resource type issues account for the rest.

These problems are exacerbated in larger projects. If your software has more than 10,000 function points, it has a 65% chance of cancellation, according to Software Productivity Research Incorporated. This goes down to 25% if you have less than 5,000 function points. In one year, 285,000 years of work effort were written off in the organizations studied by Software Productivity Research Inc. If you apply a modest hourly rate of $50 to this, you get a write-off of $20 billion, just in the subject companies.

To add insult to injury, the cost of resolving defects rises exponentially the later in the software life cycle they are detected. These are the comparative magnitudes of resolving defects at the various stages:

During requirements 0.1
During design 0.5
During coding 1.0
During unit testing 2.0
During acceptance testing 5.0
After live rollout 20.0

In other words, it costs two hundred times as much to fix something that is discovered after live rollout than something that is discovered during requirements gathering. This is because of the rippling effect of all the people and processes that are added to the equation the further you travel along the road.

What's so Difficult about Defining Requirements?

There are some classic explanations for the failure to define requirements properly, some of which may be unnervingly familiar.

Difficulty of thinking in the abstract

This problem is particularly significant in ground-up projects where new functions are being created.

Inability to predict the future

This refers to the need to predict future markets, regulations, technologies, etc and is very tricky in the context of system requirements.

Techs want to dive straight into the code

This is where the technicians think they have got the gist of what is required and the best way to proceed is to start building something. This is a bit like trying to put up an office tower without architectural drawings and would never be contemplated in the construction industry. So why do we do it in IT?

Deadline/budget pressures force you to gloss over requirements

This is a bit like the previous issue but for different reasons. There are two points to make here. Firstly, all the evidence shows that cost cutting during the requirements phase is suicide and is to be resisted strenuously. Secondly, it's harder to speed up analysis than it is to speed up development, so requirements studies are susceptible to deadline pressure.

New technology in search of an application

In this case, the 'real' requirement is to try new gadgets. Therefore the business and functional requirements are likely to be somewhat aimless.

Estimation problems

What we're suggesting here is that maybe the reason for overruns or delays is that the project was estimated wrongly in the first place. Software estimation is a thorny issue, but it falls outside the scope of this series.

User versus developer

This refers to the problem of requiring business and technical people to communicate effectively on a host of issues which are understood by one camp or the other but not both.

No need for analysis; we're buying a package

Wrong! It doesn't matter whether you're building or buying. You still have to understand your requirements beforehand. Conventional wisdom on this is that you should spend the same on requirements either way.



Top of PageTop of Page