When you go to buy a car, what are the first questions that you will ask yourself? I don’t know about you but my list would be along the lines of, how much will it cost to tax the car every year? how much will it cost to put fuel into it each month? how much maintenance will it cost? how much are the parts compared to other manufacturers?
Software houses are different to car manufacturers because they retain ownership of the software and licence out the use of the software(the car in the analogy) to the end-user. If Ford or GM used the same model as software houses, do you think they would stop thinking about the cost of the car once they had built it?
It seems to me, that software houses, often only look at the cost of production but not at the cost of maintenance and operations. To me it makes sense when designing a new system, to use components that are cost effective, reliable, scalable, have wide industry usage, so it’s easier to find engineers that can use those components.
What happens in practice is quite often the opposite, with obscure, proprietary, once-off components being used and sold as state of the art. We live and learn. Think about asking how many software developers/testers will it cost to fix bugs in the system? How much will it cost to maintain operations, help centres, network latency, failover, etc. And what about training costs for new employees, what about the cost of keeping documentation up to date? Hardware costs, cloud costs for increased network usage.
Okay, so I’m very cost sensitive but don’t just ask how much does it costs to make and hand over the money. That kind of approach just doesn’t make sense yet in software development that is the culture. First to market is often first to failure. So whether you are building software or buying software, it’s not just the upfront costs to consider but those nasty surprises that appear at 5pm on Friday evening when you have your camping gear packed but you’re going nowhere.