Software development is a competitive business, and disputes over intellectual property can arise when software engineers move to new companies that compete with their former employers.
Should the dispute result in litigation, a source code repository can help an expert witness determine whether a former employee copied a previous employer’s proprietary source code on the way out the door.
When developing software for a business purpose, many software developers employ a source code control mechanism, such as a source code repository. Using a source code repository has many potential benefits for an organization, including:
- Concurrent Development: Repositories usually allow multiple developers to make edits to different parts of the same program simultaneously. Developers can then merge their changes back into the main program.
- Increased Transparency: Most source code repositories require a developer to check out, edit, and then check back in the part of the program he or she was editing. The repository records which developer made changes and when, resulting in a log of updates made to the program over time.
- Version Control: When developers make enough changes to a program stored in a source code repository, they can designate the updated program as a new “version” of the software. A repository also stores previous versions of a program, a feature which allows companies to restore a previous version if, for example, an update introduces a harmful bug.
Regardless of the nature of the dispute, evidence uncovered from a source code repository can provide a robust factual record of a program’s development history, which an expert can use to arrive at supportable and peer-reviewable opinions.
Read the second installment: Source Code Repositories: Reviewing the Right Version of a Program
Read the third installment: Source Code Repositories: Authenticating Production of Source Code
Josh Siegel has substantial experience analyzing copyright, patent, and trade secret claims related software and information technology. Josh performs functional testing, analyzes defect systems and metadata, examines source code in intellectual property disputes, acquires and analyzes data in digital forensics, and finally integrates that data into written reports and testimony.