I see a lot of IT contracts, and the vast majority of them are awful. While I am not a legal professional, I frequently conduct technical reviews of contracts. It is deeply concerning to observe IT contractors drafting agreements that offer no safeguards or even basic property rights for their clients. This issue is particularly troubling because it is the contractors' primary responsibility to ensure the contract's meets the client’s needs.
If you find yourself with a subpar contract, it is essential to recognize that this outcome was a deliberate choice by the contractor. It signifies not only a flawed contract but also a deficient contracting company. My recommendation is to avoid attempting to negotiate critical aspects of such a contract and instead seek out a contractor who prioritizes the best interests of their clients in their contractual agreements.
When engaging an IT contracting company, here are several crucial elements to scrutinize within the contract:
- Intellectual Property: If the contract fails to stipulate that you, as the client, own the code and work product, the contracting company will retain ownership. Consequently, you could pay them to develop a product, only to be denied its use or faced with ongoing licensing fees once it is completed. Ensure that you retain ownership of the final product.
- Guarantee: There are risks in software development and large IT projects, with failure rates usually reported above 30%. The contracting company knows these risks and can take steps to mitigate the risks. There is little you can do as a client, so why should you take all the risk? If the project fails, will you be left paying the contractor for a system that does not work? Make sure there are meaningful guarantees in the contract, usually money-back. Note that a guarantee to deliver to specifications is usually worthless because the specifications in the contract are usually not detailed enough to provide any meaningful guarantee.
- Frequent Production Releases: The progress of an IT project should be measured by the value derived from running the production system. If the contracting company fails to provide frequent releases to production, not only will you receive no value, but you will also lack visibility into whether the project is on schedule and within budget. Receiving regular production releases that you can utilize as a client is the only way to ensure that the project progresses as expected.
- Operations: Once the system is complete someone will need to monitor it and fix any issues that arise. Be cautious if the contracting company does not plan to maintain the system after its completion.
- Quotes on Fixed Fee: If you are considering a fixed-fee contract, it is crucial for the fees to be truly fixed. The price specified in the contract should be a quote rather than an estimate. Additionally, the requirements and specifications must be documented in meticulous detail to guarantee that you receive what you are paying for. If a particular detail is absent from the contract, you should not expect it to be included in the final product. In my opinion, a "time-and-materials" contract is more suitable for any IT agreement lacking comprehensive documentation of requirements and specifications.
Please bear in mind that I am not a lawyer, and every contract is unique. Whenever you are evaluating a contract, it is advisable to consult a legal professional.