Although it’s the CEO/executives who sign the contract, it’s your job as the project manager to ensure that the contract covers all essential aspects of the project to prevent future disagreements between your team and the client. A well-developed custom programming contract not only helps you eliminate the unnecessary time spent on communicating with the client to clarify certain aspects of the contract or clear up a misunderstanding, it also saves you a lot stress, time, and resources if things do not go the way you expect them to. You’ll have the ammunition you need to defend your work and prove that what you did was within the scope of the contract.
Custom programming and eCommerce projects can have quite a bit of grey area that must be dealt with in the contract. Many times clients won’t understand the nature of this kind of work, or if what their asking for lies within the contract. While there are many things you can include to help clarify the scope of the project, this list highlights the items I’ve found most critical to include.
No custom programming work is ever truly final. There will always be back and forth between the client and the programmers as well as additional requests made by the customer – even weeks after the project is deemed complete. In our business, it’s not unlikely for a customer to say something like, “Everything looks good, but can you just fix this one other thing for me? It shouldn’t take long,” days after the deliverables have been completed. But what they don’t know is that these “little” requests come from many of our clients and add up to a huge amount of unbilled time. These small “favors” are often outside the scope of the contract and may require the development team to spend more than “just a few minutes” to dig into and fix as well as test and verify the solution. And as project managers, the last thing we want to do is to exhaust our programmers with these types of requests. So, in order to prevent this from happening, make sure you include a section that covers what the client is responsible for within the contract, for example, how long they have to review the completed work, and send a reminder to the client once the project has been completed to remind them of their responsibility.
Believe it or not, this one will be a real lifesaver when it comes to handling client requests. First of all, knowing that there is only a limited amount of email/phone time within the paid service will keep your customers from continually asking for “little favors” since every minute counts. Even better if it means they won’t be bugging you several times a day asking for an update because they already know that it will eventually return as an invoice that needs to be paid.
3 – Early termination requires () days notice. Payment for hours spent beyond the last invoice will be billed accordingly: Sometimes a customer decides to switch to another hosting service, gets into a fight with you so he quits, or decides that his budget will not be sufficient enough to complete the entire project (in the middle of the project). This can especially be a problem with contracts in which the full amount isn’t paid upfront (50-25-25, etc.). So, to minimize your loss in a situation like this, remember your time is your money, make sure you add a statement regarding your terms for early termination so you are able to recoup the money you’re owed for the number of hours you spent working on the project after the last paid invoice. Reading this statement will also make your customers think twice before making a major change in their plans.
4 – ETA (The date you expect to complete the project): A customer has every right to know when he can expect his project to be completed. Chances are you handle multiple projects simultaneously, which is why it is in the project manager’s and the programmers’ best interest to come up with a realistic deadline so everyone can schedule out their work days based on the priorities and due dates. Don’t be too conservative with the ETA. Realize that delays happen and choose your deadline accordingly. This way you can be certain that you’ll fulfill the client’s expectations. And as project managers, we shouldn’t over promise and under deliver, right?
I also recommend that you give the ETA in terms of business days, rather than calendar days, so it’s easier to plan ahead.
5 – Any functionality that is outside the scope of the project will be billed at $ () per hour: As I’ve mentioned before, it’s very likely that a custom programming client will have additional requests throughout the project and phrase them in a way that makes it sound like it’s part of the contract. However, it often is outside the scope of the project. If you notice this happening very often, it may be that they’re trying to squeeze in extra work without paying an extra penny. This clause is a must for a custom programming/eCommerce contract. Of course, if you’re going to bill for any work done outside the scope of the project, you must clearly outline the initial deliverables within the contract.
6 – Initial development of custom projects often includes bugs or errors. The client realizes these are likely to happen and agrees to hold (company) “forever harmless” from any loss resulting in such bugs. Finding and resolving bugs is part of the development process and subject to maintenance which will be performed at $() per hour: To me, this is one of the must-have’s of a custom programming contract. Just like a patient has to sign a consent form before undergoing a surgery, a custom programming client also needs to sign a contract with a “warning” like this, so that they know what to expect. It can help ease their minds if you’re able to offer a maintenance package or other solution at a discounted price.
And last, but certainly not least, is that a contract must have clear deliverables. The initial conversation with a prospect usually starts with a phone call where the details of what the client needs and what can be delivered are laid out. Whatever your preferred method of initial communication is, whether email, phone or in person, make sure you clearly outline all the deliverables in the contract and that the client reads and agrees to it before signing it. It’s important to set clear expectations from the beginning to prevent endless back and forth along the way, which can be frustrating and exhausting for both you and your clients.
Offering custom programming and eCommerce services means you’re able to provide your clients with truly unique solutions. However, it’s important to remember the nature of these solutions, which must often evolve as technology does and be updated as the platforms they’re on are updated. Setting realistic expectations for your clients while hammering out the details of the contract is one of the most important things you can do to make the project a success and save yourself and your programmers a lot of grief. Transparency is key.
Have you reviewed your contracts lately? Do you keep encountering the same issues with different clients? You may want to consider revising the terms for the new contracts you sign.
If there are any important issues you think should be outlined in a custom programming or eCommerce contract, let me know in the comments section below!