Contracts are a powerful tool in the battle of ‘WTF are my requirements’ as they are by definition a series of commitments between the two parties. Depending on the size of the organization and your role in it you might be able to see the contract, at which point you can test them. If the keeper of the contracts doesn’t want you to know the financial details, ask them to give you a redacted version. The money is not what we are interested in really, it is the clauses. Here is how I test a contract (off the top of my head while on the train):

  1. Dates
    • When do we need to deliver some / all of the item
    • When do they need to deliver things to us
    • When does the contracted agreement start
    • When does the contracted agreement end
    • Are those dates realistic
  2. Location
    • Where is this service being delivered? In the cloud? Datacenter? US or non-US?
    • Is this realistic
  3. Consistency
    • Does this contract look like other ones for the same/similar products/services from our organization?
    • Should it?
  4. SLA
    • Are the penalties on both sides clearly stated to prevent conflict in the future?
    • Uptime / Availability
    • Support response / resolution
  5. Money
    • Is the amount changing hands enough to cover costs (If you have access, and are not using as a loss leader)
    • Are there reoccurring revenues
  6. Contacts
    • Is there a phone number and email for each side of the contract to contact the other?
    • Are specific contact conditions and formats specified
  7. Deliverables
    • What, exactly, are we contracting about? Additions welcome.