A stitch in time...
If you run bespoke software from a third party for your business, make sure that each period gets a bunch of hours devoted to maintenance. Several years ago I found myself in a tricky situation where the business leadership only ever wanted to spend money on functional change. They couldn't see the point in ongoing maintenance. We had to pull out all the stops. Fortunately we had a regulatory body on our side and we could use certain requirements (fit for purpose; must be seen to be following service management standards) to strong-arm the business into giving up a few hours each month to fix known errors and the like, but we really had to fight for it.
I'm pleased to say that that particular business leadership team failed (for many more reasons other than the one just given) and were ultimately replaced by a much more understanding team. They trusted us to ensure the integrity of the systems first, then fit their functional requirements in alongside the programme (due to the failings of the previous leadership team, risk tolerance had been massively reduced).
Maintenance could be any number of things: fixing known errors so that riskier workarounds can be dropped; refactoring code to remove technical debt; updating software dependencies (e.g. libraries, run time environments etc).
If you don't include maintenance in your costs the quality of the software will degrade over time, it will become less secure as more vulnerabilities against the aging codebase are discovered, and it will be harder for developers to make functional changes as they wade through a sea of incomprehensible code.
- Previous: Work like a detective
- Next: But I already told you that
