How to save significant funds on software development
Aug 06, 2019Introduction
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.
Symptoms:
- the software development vendor didn’t prepare test plans and test cases;
- the software development vendor doesn’t show test reports;
- the software development vendor doesn’t deliver interim versions of the product frequently;
- the software development vendor doesn’t automate testing;
How to prevent this risk:
- ask the software development vendor to show test plans;
- the software development vendor must produce and test interim versions of the software product frequently to validate the solution;
- the software development vendor must automate testing.
Underestimation of time and resources
If the time is underestimated, there is a risk that the software development vendor will not deliver the complete solution. More time and money will be requested to finish the product.
Symptoms:
- the software development vendor has no ratio behind their estimation of time and money;
- the project is behind schedule very early;
- the software development vendor has no past experience with this kind of job or technology;
- the software development vendor doesn’t show a risk management plan;
How to prevent this risk:
- request the detailed scope breakdown;
- request a risk management plan;
Loss of money during software maintenance
Software development — it is only half of the path. The second half — is software maintenance.
Software maintenance falls into four kinds [IEEE Software Maintenance Std.]:
- Corrective — fix an issue;
- Preventive
- Adaptive — adapt the software to some changes in the environment;
- Perfective —add new features or improvements to existing ones;
With non-effective code cost of modification grows very quickly:
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.