Workiva reduces the time it takes to make large-scale code changes by 80%
Paying down tech debt
The Client Platform Team at Workiva is responsible for developing and maintaining the frameworks and shared libraries that all other products are built on. This includes a shared UI widget library and maintaining dozens of Dart packages to support Workiva's entire engineering team.
Any time they shipped a release for one of their packages, they'd also have to propagate it across 70+ repositories used by other teams to avoid breaking changes. While they developed their own internal tool to automate these changes, it required ongoing maintenance and didn't provide end-to-end visibility into the path to completion.
Whenever a new version of a library came out, they'd either have to manually make the change across dozens of repositories, spend time improving their internal tool to help automate the process, or add the update to their backlog.
“We fell into the habit of letting tech debt accumulate to the point where all of the sudden we'd have to bring everything to a screeching halt and do nothing for a month or sprint or even a quarter and clean up tech debt around a certain area. The easier the tooling, the faster we can release breaking changes.”
— Trent Grover, Director of Architecture, Workiva
Automating large-scale updates with Batch Changes
As an organization that values paying down tech debt, Workiva's Client Platform team started using Sourcegraph Batch Changes to help them efficiently propagate updates to dependencies across all of their repositories without any ongoing maintenance. The team has already used Batch Changes to:
- Propagate a new version of React to all frontend repositories
- Update API versions of Kubernetes resources
- Migrate to a new CDN while updating all code references
- Update UI component syntax as necessary to support a new version of the Dart language
- Run test batch changes to ensure that new Chrome web browser releases wouldn't result in any software failures
“The fact that Batch Changes runs each step via Docker is super powerful. As long as there's a tool out there that does what you need, you can incorporate it into Batch Changes with minimal effort, and that's been awesome for us.”
— Evan Weible, Staff Software Engineer, Workiva
Workiva reduces the time it takes to make large-scale code changes by 80%
The Client Platform team has already used Batch Changes numerous times to propagate large-scale updates to the frameworks and shared libraries they maintain. In comparison to manually making these changes, Batch Changes reduces the time it takes to make large-scale code changes by 80%.
“Updating all of our repositories with Batch Changes saves time, is less error-prone, and gives us confidence that everything is going to plan.”
— Joe Bingham, Software Engineer, Workiva
Instead of spending time maintaining their internal tool, the Workiva team will be using Batch Changes going forward.
“Using a tool that isn't maintained by us saves us time and drives better adoption. In comparison to the tool we built internally, it's much easier to work with, more feature complete, and well documented.”
— Evan Weible, Staff Software Engineer, Workiva