I'm interested in how companies cost in the maintenance of software and or improvement of code quality over time.
The context I would like to add, is not that of a company who have a single product where all their resource is devoted to this one area, more a company who develop many smaller projects per year for a range of customers.
My fictional example might be that of a web-design company, lets say they have 10 customers and a team of 10, there are 5 existing live sites / projects which have a small maintenance contract in place to allow for hosting costs & urgent bug fixes. There are 5 active projects, lets say with a budget of £10,000 which is earmarked for the actual development. With a prospective maintenance contract for say £1000 to cover hosting / urgent fixes.
Once these smaller, bespoke projects are delivered, how do companies sell the cost of ongoing maintenance to the customer? Most customers seem to understand that hosting incurs a cost, and that fixes / changes incur costs, but I've no idea how best to sell the concept, of say, increasing test coverage or code refactoring to improve maintainability.
I would assume many customers would assume that such quality would already be built in to their original bill, so up selling quality seems hard. However, increases in the price to accommodate the quality off the bat would likely make the company less competitive in price.
I'm curious on people's thoughts in this area or any tricks and tips which might be worth talking around.