Challenges
- Missing a unified interface to see how much code is covered by tests.
- No full picture of insights into the coverage data.
- Needed a unified source of truth for code coverage to improve the developer experience.
Goals/Use Case
- Improving the developer experience.
- Help developers reliably ship their code changes as fast as possible with the least friction possible.
- Improving CI performance
Solution
- Unified coverage metrics all in one place.
- Direct feedback on the PRs.
- Looking forward to the Codecov’s upcoming feature: Impact Analysis
“Codecov unifies coverage data in one place and visualizes the data very well. It also provides the API to query the data for analytics purposes. For our usage, it provides the feedback on pull requests directly and nicely improves the developer experience to shorten the feedback loop so that they can fix their issues more quickly.”
Jun Li, Staff Software Engineer
Lyft is a mobile ride-sharing platform committed to making positive changes in carbon emissions and bringing people together. Through offering ride share, bike share, electric scooters, and partnerships with public transportation departments, Lyft strives to promote transportation equity.
Engineering leadership at Lyft focuses primarily on their mission to help developers reliably ship code changes as fast as possible with the least amount of friction. Another focus for leadership at Lyft centers around the overall developer experience focusing on the idea that it’s important that engineers are comfortable with making and shipping changes.
“The more confident the developers feel about making code changes, the more comfortable they are with shipping changes. The better the machine, the better the quality of the code [that] they’re shipping as well. So developer experience is also another goal that Codecov helps us with.”
-Jun Li, Staff Software Engineer
Unifying Code Coverage to Reduce Friction
A large focus at Lyft has always centered around testing and code coverage, even before using a unified code coverage tool. Testing at Lyft has evolved from heavily focusing on integration tests to moving more toward unit tests in the last few years.
Because Lyft uses multiple languages the teams at Lyft needed a unified source of truth that could show coverage across all engineering teams. This drove research into tools that were flexible enough to fit into any language and CI/CD ecosystems. Reducing friction would allow engineers to see exactly the impact of their code changes, regardless of the job.
“Different language ecosystems brought friction and differences between the approaches [to code coverage]. Right now, our CI is set up, not project-specific, but rather job-specific. So there was no ad-hoc view for the code coverage for the projects. This is where, again, Codecov definitely is valuable to us.”
-Jun Li, Staff Software Engineer
Improving the Developer Experience
A top goal at Lyft is to continually provide a great developer experience. Because engineers at Lyft often make changes in multiple repositories or projects simultaneously, it is important to standardize the coding styles, like adding tests. By making the codebase as much alike as possible, their developers won’t feel barriers when making changes.
“We really want [our developers] to have a seamless experience when they’re working across multiple repositories.”
-Jun Li, Staff Software Engineer
One way that Lyft accomplishes this is through using Codecov’s PR comment feature. Keeping the developer in their CI keeps code coverage top of mind but prevents them from context switching unless it’s necessary. The PR comment also allows developers to dig deeper into a specific change in coverage by navigating to the Codecov web app.
“We can see feedback directly on the pull requests. And we can see all of the insights on the code after we’ve done that in one place. The user experience has been improved by Codecov.”
-Jun Li, Staff Software Engineer
Expanding Throughout the Organization
At Lyft, Codecov is enabled for all repositories, which means that as long as teams are generating coverage data then they’ll have access to Codecov right at their fingertips. As teams at Lyft have implemented Codecov into their workflows they have noticed a shortened feedback loop in their workflows and an improved and unified developer experience.
“Because of Codecov, we have improved the CI lead time with a shorter feedback loop. We’re seeing more and more adoption of Codecov [across teams].”
-Jun Li, Staff Software Engineer