October 30, 2019
Four years ago, my family and I moved from Zurich to Seattle. I grew up in Brazil and had the privilege to live in three continents, but I fell in love with the Pacific Northwest because of its nature and the local culture. The coffee shops here are really special. No city in the US has more coffee shops than Seattle. Between global or local chains, and indie shops, coffee enthusiasts like me can always find a place that is perfect for them.
It was at one of these coffee shops that I met John Ewart. We started chatting because we liked each other’s laptop stickers. This random encounter led us on a path that changed our lives — in a big way.
John and I became close friends. Even though we grew up in different cultures, we had a lot in common. We liked the same music, enjoyed board games, had families with two kids and worked in infrastructure at cloud companies (Google and Amazon AWS).
We also shared the vision that software developers help the world by creating technology that improves people’s day-to-day lives, but we are frustratingly limited by old and inefficient development processes. John and I wanted to rethink how things were done.
Distracted Software Development
If you are a professional developer, you probably use Continuous integration (CI) tools. CI and build tools allow developers to collaborate on projects with confidence without breaking each other’s code.
Though they are ubiquitous and available in different flavors from different vendors, current CI tools have many problems:
- Legacy CIs waste time and money.The average software engineer loses approximately 3 ½ hours of their workweek waiting on builds, and context-switching between tasks can waste as much as 80% of a developer’s productive time.
- Legacy CIs and local development are unreliable and inconsistent. Local builds are often inconsistent with the CI environment and code changes may work during local development, but fail in the CI. When developers spend too much time troubleshooting, companies waste money.
- New hires take longer to get productive.Without a consistent dev environment, it can take several days to onboard new developers. Instead of writing code on day one, developers spend their time installing and troubleshooting their local development environment — and this happens with every new hire. When a company is growing fast, poor onboarding creates an unpleasant experience from the outset and gives bad signals about the company culture.
- Legacy CI pricing incentivizes working slowly.To speed up builds by running in parallel, CI users have to pay for more resources. However, CI providers are perversely motivated to keep builds slow to push users to upgrade to more expensive service tiers. For example, if a team needs Runs 10 builds every day at 3pm, and each build takes 40 minutes, to minimize developer downtime the team would need 10 concurrent VMs. If each VM costs $50/month, the team would pay $500/month. If the CI provider compressed the build time from 40 minutes to 1 minute, users would not need the parallelism, but that would hurt the CI’s bottom line.
When I worked on Google’s internal development platform, excessively slow builds were a major issue. Even at Google, teams that did not have an optimized build system struggled to ship features on time and changes could take more than an hour to be tested.
Interruptions hurt companies
- When the code feedback cycle takes longer, developers make fewer code changes per day and avoid automated tests
- Lack of testing makes the development process slower and less reliable, resulting in buggier code
- Buggier code makes users unhappy and hurts the business. Tricentis’ software fail watch report calculates that software bugs caused $1.7 trillion in financial losses in 2017 alone.
- Development teams often respond to these challenges by relying on more manual testing.
Large companies often rely on QA teams to cover this gap. However, when changes pile up in manual QA, this does not add value to the business. When QA finds issues, they may have to return changes to the development team, which again may not have an automated way to test them. That creates an endless cycle of delays and potential conflict between teams, hurting both your employees and your business.
Software companies are ranked by the market based on how fast their engineers can transform ideas into products and create value for their customers. However, the frequent distractions created by CI tools limit how fast software companies grow and evolve.
It is not a coincidence that the most valuable tech companies in the world are maniacally focused on removing distractions for their development teams. However, the developer infrastructures they create are not available to the outside world. They may open-source some tools here and there, but it is not enough to throw a hard-to-use project over the wall and label it with an Apache2 License.
Until now, no one has tried to deliver a similar experience in the software build space. It is time to change that.
John Ewart and I started YourBase to help software development teams move faster. Our founding team worked on cloud and developer infrastructure at Google, Amazon AWS, Facebook, Microsoft, and Travis CI. We are passionate about great developer tools, and we aspire to help developers simplify their lives and ship better code.
Our first product is an Accelerated CI. It uses a dependency graph and caching to make the feedback loop happen faster, more reliably, and earlier in the process. Learn How it Works.
The Accelerated CI integrates with Git hosting providers just like legacy CIs, and can be used during local development Runs remote builds, providing feedback faster and more often.
Faster and more frequent code feedback enables companies to deliver software faster, create more value for their users, and grow their businesses.
Isolated local development with consistent dependencies
We don’t just want fast builds; we also want to create an overall development experience that we would be happy to use every day. With YourBase developers can use the exact same build configuration for CI and for local development, leading to faster iterations and avoiding builds that work locally but fail during the CI process.
Our product manages dependencies consistently across different development stages, which avoids cases where code works locally but not in the CI or vice-versa. It ships with a command-line tool that developers can install on their laptop or workstation, with IDE extensions on the horizon.
Every time YourBase runs build and test, it uses a container to make them hermetic and reproducible. This reduces frustrations and the need to debug problems caused by environment mismatches. While the same could be accomplished with Docker, YourBase was created from scratch to be highly optimized for fast feedback, increasing speeds by as much as 10x.
Remote builds during local development
YourBase can build code remotely and leverage its build graph for acceleration while a developer is still working on code without requiring them to leave their workflow. This works by sending just a delta of the code to the remote server, which finds a recent similar build, and running only the steps that are affected by those changes.
This makes it much easier to get quick feedback on whether the code will work in the CI or after it’s merged.
Replacing legacy CIs
YourBase can replace most legacy CIs. The setup is simple and can be done in minutes.
For now, the Accelerated CI only supports repositories hosted at github.com, but integrations with GitHub Enterprise and other providers are coming, too.
To get started, simply follow these steps:
- Head to YourBase.io and sign-up for the Early Access program (which ends on November 31st)
- Follow the instructions you will receive by email
- Join our support Slack or say ‘Hi’ to the team in the chat app below
You can run the Accelerated CI alongside your existing CI for a while, making it easy for you to compare YourBase to your legacy CI.
Here is the build performance some of our customers see with YourBase:
When I first met John at that coffee shop, I could never imagine it would lead us to start a company together and to rethink how CI works. But here we are. I believe technology can improve people’s day-to-day lives. It has certainly changed mine. I hope YourBase helps you and your team have longer, more pleasurable, and productive hours building new things and changing the world.
Let me know how it goes!
Yves Junqueira, co-founder CEO YourBase.io @cetico