Bespoke software: more affordable than you think

Most people are unaware how far the cost of software has dropped in recent years. There still seems to be a perception from the days of mainframes when it would cost a few thousand pounds to generate a new report. We all know how much cheaper it is to create a spreadsheet but the cost of programming has almost dropped as much.

Also, a bespoke application will provide a much better solution and be more efficient. So after a few months a bespoke solution can actually cost less than a spreadsheet.

Why use bespoke software

To be successful, an organisation needs a competitive advantage. It needs to do something differently and better. This will be constrained by off the shelf software. There are many opportunities from creative use of processes and customer interfacing. Organisations do not become great by following everybody else.

Spreadsheets will normally be the best way to provide a one-off solution but they are not convenient. For any application that has to be run regularly they are inefficient. The staff costs in using a spreadsheet will be higher that with tailored apps. In the long term, a bespoke solution will almost always be better value.

Also, while your staff are developing spreadsheets, they aren’t doing their main job.

Why has the cost dropped so much?

There are a number of reasons, including:

  • Modern programming languages like PHP are much more efficient than older languages like Cobol and Basic
  • SQL databases enable data tables to be created and modified in minutes rather than days.
  • Manipulation of data typically only takes a few lines of SQL
  • PCs and development tools
  • Better techniques, object orientation haa slashed debugging times.
  • Programmers’ wages have not kept pace with inflation.

There’s a chilling perspective here. In the 1970s I had to add some fields to a database and change the length of the main key field. It took a team of programmers six months. A similar exercise last year took about 3 hours.

See more tips on deploying software at www.mcmillantech.co.uk/Blog.html and
www.mcmillantech.co.uk/ComputerPrograms.html.

Controlling software costs

Software projects are seriously prone to run over budget. There are a number of reasons why this happens. Some common ones are:

  • lack of clear requirements
  • late changes
  • focus on the desirable rather than the essential
  • uncontrolled implementation

Be clear what you want

When planning a software project, you should know what you want it to do. You should make a list of everything you want the new application to do. You may be clear about this, more often you will talk to the users and find out what they need and would like. As you do this, create two lists of functions and features. One will list every thing the app needs to do, the other will list what people would like it to do.

These lists will form the basis of tender. The more thought you give to the requirements, the easier it will be to control the project. Suppliers will be clear as to what they must provide. If you skimp on this, after the software is ordered, more requirements will emerge. This leads to unplanned extra costs and often wasted work and disputes. The wisdom in the software industry is that every day skipped in the design phase of a software project consumes a week in the later phases.

Avoid Late Changes

Late changes are expensive. They mostly happen because not enough work was done laying out the requirements. Late changes result in wasted work. Work that has been done has to be discarded, other work is duplicated.

Software projects are like construction projects in this – imagine changing the design part way through building.

Focus on the essentials

Another factor is a lack of focus on what is essential and what would be nice to have. The way to overcome this is to break the requirements into mandatory features and desirables. Then, concentrate on implementing the mandatories first. (A main reason why major government I.T. projects fail is because the government fails to do this).

If the budget runs out, discard some of the desirables. If the quotes for the work are too expensive you can also discard some desirables.

Despite what I have said about late changes, most software projects do uncover extra requirements as they progress. Don’t commit the whole budget – allow for extras. Make sure your supplier understands which features are mandatory. A good software company will expect this. Then, make sure he delivers the mandatory features first. Only provide the desirable features when all the mandatory ones are working. You can always add the desirables later.

Control the roll out

It can be difficult to test software. Applications tend to be complex and there can be thousands of routes through an application. Some combinations of data or events can be obscure and the testers will miss them. But the hardest thing to test is the human computer interaction. Computers are predictable, people aren’t. The developers and managers know what should work: other users don’t and they do unexpected things that can break the system. It’s not a bad idea to test the system on the least tech savvy person you can find.

If you have a large number of users, don’t launch new software on all of them at once. Apart from anything else, most support issues occur within a short time, so rolling out the software smooths the support. Dealing with issues from 5 users is a lot easier than from 500.

When I supply packaged apps, I usually find that only around 80% of problems are found during the in-house (alpha) testing. The first few users will find about half the rest of the problems, then successive users each find about half of what remains. Thus, each roll out can be to a larger number of users.