This blog post is part of a series on non functional requirements, and how they take most of the effort.
The scenario
You want a third party to implement an application package to allow people to buy and sell widgets from their phone. Once the package has been developed, they will hand it over to you to sell, support, maintain and upgrade and you will be responsible for it,
At the back-end is a web server.
Requirements you have been given.
- We expect this application package to be used by all the major banks in the world.
- For the UK we expect the number of people who have an account to be about 10 million people
- We expect about 1 million trades a day.
See start here for additional topics.
The cost of change.
In the press you can find references to organisations who want to move off an existing platform or solution, but find the cost of doing so is too expensive. The moving cost is many times the original cost of implementation, and the cost of moving is more than the “cost savings”. But they decide to move anyway. I’ve been reading about a council whose cost of moving went from an initial figure of £3 million to over £25 million – and they haven’t completed it yet.
An analogy
Someone described migrating an application from one platform to another was a bit like changing the engines of an air-plane – while the plane is in the air. The new engine will not be a drop in replacement and you have to keep flying to your destination.
Upgrading software from one version to a different version should work, but there may be small differences.
Replacing a core component such as using a different database will need a lot of work. This may be due to
- a different performance profile,
- the SQL may not be entirely consistent,
- you use a facility which is not in the newer database and so you need to change your application.
- Error messages and codes may be dissimilar.
Looking at the costs
What is the cost?
As part of the discussions with a supplier of a service, such as cloud, CPU, disk space, network capacity, you may have got a good initial deal. After the honeymoon period the cost of these services increases, and you may not be prepared for this. For example the cost of disk space could be an amount per GB per day.
- The cost is 10 cents per GB per day
- Your database is 10GB so costs $1 a day.
- You also backup your database daily and keep the copy for 10 years.
- After 1 day you have 1 10GB backup – costing $1
- On the 10th day you have 10 backup copies costing $10 * 1
- On the 1000th day you have 1000 backups costing $1000 * 1
- After n days the accumulated cost of the backups is n*(n+1)/2 so 1000 days costs half a million dollars.
- You also have multiple copies of the backups for Disaster Recovery processes etc. After 1000 days, the accumulated cost is $1Million! This is despite “the cost is only 10 cents per GB per day”.
The charging changes
The terms, conditions and costs may change – basically the price goes up more than expected. As I write this, Broadcom is increasing the cost of the VM license by a factor of 10 times and people are now moving to a different virtualisation technology.
Do not lock yourself in
You may find that you are using a facility in the environment, but this facility is not available in other environments, for example cloud providers. It may be worth using common facilities rather than platform unique facilities, as this makes it easier to change, but at a higher initial cost.