One of the dreaded thing people often talk about when buying enterprise software (instead of building it) is the maintenance cost in form of annual fee. The reality is that whether a company buy or build an enterprise software, there will always be substantial and on-going and even growing maintenance cost. Now let’s talk about the cost components which are incurred, regardless of whether the software was bought or built.
When an enterprise software is so important to multiple departments and branches of a company, sooner or later, somebody will need assistance because they forget how to use the software correctly or accidentally used it wrongly or don’t know how to use some rarely-used features. To expedite handling of these questions, usually the company will have to provide a first line help desk, manned by people who can answer basic questions. For complicated questions, however, the users will have to go somewhere else
- If the software was bought, and the company pays for maintenance fee, then the users can contact the software vendor’s help desk for assistance
- If the software was built, than the company itself must retain and regenerate sufficiently sophisticated personnel for its second line help desk. This is really not that cheap. Either retain the original team members involved in the development of the software, or maintain a very good training program for replacements.
No matter how tidy the software was made, there will be some malfunctions, things that are affectionally called bugs. Fixing the malfunctions is a continuous tasks.
- If the software was bought, and the company pays for maintenance fee, then maybe if other customers of the same vendor have discovered the malfunction, and the vendor team has fixed it, the company can just down load and apply the fix. If not, then they can log a complaint and the vendor team will verify then fix it
- If the software was built, then the company must maintain a team with deep familiarity of the technical architecture of the software. Again, retention may be an issue and regeneration program must be put in place to cater for this. Also, in this case, there will almost always be longer lead time between bug identification and bug fix. Why? Because if the software was bought from a vendor with multiple customers, then other customers might have identified it first and set the vendor team to fix it before it was identified by the company’s own employees
As competition forces companies to adapt their business process, so too must the company’s software adapt to changing environment. This means that features which were not deemed necessary before becomes necessary now. To provide the features, somebody should make modification to the software. If the modification is unique to this company, then it can either instruct its development team to develop it, if they have deep enough familiarity, or ask outside consulting team to do it. However, some modifications are common across multiple companies, and these will be handled differently depending on whether the software was bought or built
- If the software was bought, and the company pays for maintenance fee, then there’s a likelihood that the vendor team has already worked on these common modification. All the company has to do is down load the modification and apply it. Or if it’s not done yet, the company can choose to wait until such modification are finished by the vendor team
- If the software was built, then the company has no choice but to perform the modification using internal team, provided it managed to retain or regenerate team with sufficient technical familiarity
Just like any automation tools, there comes a time when a software has to be replaced with something completely new and fresh. Technologies do get to be too old, and when they’re too old, the cost to keep it running may be higher than just getting a new one. Even here, the cost difference between bought and built software may not be as big as most people think
- If the software was bought, and the company pays for maintenance fee, then it may automatically get a brand new version of the software without paying any more expense. In essence, the cost incurred to the vendor in building the new version has been subsidised by part of the regular maintenance fee charged to the customers. It still has to pay for the consulting fee in implementing the new version, though
- If the software was built, then the company has to plan ahead and assign a team specifically with the purpose of building out this brand new version. The cost for this is substantial, as this work may take few years if the software is complicated enough. And after the brand new version is finished and tested, the company still have to set aside team to implement this new version. That part, of course, is not free to the company either