Physicists at CERN use some of the world's most powerful particle accelerators to discover what the universe is made of and how it works. Over the last 18 years, the organization's Java codebase for accelerator controls has grown to roughly 15 million lines of code. CERN operates within a self-contained software system that is developed and maintained by nearly 300 people, with all of its code in Sourcegraph. To achieve efficient development and safe upgrades, developers require a tool that lets them quickly and effectively search through their entire codebase so they can easily change and reuse code where necessary.
Sourcegraph empowers developers at CERN to reuse code that already exists, avoiding duplication and saving developers countless hours redoing work that has already been done. It takes search one step further by "understanding" the structure of the code (as opposed to just "seeing" it as raw text), enabling the organization to do semantic searches that yield accurate results.
“I was recently tasked with something that I, admittedly, had no idea how to do, but I was sure that someone at CERN must've already done it at some point. Sourcegraph universal code search took me directly to the code I was looking for so I could repurpose it. It's also an invaluable tool for enabling our developers to learn from one another.”
— Vito Baggiolini
“Sourcegraph helps us with technical debt reduction and the consolidation of our codebase by letting us avoid duplication, spot the usage of deprecated APIs or internal (non-API) library code, and identify general purpose code in specific projects (such as utility classes) that can be factored out and shared in a core library.”
— Chris Roderick, Applications and Services Section Leader, CERN
“Sourcegraph lets us make informed decisions on how to evolve our codebase. For example, a library owner knows exactly how all other developers use their API, and can therefore make educated decisions on how to evolve it.”
— Chris Roderick
The Large Hadron Collider (LHC) at CERN features five-year operational periods and the software must be stable during this time. Sourcegraph helps developers make small, backward-compatible changes and ensures that any change made by a given team to one part of the codebase doesn't break (or require adaptations of) dependent code written by other people. It's essential that these changes are done correctly, as mistakes can stop the operation of the CERN accelerators and waste precious time for physics research.
The LHC also features upgrade periods of 1-2 years, during which developers typically make more radical changes. During these periods, Sourcegraph lets users identify redundant code (e.g., utility methods) and assess the cost/benefit of doing breaking API changes.
“Our solution prior to Sourcegraph didn't let us do detailed and precise searches on how and where a method of a specific class is used. As a result, we were unable to measure the impact that a planned API change would have on the rest of our huge codebase. This put us in a position where we weren't making necessary changes because we were unsure of the effect they would have.”
— Vito Baggiolini
Universal code search lets developers at CERN make changes to their code, including those with potentially costly implications if done incorrectly, with ease and confidence. As the organization continues to uncover fascinating insights into how our universe works, Sourcegraph serves as its go-to tool for code reuse and code change management.