Sourcegraph on Wednesday launched Batch Changes, an automated internal coding tool that allows enterprises to automate and track large-scale code changes across all repositories and code hosts. For software developers, this is game-changing.
This new tool also provides developers and enterprises with an easy way to manage the resulting change sets through checks and code reviews so they can be confident each change is merged.
Last year, over 800,000 developers used Sourcegraph to search and understand their code. In the same way that big data has disrupted data teams, big code is creating hurdles for enterprise engineering teams who struggle to navigate and make changes across increasingly large and complex codebases, according to Sourcegraph.
With Batch Changes, enterprises can now automate large-scale code refactors, security fixes, and migrations across thousands of repositories. The new tool quickly decreases the mental load, time expenditure, and cost of large-scale changes for organizations.
Businesses are dealing with 100 times more code than they did 10 years ago. At the same time, developers are expected to release code faster than ever before, according to Quinn Slack, cofounder and CEO of Sourcegraph.
“Instead of having each repository owner make the same change manually, Batch Changes enables developers to modify code across thousands of repositories,” he told TechNewsWorld.
Promising Help, With Reservations
Any software project’s code base is an ever-growing monster, in part because of the security built into it. With additional features, including an enhanced UI, there are a lot of things that make a codebase grow and, in turn, more difficult to maintain, according to Dirk Schrader, global vice president for security research at New Net Technologies (NNT).
“Having a tool that allows for a quick search and replace for code elements that need to be changed is certainly helpful. It will have to be used in conjunction with a versioning tool as the dependencies are mostly documented there,” he told TechNewsWorld.
Sourcegraph’s ability to find variants of a given code sample seems quite powerful, helpful for sure, he added. Unfortunately, the description is not specific about whether the programming language or development framework used has an influence on the tool.
“A comparison of that capability with some similar features in Oracle’s OpenGrok, as an example, would be interesting to see,” Schrader noted.
Not Open Source, but Competitive
Batch Changes is not open source. All customers, including users of the free tier, are able to try Batch Changes for free and create up to five changesets. Access to the full product is available as a paid add-on.
“Sourcegraph, however, does have a free and open-source universal code search product that developers can use to search and understand their code,” said Slack.
Proprietary internal code change tools vary in quality and complexity, he noted. Google, for example, has built an internal system for automating large-scale code changes called Rosie.
Instead of building this functionality from scratch internally, which is extremely time and cost-intensive, businesses can now use Batch Changes.
Open-source solutions exist, such as Shepherd, Slack offered.
Development Velocity: An Enterprise Priority
In a recent Analyst Day event, Twitter executives linked development velocity directly to the pace of innovation and shared a plan to “double our development velocity by the end of 2023,” according to Sourcegraph. That resulted in doubling the number of features per employee that directly drive either mDAU (monthly daily user statistics) or revenue.
A McKinsey study found that enterprises with high development velocity see greater shareholder returns, customer satisfaction, and employee retention. Best-in-class tools were identified as the top contributor to development velocity, noted Sourcegraph.
To accelerate developer productivity and overcome the challenges of big code, some tech giants like Google have developed proprietary internal tools to automate up to 70 percent of code changes. However, most enterprises lack the technology they need to make large-scale code changes and instead resort to manually creating and tracking thousands of pull requests, explained Slack.
“The sheer amount of code most enterprises have creates a massive drag on development velocity,” said Slack. “When the developer experience is slow and painful, the pace of product development lags, and the entire business suffers.”
Batch Changes closes the productivity gap by empowering enterprises to easily keep code up-to-date and pay down tech debt across every business unit, repository, and code host the company uses, he explained.
Automate and Track Large-Scale Code Changes
The Batch Changes tool provides developers with a declarative structure for finding and modifying code across thousands of repositories. It features a simple UI to help enterprises manage the resulting change sets through checks and code reviews so they can be confident each change is merged.
By automating large-scale code changes, enterprises can:
- Reduce the time it takes to make large-scale code changes by 80 percent
- Increase speed and accuracy while reducing the risk of introducing breaking changes
- Improve code quality throughout the organization by reducing the risk of bugs or bad code making it to production
Instead of manually managing thousands of pull requests to remove legacy code, fix critical security issues, or update dependencies, enterprises can now automate large-scale code changes with Batch Changes.
Enterprises can more effectively mitigate the challenges associated with Big Code, improve development velocity, and innovate faster, noted Slack.
Batch Changes Advantages
The Batch Changes tool compares well to what other proprietary internal automated code tools achieve, Stack offered. The new tool improves or replaces other products the company has developed.
“Sourcegraph has always enabled developers to explore and understand all of their code quickly. With Batch Changes, developers can now automate and manage large-scale code changes,” he said.
Using Batch Changes starts with Sourcegraph’s Universal Code Search functionality. Code search enables developers to identify everywhere a change needs to occur.
From there, Batch Changes enables users to:
- Programmatically define changes by creating a declarative specification file
- Execute specifications via a lightweight command-line interface or CLI
- Track change set life cycle status across multiple code hosts via the Sourcegraph user interface or UI
Unlike the majority of internal tools, Batch Changes enables dev teams to track progress. Most teams still rely on spreadsheets and status updates to manually track pull requests, according to Slack.
Batch Changes automatically sync pull request status for transparent and low-friction progress tracking. Just as continuous integration and delivery (CI/DC) tools have made it much easier to set up a CI pipeline, Batch Changes make large-scale code changes less painful and more accessible, he said.
Slack added, “Engineering teams of all sizes can benefit from using Batch Changes. Even smaller enterprises make code changes across multiple repositories and code hosts. We have seen smaller engineering teams with a high level of automation add Batch Changes to their toolset with a lot of success.”
Batch Changes are universal and allow dev teams to support a variety of needs (refactoring, configuration updates, quickly bumping dependencies up after a security update, etc).
Batch Changes is game-changing, agreed Jade Lee, software engineer at Digital.com.
“We have always had automated scanning tools, such as Snyk for Docker Hub and other static application security testing (SAST) tools, but nothing like what Sourcegraph is offering as far as I know,” he told TechNewsWorld.
Software coders have a tremendous need for what Batch Changes provides, especially at an enterprise level. Often times when you work for a software development company, you find yourself working with multiple repositories hosted on different platforms, he explained, adding that it becomes a hassle to track changes separately.
For example, when you are working on a framework, sometimes the same refactoring is needed across multiple source code. These can be millions of lines of code that need refactoring. Being able to identify, change, merge, and manage your repositories from a single application is quite handy, said Lee.
“There is less need for this at smaller dev shops that usually stick to one platform to host their source code and also do not deal with other companies’ codebase or having to refactor too much all at once,” he said.