The importance of software patents has increased dramatically in recent years. The high profile patent disputes between Apple, Google, and other smartphone companies have attracted the most attention in the press, but patent battles are being waged all across the software industry. As computer scientists who have been retained as experts in software patent disputes, we have seen firsthand how attorneys go about selecting experts to provide technical consulting and testimony in these cases. And unfortunately, most of them are going about it the wrong way. In this article, we’ll explain why and how to select software experts the right way.
Two Distinct Expert Tasks
Successfully arguing that an accused software product does (or does not) infringe a particular patent requires two distinct tasks to be performed by experts: code analysis and expert testimony. First, the accused products, which are computer programs, must be analyzed to determine exactly which portions of the computer code implement the patented invention. Second, a persuasive argument, based on the evidence produced by the analysis, that the patent is (or is not) being infringed must be made in expert reports, depositions, and trial testimony.
The two tasks mentioned above seem so intrinsically linked that the obvious decision is to hire a single expert to perform both tasks. Attorneys reason that an expert should be someone who will impress a jury and intimidate the opposition, such as a senior technology professional with an established reputation in the field or a university professor with an extensive publication record in the relevant technology. Attorneys then assume that whoever is selected to prepare the expert report and testify must also personally perform the code analysis.
However, a stronger case can be built – and money saved – by hiring two or more experts with complementary skill sets to work as a coordinated team. This approach has demonstrated success in a variety of other types of litigation. For example, it’s very common in cases where extensive financial or economic analysis is needed: a team of analysts is hired to do the number crunching, and then a testifying expert is brought in to explain the analysis in court. It makes perfect sense to apply this same model to software patent litigation. Attorneys who rely on a single expert to do everything may overlook opportunities and end up at a disadvantage to opponents. To understand why this is so, you need to understand a little more about what’s actually involved in code analysis.
Software Code Analysis
It might appear that analyzing a software program and then opining as to infringement is analogous to reading a book and then writing a book review. However, this is not the case. Analysis of a software program in the context of a patent is more like untangling a giant knot. A modestly sized software program can consist of tens or hundreds of thousands of lines of computer code. A large software program can contain millions of lines of computer code. All these lines of code are intricately and subtly connected. In most cases, only a very small portion of this code – perhaps as little as a few hundred lines – actually pertains to the patent, while the vast majority is totally irrelevant. Code analysis involves a lot of time spent ruling out irrelevant code and tracking down dead ends before the relevant portions of code are pinpointed. Once this has been accomplished (that is, the knot has been untangled), a testifying expert can easily be directed to the relevant portions of code, and can testify as to what that code actually does.
Unfortunately, a university professor or technology company executive is rarely the ideal person to perform code analysis. Most professors and executives aren’t expert programmers and generally haven’t dealt directly with software code for many years. Plus, the software analysis can be exceptionally time-consuming, and senior-level individuals rarely have enough time available for such intensive analysis. The silver lining, however, is that because of the nature of code analysis, once the heavy lifting has been done, a testifying expert can still prepare a complete expert report and provide compelling deposition and trial testimony. What’s needed to properly prepare the testifying expert is a second expert who specializes in rapidly making sense of complex computer programs.
The Analysis Expert
Performing rapid and thorough analysis of complex software requires a different skill set than testifying in court. The ideal person to perform such an analysis is an expert in software architecture analysis, which is the study of the fundamental structure and behavior of complex software systems. Analysis experts are adept in recognizing design patterns in code to quickly deduce programmer intent. They are familiar with many different technologies and how they interoperate to create overall system behavior. Analysis experts know how to use code analysis tools to quickly track down references to variables and functions of interest. And these individuals are experienced in concisely conveying technical information, such as the structure and behavior of a program, using intuitive diagrams and other means.
Attorneys often pay a premium rate for a testifying expert’s reputation, but that reputation (while helpful with the jury) doesn’t provide any benefit during the analysis phase. Instead, the attorney should focus dollars during the analysis phase on buying analytical skill and understanding of software architecture and code. And because analytical skills don’t require an established reputation that only comes with decades in the field, those dollars can often go much further, buying more time, more intensive analysis, and more detailed evidence for the attorney and testifying expert to use to build the case.
An additional advantage of using different experts for analysis and testimony is that the analysis expert’s findings may be shielded from discovery under the attorney work product doctrine. The analysis expert can then selectively provide only information that supports the case to the testifying expert, whose work product is typically discoverable.
The Right Way to Select Software Experts
When selecting a software expert for a patent dispute, attorneys should actually be looking for two experts: an analysis expert and a testifying expert. The analysis expert is a software design specialist with broad experience in a variety of programming languages, networks, databases, and other technologies. The testifying expert may be a well-credentialed professor or industry luminary with very deep experience in a single sub-discipline, say, computer graphics or web servers. The analysis expert can perform the tedious, time-consuming code analysis, and provide the (more expensive) testifying expert with just the information needed to testify in court. The testifying expert can quickly examine the relevant portions of code to verify the analysis expert’s work, without performing the entire analysis over again.
This approach – using both an analysis expert and a testifying expert – has the following advantages:
- The trial testimony is given by someone who has extensive credentials and is accustomed to answering tough questions on the spot and explaining technical concepts in plain English.
- The analysis is performed by someone who has a thorough understanding of the art and science of coding, understands software architecture, writes and analyzes code on a daily basis, and knows how programmers work and think.
- The total expert fees are smaller because analysis experts can be hired for a lower rate than the testifying expert.
As noted above, this model is already widely used in certain types of litigation, including water law, economic and financial analysis, and other areas. In software patent litigation, both the analysis and the testimony need to be done right to achieve the best results.
Attorneys who focus solely on retaining the best testifying expert, and then also rely on this same person to perform code analysis, may overlook important evidence and end up at a disadvantage in court. Experts in source code analysis can cooperate with testifying experts to save time and get better results in software patent disputes.