Businesses decide that they are unique and want to develop software for their processes. This is often a good idea if no package solution fits well. The software can often create a real competitive advantage.
Two things that are often not known at the beginning are: how much extra it is going to cost above the original estimate given by a developer, and the risks to the company if the developer is not there any more.
Most companies do not know how to think through the whole process thoroughly. This means you should expect to spend at least as much again, as you were originally quoted to get what you really need. The reason for this is you will not specify exactly what you want. Once you start getting information or putting it into operation you will find new options and more reporting or interfaces with other systems than you anticipated. Good developers anticipate this and reduce the risk of extra costs.
The other matter is the disappearing (in one case to Australia, to do something completely different) or insolvent developers. A useful tool can be the Escrow agreement that will in certain circumstances enable you to obtain the source code to take to another developer with sufficient knowledge. To understand more look at the National Computing Centre site http://www.nccgroup.co.uk/services/escrow-solutions/software-escrow-services.aspx