Failed Implementations, Software Defects and Expert Testimony

Software Expert Witnesses for Failed Implementations

A software dispute usually comes down to one plain question: did the system do what the contract, the specification or the vendor said it would, and if not, why not. We read the requirements and change orders, reproduce the disputed behavior on the version and configuration that were live, and trace the failure to code, configuration, data or an integration. The practice has worked in federal district court, multidistrict litigation, arbitration and ITC Section 337 proceedings.

Bagged hard drive beside a forensic write blocker.

When the Software Is the Dispute

Joseph Caruso founded Global Digital Forensics in 1992 after a technology career that began in 1980 in software development and grew through mainframe databases, real time transaction systems, mobile operating systems and cellular networks. He has been retained as a consulting expert on mobile technology in Motorola Mobility v. Microsoft and Apple v. Samsung, analyzed airline reservation architecture, real time transactions, mainframe databases, source code and system configuration in an American Express consumer class action, and analyzed credit card transaction and deposit systems in Bank One shareholder litigation. His degree from Stevens Institute of Technology is a dual BA/BS in mathematics and engineering physics.

GDF also builds and owns its own software products, from eDiscovery processing and hosting platforms to forensic analysis tools, so the expert who evaluates a failed implementation has lived through requirements, releases and defects from the vendor's side of the table as well as the examiner's. The practice spans federal district court, multidistrict litigation, arbitration and ITC Section 337 proceedings, most often for Fortune 1000 and AmLaw 100 clients.

Counsel can describe the software and the stage of the case and we will say whether the matter fits this practice before anyone is retained.

Define the Behavior in Dispute Before Anyone Runs a Test

Software disputes are rarely about whether a defect exists somewhere in a large application; every large application has defects. They are about whether a specific behavior violated a specific requirement during a specific period, and whether that behavior caused the harm alleged. We start with the specifications, acceptance criteria, statements of work and change orders that define what the system was supposed to do, then the release records, configuration and operational logs that show what it did.

A failed transaction, a dropped record or a slow screen can come from application logic, configuration, input data, infrastructure or an external dependency. We lay out the competing explanations, identify the evidence that would distinguish them and test each one against the record, because a technically correct finding about the wrong cause is worthless to counsel and dangerous on the stand.

If you already know which behavior is in dispute but not which records would prove its cause, call (800) 868-8189 and we will list the sources to preserve first.

Reproduce the Failure Under Conditions the Other Side Cannot Dispute

A demonstration shows that a feature works, or fails, under conditions the demonstrator chose. A reproducible test records the build, the environment, the inputs and the steps so that another qualified examiner can run it and get the same result. We prefer the second, and when the historical environment cannot be recreated we document each difference between the test system and the production system as it existed during the disputed period rather than letting the difference hide inside a conclusion.

Source review and runtime testing answer different questions. The code may reveal a possible execution path; testing shows whether that path was taken under particular conditions. When a dispute needs line by line analysis of particular files, algorithms or alleged copying, our source code expert witness practice takes that scope, and the two experts work from one set of facts.

Want to know whether the environment in your matter can support a reproducible test at all? Ask before the test plan is drafted.

Separate What the Software Did From What the Contract Required

The report sets the requirement beside the behavior in engineering terms, release by release, so the court can see exactly where the system met the specification and where it fell short.

The written work walks from the requirement to the observed behavior to the evidence of cause, records every test run and the dependencies the conclusion rests on, and uses exhibits a jury can follow: a timeline of releases and failures, a side by side of the specification and the log, a diagram of where the data went. Plain English is how the court follows the technical record.

Questions about how expert reports and testimony are prepared are answered in the digital forensics FAQ, and the rest can be settled on the first call.

How a Software Expert Engagement Runs From Scoping to Testimony

  1. Scope

    We discuss the system in dispute, the requirement at issue, the proposed expert's relevant experience, potential conflicts and the report and hearing deadlines, and agree on the analysis, report, rebuttal or testimony that can be completed and defended on that schedule.

  2. Examine

    We review the specifications, releases, configuration, logs, defect records and test results the record provides, reproduce the disputed behavior where the environment allows, and document every method and test condition as we go.

  3. Explain

    We prepare the report and exhibits that distinguish observations from opinions, then testify at deposition, hearing or trial.

Report and hearing deadlines shape each step, so bring the scheduling order to the first conversation and we will say what can be completed within it.

Evidence We Examine in a Software Dispute

