Purple white and red flowers.
Our garden is growing. We've raised a Series A funding round.
Read more here

Case study: How Retool improved developer satisfaction scores by 50%

Valerie Slaughter
Written by 
January 19, 2023
“Every day you dev without Garden, a plant dies.”
— a Retool Developer

Internal tool development platform Retool is known for helping companies quickly build and deploy internal apps. 

Before we started working with them in March 2022, their developers were frustrated. For a company that enables operational excellence for their customers, this internal friction was especially affecting. In Retool’s regular developer experience surveys, developers gave a lower satisfaction score than was hoped for―and identified local dev as the main point of frustration. 

Garden improved satisfaction scores in Retool’s developer experience survey by 50% within 3 quarters by improving build performance, creating consistent environments, and reducing flakiness of tests.

We sat down with Anna Yan, Software Engineer at Retool, to discuss the impact Garden has made on her team.

Challenges

“Dev, CI, and prod environments should be as similar to each other as possible.”

Inconsistency across environments

While Retool’s developers managed environments in Docker Compose, CI and production deployed to Kubernetes, which caused friction. Developers were never sure if the work they did on their laptops would work in other environments.

“Dev, CI, and prod environments should be as similar to each other as possible,” Anna said.

“It’s not just that if things work in one environment, like dev, then they should also work in another environment, like CI or production,” Anna told us. Disparities between environments created additional labor, requiring DevOps to synchronize Compose and Kubernetes with different stacks of monitoring and tools.

Build performance lags

When it came to building images, Docker’s caching was not up to snuff. While it was possible to use bash scripts to cache from the latest image that was built or built from one branch, Anna told us that she wanted to see smarter caching and more minimal builds, like Garden provides.

“When we were using Docker without Garden, we were trying to build as infrequently as possible, which made it difficult to figure out what was broken,” Anna said.

Brittle bash scripts

Retool used custom bash scripts to wrap Docker Compose but this created a brittle system and made it difficult to troubleshoot when things went wrong.

“When something broke, it was hard for the engineers to tell whether it was their fault or if something was broken on the main branch,” Anna said. “EngX would run through a list of possible errors: Did you yarn install first, and in the right folder? Did you run this command? If so, in what order?” It was frustrating.

Retool could have potentially addressed this problem by writing more bash scripts but that would have made an already brittle collection more fragile and difficult to reason through.

Solutions

“With Garden, things are stable.”

Dev (and prod and CI) in Kubernetes

Retool moved to Garden so they could use the same environments across dev, CI, and production.

“Our production and CI are both on Kubernetes. So it started feeling like, why are we maintaining this Docker Compose thing when this is the only place we use Docker Compose?” Anna said.

“With Garden, things are stable,” Anna told us. “When you start your environment it builds the backend image for you and it's clean. Every time you run the developer environment, it is guaranteed to work.”

“Build performance matters”

Anna wanted to keep rebuilds minimal. “If we are rebuilding so often, then the build performance matters,” Anna told us.

Garden’s multi-layered smart caching meant that images would only be rebuilt when they had changed, and even then they would only be rebuilt to the extent that they had changed. Garden’s smart caching made building “less painful,” Anna said.

Outcomes

“Garden reduces the impact of human error. There’s a clear path forward when things go wrong. When it doesn’t work, people can  just restart the command.”

Happier devs

One year later, Anna and her team at Retool are happy clients of Garden Cloud. “We improved our DevEx internal scores by 50% over the last few quarters,” Anna said.

What moved the needle the most? According to Anna, using the same environments for dev, CI, and production made the biggest difference to the Retool team. This meant developers could test in the same environments where they code.

A more unified Engineering team

More unity in the engineering team was an unexpected benefit. With Garden, Retool’s new Engineering Experience team develops the same skillset as the Cloud Infra Team. “We share the same on-call schedule, the same runbooks. That wouldn’t have been possible if CI and dev were running in Docker Compose.”

Developers left Garden-specific notes in Retool’s DevEx survey. “Garden is awesome,” read one. “Highly regret not using it earlier,” read another. From a third: “Love using Garden, it makes me happy.” ✨

Previous
Next