You ultimately have three choices:
- Concede the additional work for free
- Concede the additional work in exchange for something
- Refuse to take on the additional work and stick to the contract
Deciding which choice to make depends on your evaluation of the business impact of each in a best case/worst case scenario, and taking a risk appropriate to your business.
In the future, you should take care to prevent this sort of thing from happening.
Concede the Additional Work for Free
This has very little upside, but if it is the only way to get money from the client, it may be the only appropriate choice. You need to determine if that's the case.
If this client is important, or if there is a chance they will cancel the entire project and you wouldn't have the resources to recover costs, you may want to consider just giving the feature for free. At the end of the day, an unhappy client may cause more harm than the added cost of implementing the feature.
Trade the Feature for Something Else
If the customer is not essential to the well-being of your business, and you want to take a harder stance against their demands, you can try asking for something else. You do not have to ask for full-value of the additional feature if you are worried that would make them walk away, so use your best judgment to figure out what you can get.
In exchange for this feature you could ask for:
- A reduction in other features/work
- An increase in payment
- Other concessions
Reduction in Other Features/Work
If you have a list of what features and how much time they require, you can add the new feature and show how it would impact other features they have asked for. If you are confident in the amount of work required for each portion, you can negotiate which parts they want to trade the new feature for. This requires that you have firm estimates you can justify to the customer, and runs the risk that they will start attacking your estimates of effort for other portions (especially if they are already complaining about the current contract price).
Increase in Payment
If you can create a firm estimate for the cost of developing, testing, and implementing this additional feature, you can create two separate estimates for the customer:
- Including the feature to be packaged with the original promised deliverables
- Including the feature after the original promised deliverables
Giving the customer an idea of how much of an added burden this is to add will make it more likely that they will take the cheaper option (and be grateful), or decide to scrap the feature due to the added cost.
If this product will require maintenance or after-service in some way, you can negotiate to include this feature in exchange for a service contract paying you X for the next Y months to maintain it. Or if there is other future business that this company will need services like yours for, you can negotiate to have the exclusive right to negotiate (in good faith) for the next project.
Refuse to Take the Additional Work
If you are concerned the customer may abuse any goodwill or shifting of goalposts, even at additional price, then you can simply refuse and refer to the contract. If you do stick to this, be sure to consult a lawyer to see what (if any) potential pitfalls there could be if you stick to the letter of the law, just so you can be sure you get paid.
This has a good chance of making the client unhappy as it suggests you are not willing to meet their needs, but sometimes the best thing to do with a difficult client is to do as little business with them as possible.
An Ounce of Prevention...
Unfortunately, asking for things beyond the scope of the original negotiated contract is quite normal in many cultures/industries. There are many things you can do to try to plan for these changes, and otherwise minimize their impact when they do come up. These solutions are not mutually-exclusive.
Create Detailed Specifications
For large engineering projects, for instance, every single drawing of every single part of the project needs to be initialed and agreed to by the purchaser. By having the customer agree to the detailed design beforehand, it becomes much more difficult to say, "Yes, but I really wanted..."
Negotiate with the Decision-Maker
When you negotiate a contract, negotiate with the person signing the checks. If you don't, the person you negotiate with could just ask their boss to rubber-stamp it, and may even promise the boss that the contract says something that it doesn't to make sure they get it signed (assuming they can negotiate later with the support of their boss).
Add Language to the Contract Handling Changes
Make sure that your contract has language explaining how changes will be handled. I am not a lawyer, but in plain English, a clause that says something like (have a lawyer make it legal):
The price in this contract is for the work described in Section X. If a change from Section X in scope or schedule is required, the purchaser must provide notice including a detailed description in writing of the proposed changes to the contractor. Upon receipt of such notice, the contractor will provide a response within Y days explaining:
- Reason for refusal; or
- Adjusted Price and Schedule for the changes
The contractor is under no obligation to accept any change in scope from this contract. If an estimate is provided, parties will negotiate in good faith to come to a decision to revise this contract based on the changed scope, or to negotiate a separate contract as appropriate.
This will clearly say to the customer, "This agreement is full and complete, and if you want something else, you have to negotiate for it." This goes hand-in-hand with having detailed specifications so that all parties are clear on the scope and schedule of the project.
Depending on your industry and how competitive bids are, you can differentiate yourself by estimating a certain amount of contingency to your costs so that when something comes up, you can say, "We would be happy to do that" without compromising your bottom line. This will make your initial price higher, but it will also give you more flexibility to compromise on certain aspects, which may be easier for some of your customers than getting additional payment after the fact.
Get a Salesman
A good salesperson will check up on customers, and catch some of these problems before they escalate. Depending on the size of your business and the number of clients, you may want to consider getting a salaried salesman (who is primarily salaried rather than paid on commission). If you have several contracts, and you are doing 20% extra work on a team of 10 because of these sorts of requests, even if he only cuts that down to 10% he is paying his own salary (assuming you pay as much as the developers).