Requirements, specifications, statements of work, acceptance criteria and the change orders that moved them are read first, because they define the promise. Release notes, version control history, build and deployment records and configuration files show what was actually shipped and how it was set up. Operational logs, monitoring data, defect trackers, support tickets and test results show how it behaved, and the opposing expert's reports and workpapers are read against the same evidence.

Key Engagement Deliverables

An expert report that ties each opinion to a requirement, an observed behavior and the record that connects them, with a reproducible record for every test run. Where the matter calls for it, a rebuttal declaration on the opposing software expert's analysis, demonstrative exhibits for hearing and trial, and deposition and trial testimony on the findings in the report.

If a rebuttal is the immediate need, tell us the deposition date and we will scope the review around it.

A Repeatable Test Carries More Weight Than a Demonstration

A vendor demonstration can show that a feature works under selected conditions. A disputed failure demands a sharper question: which version, which inputs, which configuration and which dependencies produced the behavior the plaintiff complains of. We define those conditions in writing, retain the materials needed to repeat the test and present the result as what it is.

Consider an integration accused of dropping transactions between an order system and a fulfillment platform. The relevant sources would include the acceptance criteria, the application and queue logs on both sides, the configuration and the release history for the period in question. We compare the expected sequence with the observed sequence and weigh data quality, environmental differences and third party outages before attributing the loss to anyone's code.

The NIST guidelines for software verification describe complementary testing methods, and the method chosen for a dispute has to fit the technical question rather than generate a long list of automated findings. The same record that proves a defect can also prove that it did not cause the loss alleged, and we say which.

If the court has only seen a demonstration so far, ask us what a reproducible test would add before the schedule closes.

From the Contract Requirement to the Test Result

  1. Requirement

    Identify the expected behavior and the acceptance criteria that defined it.

  2. Environment

    Record the version, inputs, configuration and dependencies in play.

  3. Reproduction

    Test the reported problem and every competing explanation.

  4. Findings

    Explain the results and how another examiner can repeat them.

Requirement, environment, reproduction and findings, with each result tied to a recorded test.

Technical references

Our approach to testing what software does is aligned with the NIST guidelines for software verification.

Meet the Expert Behind the Opinion

Joseph Caruso, founder, CEO and CTO of Global Digital Forensics, has worked in software and systems since 1980. His consulting expert work includes Motorola Mobility v. Microsoft and Apple v. Samsung, and his class action work has covered reservation architecture, real time transactions, mainframe databases, source code and credit card transaction and deposit systems. Meet the GDF team and ask for a current CV. The proposed expert’s availability and conflicts are confirmed before you commit.

Need to know who would be disclosed before you commit? Ask which expert would be proposed and we will confirm availability and conflicts first.

Requirements, Reproduction and Root Cause

Did the software meet the documented requirements?

We compare the observed behavior with the requirements, acceptance criteria and test conditions the record supplies and report where they match and where they diverge. Each divergence is tied to the release, the configuration and the log entry that show it.

Can the reported failure be reproduced?

Reproduction depends on access to the relevant version, inputs, configuration and environment. Where they are available we reproduce the failure and record every step; where the original environment is gone, the surviving logs, release records and defect history carry the analysis.

Could configuration or an integration explain the problem?

Often. Configuration, data quality, infrastructure and third party services can all produce behavior that looks like a code defect. The examination tests those explanations against the evidence instead of assuming the cause sits in the application code.

Talk with an examiner

Bring the Software Dispute to a Senior Examiner

Tell us the software, the requirement in dispute and the deadline. Relevant experience, potential conflicts and the scope are reviewed before anything is engaged, and the first consultation is free.

Since 1992 · 24/7 dispatch · Court tested experts

Or call (800) 868-8189

Email or phone is required. For an active incident, please call. Read what we send with the request.

Talk with an examiner

Retain a Software Expert Who Has Shipped Software

In a free first consultation we ask which requirement the system missed, which versions and environments still exist and when the expert report is due, then say whether a reproducible test is realistic and what it would take.

Our 24/7 hotline is (800) 868-8189.

GDF does not accept pro se litigation cases, and GDF may decline matrimonial or family law cases at our discretion.

Reviewed by Joseph Caruso, Founder, CEO and CTO, CISSP. Last reviewed .

Privacy center

Choose your site settings

Optional technology stays off until you choose otherwise. You can change these browser settings at any time. Access to the core site does not depend on optional technologies.

Technology preferences
Sale or cross-context sharing: not used GDF does not sell or share website personal information for cross-context behavioral advertising.