Documentation of Software Development for Best Efforts Clauses

In a previous article, we provided a review of best efforts clause practices and their importance in contract management. Given their dependence on venture capital and time-to-market pressure, it is imperative that IT enterprises develop a more formal approach to their software development project management.

No matter how brilliant, any team of software developers that can’t provide a snapshot of activity at all times will frustrate investors and managers alike. From a business perspective, the software development process needs to be clearer and more transparent to employees, managers, and investors. From a contract management perspective, proper documentation of the software development process is equally important to have something to measure against stipulations from best efforts or commercially reasonable efforts.

Let’s review some key steps to document software development for best effort clauses.

Redefined Statement of Scope

A proper scope statement for software development processes should include :

  • Project justification
  • Project software
  • Project deliverables
  • Project constraints
  • Project objectives

Let’s analyze the importance of each one of these items.

Project Justification

Software developers spend a great deal of time in planning meetings, but without a clear view into ongoing projects and resource commitments, those meetings could create bottlenecks and subpar allocation of team members to projects. When a team of software engineers is overworked, it becomes extraordinarily difficult to align efforts with goals.

It’s critical to justify decisions and to document those justifications in order to show due diligence. While it’s easy to evaluate decisions in hindsight, documentation provides a more realistic snapshot of the situation at the time that the decisions took place.

Project Software

Both managers and team members agree that there is a strong need to have at all times details on current projects, so that everyone can predict the impact of new projects and project changes.  There is a strong need for a clear view of progress all times. A project management solution that allows team members to visualize their activities and those of their peers is essential to decide how to distribute assignments.

When contracts are used with subcontractors and those subcontractors are expected to use a specific project software, that software should be mentioned in the contract.

Project Deliverables

Within a set of guidelines that outlines stipulations for best efforts or commercially reasonable efforts, timely performance stands out because it is an important item to determine whether or not a party has incurred in breach of contracts.

This is why a calendar of project deliverables must be included within the language of any contract for software development. It can save time to have a calendar template in the library of your contract management software, but remind your contract managers about the importance of adapting the language to the unique characteristics of the project. Also, to consider the jurisdiction of the project, because it affects the interpretation of “best” and “reasonable” clauses.

Project Constraints

Anything that can affect any part of the software development process should be disclosed. Some items to consider are:

  • necessary maintenance of local servers;
  • update of website backend operations;
  • necessary market research;
  • feedback from usability tests;
  • re-negotiation with hosting services and other third-party services;
  • moving of offices; and
  • update of legal terms of services.

The constraints from a face recognition software may be different from those for an inventory management platform, so make sure to modify templates as appropriate.

Project Objectives

These are the quantifiable criteria to satisfy in order for the project to considered successful.

For this part, a work breakdown structure with specific deliverables and milestones is necessary. While the contract may show a high level summary of tasks, it’s important to keep strong records of the levels of task clusters, lists of tasks within each task cluster, descriptions of all tasks, predecessor tasks, and sub levels of tasks.


This overview provides a useful framework to analyze the current scope statement of your software development process. Not only can a revised scope statement streamline the project management of your team, but also improve the documentation of all processes for best effort clause purposes.