Mature Mobile Reliability Standard

How to save significant funds on software development

Introduction

How to save significant funds on software development? You can lose money during these phases:

development of the software product;

maintenance of the software product;

operation of the software product;

ineffective resource consumption;

lost transactions;

Let’s consider each phase in detail.

Loss of money during development

Typical reasons why the software development vendor exceeds the budget:

misunderstanding of business needs, re-work needed to satisfy the needs of the customer;

poor quality of the software solution, lots of issues and software errors which need to be fixed before the release;

the development vendor underestimates the time and resources needed to accomplish the software project.

Misunderstanding of business needs

If a software vendor misunderstands the business needs it is a critical risk that they will not deliver the right software product which will satisfy 100% business needs. The final software product will be useless, will not fit the business processes. A large amount of rework is needed to fix these issues.

Symptoms:

the software development vendor doesn’t conduct proper business analysis stage before implementation;

the software development vendor didn’t develop acceptance tests;

the software development vendor doesn’t demo interim version frequently;

the software development vendor introduces fixes to features of the software product, but these fixes don’t fit the customer’s business process anyway;

How to prevent this risk:

the software development vendor must conduct business analysis stage and document all business needs, business cases, use-cases;

the software development vendor must develop a set of acceptance tests;

the software development vendor must produce and test interim versions of the software product frequently to validate the solution;

Poor quality of the software solution

The software product may satisfy business needs, but be of poor quality due to software errors, crashes, glitches, which makes it unusable. Fixing software errors is a common source of budget overrun.

Loss of money during operation

We split this cause into two: lost transactions and ineffective computing resource consumption.

Loss of money on lost transactions

Imaginе if the e-commerce web-site fails to process one in 1,000 transactions with an average transaction value $200. If the web-site process 5,000 transactions in a day, it gives 5 failed transactions per day, which give a loss of 5 × $200 = $1,000 per day, which gives 365 × $1,000 = $365,000 loss in revenue per year.

The software vendor must develop exhaustive automatic test suites to make sure transactions are not lost. This includes functional tests, as well as load tests. E.g. if you expect 1000 users per hour, ask to show load testing for 3x more users (3000) per hour.

Symptoms:

customers post negative reviews on your software product or service;

the software development vendor doesn’t have a test plan;

How to prevent this risk:

implement business-level metrics to see what’s going on with all users of the software product;

conduct a load testing frequently with at least 3x number of expected users or transactions;

Loss of money on ineffective computing resource consumption

Non-well optimized software application can consume more computing resources than it needs.

E.g. the database runs on 10 servers, but it really needs only 2.

Symptoms:

cloud fleet expenses growths promptly;

How to prevent this risk:

conduct a technical audit by third-party experts;

Conclusions

It is a common situation when software projects exceed the budget 2x and more. This happens in different stages: development, maintenance, operation. We analyzed typical symptoms and propose actions to prevent these risks.