Custom software development agreements that go awry and end up in litigation are notoriously difficult cases.
The reasons for this (to name just a few) are the finger-pointing (“your fault, no yours”), the complexity, ambiguity or incompleteness of the functional/technical specifications, the presence of third-party developers or hardware vendors (who can also be blamed), and the obscure, technical nature of the cases, which make them distasteful to judges and dull to juries.
Massachusetts U.S District Court Judge Richard G. Stearns issued a rare decision in one of these disputes last week. The case, Liberty Bay v. Open Solutions, involved loan origination software developed under a standard, milestone payment-based License Agreement. After a four year development project plagued with difficulties the Client terminated the agreement and the software Vendor filed suit, seeking the balance owed under the license agreement. The Client, for its part, wanted a refund of monies paid and additional consequential damages. Each side asked the court to issue summary judgment in its favor, and Judge Stearns wrote a decision addressing the contentions.
The background of the case is typical of thousands of similar projects. The project went off-schedule almost from the start. After a series of delays and defective deliveries the Client terminated the agreement and demanded a refund of monies paid to date. The Vendor asked for more time, and the Client agreed to provide it. However, subsequent attempts to deliver a working product were also unsuccessful.
Finally, the Vendor informed the Client that it would not continue to work on the project unless the Client caught up on scheduled payments that were past due. When the Client refused to make these payments the Vendor stopped work and the Client terminated the License a second time, following which it filed suit seeking damages.
Judge Stearns’ treatment of the case illustrates some of the pitfalls in software development disputes. Sadly for the Vendor, it was on the losing end more often than not.*
*While the case was decided under New York law (as specified in the License Agreement), New York and Massachusetts contract law are similar in most respects.
First, the court held that while the Client had waived the time for performance provided in the License Agreement by permitting the Vendor to continue to work on the project after the first termination letter, the extension was not “indefinite,” but only for a “reasonable amount of time.” The judge concluded that after the Vendor had failed to deliver after an additional year had passed this implied extension had expired, putting the Vendor in material breach of the agreement.
Second, the judge rejected the Vendor’s argument that the Client had waives its right to seek a refund after gaving the Vendor a “second chance” following the first termination. The Client did not waive its right to object to subsequent breaches of the same term (that is, failure to deliver a working product).
Third, while the Client was in breach of the payment schedule prior to the “go-live” (or final delivery) date, the Vendor tacitly approved an extension of the Client’s payment obligations when it continued to work without being paid according to the contract schedule. Therefore, the Client’s non-payment was not a defense to its breach of contract claims. If the Vendor had informed the Client that it was working “under protest” the Vendor might have had a stronger argument on this point, but it’s failure to do so doomed this argument.
Although the Client won on these issues, it lost on another. The License Agreement contained a common provision limiting the Client’s damages to monies paid and (belt and suspenders), prohibiting it from recovering consequential damages. Therefore, its claim for lost profits and “lost employee time” were barred. It was limited to recovering monies it had paid under the agreement, probably poor consolation for the loss of use of the system, the investment of management time and the likely higher cost of starting over. The decision makes no mention that the License Agreement provided for the recovery of attorney’s fees, and therefore this unknown amount must be subtracted from the Client’s recovery.
Software contract litigation can be exceedingly complex. This case barely touches on the potential issues. For an article discussing some of these issues in more detail see — Litigating Computer-Related Breach of Warranty Cases.