Originally published at braginskyoleg.com.

If we don’t work in legal or finance departments, when it comes to dealing with the contracts we assume our job is to briefly read them, sign and keep fingers crossed. With Maksim Golub and founder of School of Troubleshooters Oleg Braginsky, we act as a human debugger while reviewing paper-based programms.

Engineers have a powerfull mechanics called debugging. By default, they look at the things anticipating them to break, have bugs or even vulnerabilities, through which it could be exploitted. Contracts are no different from the program, they have their actors, variables, constants, conditions, inputs, outputs, scopes.

Slide «Treat Contracts as the code in IDE»: contract clauses shown inside a mock code editor with Run and Stop buttons. Two clauses are highlighted, on address book access and on the minimum age of 13, each with a question callout.

As a good software developer working in the team or technical engineer, building a hardaware, don’t completely put trust to someone else and always check the work at the final stage. This is there a code review by peers or quality check at different stages. Even if you a lonely wolf, act as your own strict auditor.

The beauty of posseing different constelations of skills will allow us to think of the research object from a different angles finding unusual ways to represent the problem. Think of it as the game where the character cannot go through the gate as mortal, but they can easily pass by jumping into the demention of spirits.

The process starts witth the inventorisation. Create a list of services you and your team use. If there is no owner, clarify it with peers to make sure each contract has an asignee.Collect documents, unify file names, put them into a single place. Do align with Legal, Finance teams to cordinate efforts and avoid clashes.

Time for debugging. Pay attention to the measuring units. They should be specific. For instance, the duration of the process is 45 days, but it could mean business, astronomical days, or public holidays. As an extra layer consider the territory or regional nuances as there might be deviations in the interpretation.

If there is a date in a contract, it could be something that you as the human may overlook while executing the contract. In one company there was a due date of the renewa, and the date of sending a notification about cancelling. Capturing this early saved around 14 000 USD with a single email to the service provider.

Pay attention to all of the external links in the document. The caveat is that the third party can update referring resource any time and it will be a legal action, unless it is not allowed. Think of it as the library in your code controlled by it’s createor. The optimal approach is to incapsulate external links as appendixes.

Slide «External link to the 3d party resource»: a quote clause referring to «Terms for Acme Production Licenses» as a hyperlink, marked by the callout «External link detected».

There might be a combination of slowly-ticking bombs and external links when the timer located on the web-site inside of the Terms and Conditions, having a generous heads-up timeline which you may be reading with less attentiion if read at all. Spotting this early allows to initiate the convesation in advance.

There might be cases when the document is already being signed and you may suspect that it was modified by the third party. There are few ways to to spot the differences. Use an onine-archive service like Archive.org to see different versions. If the site is popular enough, there will be multiple updates for review.

Slide «Web-page revisions at Archive.org»: the Wayback Machine calendar for a terms-of-service URL, 114 snapshots between November 9, 2020 and November 10, 2023, with the list of revisions for March 22, 2022 expanded.

Depending on the web-site engine you may see the modifcation date on the page itsef. There is such thing as meta-data, which means data about the data itsrelf. Using Object Inspector, you have a chance to find what you look for. It might be possible to find the original document, but it will require a different skillset ;)

Slide «Reviewing an HTML file»: page source with Open Graph meta tags. The highlighted lines show article:published_time 2021-09-14 and article:modified_time 2022-08-21, labelled «The date of the updates».

If the the text file is downloadable, you can use local tools to analyse it’s internal data. For example, pictures and PDF files store the info in EXIF: Exchangeable Image File Format, allowing you to extract valuable knowledge from the document. Apps like ExifTool or any other can crack this task as a piece of cake:

Slide «Reviewing EXIF data»: ExifTool console output for a PDF file, with file modification, access and creation timestamps of August 1, 2023 highlighted.

Assess the liability. What will the counter-party obliged to do if things go wrong. Pay a special attention if their service is mission or business critical. Measure liability not only as the binary metric, whether it exists or not, but also check it’s scope and conditions: what are SLA’s, recuperation, damage mitigation models.

When comparing two similar processe you see that counter-party will owe you less or nothing, it is an assymetry. For example, when renting an apartment in Singapore, you’d have to pay cerain percentage for each day of delay while owner only obliged to return your deposit within two weeks with no repercations.

Slide «Asymmetry of obligations in the rent contract»: the landlord clause claims 24 percent annual interest after seven days of unpaid rent, while the tenant clause only requires the deposit back within fourteen days.

Hidden favours. Vendor may allow themselves to use the partnership to their benefits for other marketing and sales activities, capturing your permission in the contact. Vice versa, there might be an obligation to use their attributes on your product as part of the contract. Both could be used as levers in negotiations.

Slide «Hidden favors»: a clause granting the vendor a worldwide, nonexclusive, transferable, royalty-free license to use the licensee logo in marketing materials, marked «A hidden favor».

Check that signatures are valid. Consider regions specific for both for vendors and yourself. In some countries the image of signatire may not have a legal power, should be issuesd by the authorized entity, Make sure that signing person has a proven permission to sign documents, and it’s reflected in the contract.

Slide «Signature validation»: the Signatures panel of a PDF reader showing a valid signature, an unmodified document, a verified signer identity and an embedded timestamp.

Unidentified objects. Make sure that whatever is mentioned, should be explictely. Don’t take it as granted when you see words as License, Service Agreements and so on. Each object should have it’s definition, scope, the areas of application. Best place to declare such things is at the beginning of the document.

Slide «Unidentified objects»: a license clause where the term «subsequent License Term» is highlighted as undefined, with a question callout about its scope.

Limited flexibility during the usage cycle. There might be options where your service would be moved to the higher tier or charged a higher rate due to the increased consumption. In case the level of usage is lesser than expected, you may have to wait for the next billing period before downgrading to previous level.

Slide «Limited Downgrading»: a clause stating that after upgrading to a higher tier no downgrading is possible for the subsequent license term.

And for the last part a portion of tips and tricks that could help making debugging and executing processes of a contract smoother:

  1. Use a single storage for the contracts.

  2. Inventory services that you or your team use.

  3. Get in touch with the vendors if there is no clarity.

  4. Use a shared email to receive updates from the vendors.

  5. Inform and involve finance or legal team about contract activities.

  6. Regulary audit existing contracts to actualise conditions and the dates.

  7. Set a single end-point for communications, should not a personal email address.

  8. Include handover and audit of contacts into the onboarding and offboarding processes.

  9. Don’t hesitate to inform about voiding the contract, there always will be a chance to resume.

  10. Start with thinking that you already went to the court and need to use the contract for the defence.