Skip to main content

Case Study: How Beck's Hybrids Improved Reliability with Atlas

· 5 min read
Noa Rogoszinski
Noa Rogoszinski
DevRel Engineer

"I rely on Atlas because I know it works and it gets the job done."

– Hicaro Adriano, Principal Software Engineer, Beck's Hybrids

Company Background

Founded in 1937, Beck's Hybrids appreciates the farmers who have helped them grow to become the largest family-owned retail seed company and third-largest seed brand in the United States. This position gives Beck's access to the best genetics and trait technologies from suppliers worldwide. Beck's strives to provide all customers with the tools, support, and resources they need to succeed.

The Obstacle: Unreliable Migrations

The Beck's Hybrids IT department began with a few engineers managing mainframes. Over the years, the development team has grown in an effort to provide customers and internal users with various applications that help power all aspects of the business. These systems include "FARMServer®", a precision farming platform that helps farmers make decisions based on optimal planting windows and growth stage modeling.

FARMServer is a complex, Microsoft SQL Server-based application that has grown to include a wide range of features and functionalities. Its codebase heavily utilizes stored procedures, views, and custom types to handle the intricate logic required for precision farming.

Beck's has traditionally developed its technologies in-house, and that includes their schema management system for these applications. Their system was a semi-automatic process that required manually written migrations, which can be quite fragile.

Their process required developers to manually track which revisions had been applied, carefully compare that to the current state in production, and then apply the remaining changes one-by-one - "hoping they wouldn’t fail." With no batch transactions or safety mechanisms in place, even a small mistake often left production in an inconsistent state.

Deciding to search for a tool

"The need for a robust tool became clear as we looked for ways to improve reliability and streamline releases." -Hicaro Adriano, Principal Software Engineer

Migration failures can lead to drift between the development and production environments, ultimately causing outages upon release. "Software releases occassionally triggered database issues, resulting in downtime ranging from five minutes to an hour. These moments emphasized the need for proactive communication and more resilient systems to strengthen user trust in the application. The goal became clear: increase stability, minimize disruption, and create a better experience for everyone involved," Hicaro explained.

These outages and inconsistencies didn’t just impact customers, they also eroded developer confidence. Fragile schema migration processes led to growing hesitation among engineers. After enough bad migrations, fewer and fewer developers volunteered to own them when schema changes needed to be made. "For each new release, we assign one developer to be in charge, but nobody wants to because they know the database release process is still a pain," said Hicaro.

At Beck's, developers are given the last Friday of each month to explore new ideas and build internal tools. Over time, Hicaro noticed a pattern: engineers were using that time to piece together their own migration solutions. It was a clear signal that the homegrown system wasn't working and the time had come to find a proper tool.

Choosing Atlas

"Once we started using Atlas, it was clear this was exactly what we needed."

While looking through the available options, Hicaro came across Atlas' automatic planning capability:

"It didn't just automate running the migrations, but it also took care of the planning. I really liked the idea of defining a schema and then getting the diff against your migration folder to figure out what needs to be done." By automating the actual migration creation, this takes the pressure off of the developers who were led to avoid them entirely.

Hicaro also noted that, while working with an external vendor for such a tool felt unnatural for the Beck's engineering organization, the Atlas team was and continues to be available for every speed bump. "Sometimes I find something wrong and let your team know, and next day it's already fixed. My manager also notices, and other people, too. It's gotten to the point that we keep joking how much faster can they be."

The Outcome

"Atlas does way more than I expected, and every day, it continues to surprise us."

Atlas has impacted the way the Beck's development teams work:

  • Trust in Every Release: CI integrations give developers the peace of mind that any errors will be caught before deployment. "You can rely on the GitHub Action for linting to catch anything that needs to be fixed," said Hicaro.

  • Expanded Contribution: Automating the migration process and subsequent safeguards allows developers to feel more confident creating migrations for new releases and learning about their databases. Hicaro noted that "even the most junior person is generating much better code now."

  • Accelerated Deployments: The team now experiences a remarkably faster and safer migration process. "I can go into a meeting and come back and everything is done: the table was created in the right place and the migration file was generated. That is saving me huge amounts of time," Hicaro emphasized.

By implementing an automated migration tool with CI/CD integration, Beck's Hybrids is able to ship better quality releases faster than ever before. Not only does this increase the confidence of farmers in the product, but it also revives the confidence in the developers that their database management is reliable.

Getting Started

Atlas utilizes the declarative principles of infrastructure-as-code to make schema changes more manageable.

It lets teams define their desired schema state in code, plan migrations automatically, validate changes in CI, and deploy with confidence. For Beck's Hybrids, it took the persistent pain of writing manual migrations off of the developers by automating the process and ensuring safe deployments.

If you're working with relational databases and want a more structured way to manage schema changes:

→ Start with the quickstart

→ Join our Discord

→ And begin managing your schemas as code.