Home improvement projects are born in the aisles of The Home Depot. Whether you’re a DIYer making a biweekly pilgrimage or a professional stocking up on supplies, the largest home improvement retailer in the United States is a base for making a house a dream home—or at least upgrading a room or two. Behind the retailer’s vast inventory of products is a team of thousands of technology pros who are making home improvement faster and more convenient.
“Technology is how we evolve our business going forward,” said VP of Technology, Angie Brown. She sees technology success as synonymous with the company’s success. And, as a result, the company’s engineering organization has become the leader in home improvement retail, creating a seamless experience for customers in stores and online, and sometimes both at the same time. These connections—and the ease with which customers navigate them—are made possible by code written in-house. In fact, The Home Depot writes a majority of its own code that powers nearly 2,300 stores and a growing number of supply chain facilities.
In 2015, developers at The Home Depot wanted to modernize the way they built software, recounted Tony McCulley, Senior Manager of Developer Experience. His team handles developer tools, including GitHub Enterprise. He saw that the organization’s engineers spent their spare time in GitHub repos, where the quick and innovative startups they looked up to were building software. “Our engineering community wanted something more modern, something Git-based,” he said. “That’s where the industry was heading.”
Choosing GitHub wasn’t about rushing to a trendy version control system. Instead, it was about listening to Home Depot developers and setting the tone for their experience, while holding the organization to an ambitious standard for technology. As McCulley described, the tools developers choose for their craft are important. Choosing the right ones can help them not only be more productive but also take more pride in their work and feel better about the decisions that go into their codebase.
For McCulley, the command and control of the legacy tool is outweighed by the desire to create a culture of autonomy, self-sufficiency, and trust. “We listened to our engineers and then upgraded their tools with ones they expected and wanted to use.” This decision was quickly reinforced. Even without mandating the move, the organic shift to GitHub became the standard in less than a year.
Like many enterprises, The Home Depot is embracing a development philosophy that swaps out cumbersome, self-managed infrastructure in favor of the cloud and third-party apps and services. They realized that they don’t need to build everything—and if they stop maintaining infrastructure, they have more time to perfect what’s special about their software. Instead of continuously building and rebuilding internal tools, they can create differentiated customer experiences.
Brown describes this process as part of the organization’s larger effort to streamline the development cycle and remove everything that gets in the way of productivity. And importantly, be smart about it: industry best practices and data like DORA metrics inform their efforts. “We’re integrating our pipeline, limiting context switching, and relying on GitHub to step up our productivity,” she explained. “Our engineers need the speed and space to create experiences that delight our customers, at massive scale.”
In this model, teams generally have the autonomy to choose their own tools and create a DevOps toolchain that fits their particular needs—even in a large company with plenty of regulatory and compliance requirements. McCulley and the Developer Experience team make sure developers have what they need to get from idea to something testable: IDEs, CI tooling, and more. “Our goal is to make the easy thing and the right thing the same thing,” he explained. The right thing is really in the hands of developers: whether that’s tools like Jira or open source software.
It’s easy to bring in an aphorism here like “don’t reinvent the wheel.” But it’s not just about avoiding duplicative work—though this is part of it. Instead, Technology Fellow Chris Black sees open source as a space where technology changes fast. Any company trying to build software in step won’t be able to keep up. User needs change: New technologies and forward-looking maintainers can meet them faster.
“Most of our development is built around open source tools, and we’ve been using them since the early days of Linux,” said Black. “Open source is where innovation happens. And if you want to solve brand new problems, you’re going to need the latest technologies.”
While developers can write simple solutions to smaller problems, it’s much easier to pull in open source code that’s been vetted by the community and companies alike. And many dependencies don’t just save time. The effort poured into them by their creators and contributors often results in downstream improvements, like speedier delivery.
Teams have to consume open source to stay ahead, but they don’t always contribute back. Consumption increases speed, but contribution reshapes a company’s engineering culture. And Home Depot engineers have been open sourcing work for years. They’re excited to give back, whether it’s adding to a utility they rely on, sharing a helper tool, or fixing a bug in a dependency. “It’s important to participate in the broader development community,” explained Distinguished Engineer Jermaine Davis, “because whether you know it or not, you’re part of it.”
“Delight” for customers and developers isn’t easy to quantify. But it’s impossible to ignore how much faster the team has become since they’ve started streamlining their developer experience. From 2017 to 2019, the increase in the number of changes to their codebase nearly doubled. Associates across the business – from stores to supply chain and in back-office functions are feeling the difference: “It’s been huge,” said Brown.
“It’s important to participate in the broader development community,” explained Distinguished Engineer Jermaine Davis, “because whether you know it or not, you’re part of it.”
“The shifts have been extraordinary as we’re moving to a more agile mindset,” she continued. “GitHub has been critical to evolving our software development lifecycle. We now average about 4,000 commits daily, a speed that just wouldn’t have been possible otherwise.”
GitHub has been critical to evolving our software development lifecycle. We now average about 4,000 commits daily, a speed that just wouldn’t have been possible otherwise.
This shift toward the cloud and toward small, incremental changes to code is now deeply ingrained. Both Brown and Davis point to The Home Depot’s response to the 2020 COVID-19 pandemic as evidence that adaptability isn’t just luck. It’s the result of a careful and strategic investment into the organization’s infrastructure.
“We set ourselves up for success—to be able to scale and react,” said Davis, “Our cloud partners have allowed us to add more compute. We keep shipping product, and our systems just keep humming. No re-architecting—they just handle it.” The team has built software that supports a volume of transactions they never thought possible. They’ve built capabilities to offer same-day or next day delivery to more than 90% of the U.S. in addition to offering new fulfillment options, like curbside pickup, that rolled out in record time.
And with all their developers on GitHub, the move to remote work went smoothly. No matter where Home Depot engineers are coding, GitHub is at the center of their workflow. This provides visibility and simplifies project tracking within and outside the engineering team. GitHub events like issues, pull requests, and commits are all tied to Jira, so anyone in the company can watch a feature in the works, from anywhere in the country.
“GitHub is core to how we deliver software,” said Davis. Integrated pipelines centralize code reviews and CI. They keep everyone in their flows, limit context switching, and support the larger goal of making the developer experience as pleasant and as productive as possible, even at home. It’s not easy to focus on work in 2020. But the workflow The Home Depot built around GitHub is a constant, helping developers make the most of the time they do have.
For Davis and his team, the “basic everyday goodness of GitHub” lives in its fundamental workflow functionality: things like branching, pull requests, and workflow automation keep everyone using consistent tools and standards. But the real time savers come from using GitHub in new ways, like building a GitOps workflow for Terraform deployments. Teams can edit a file locally, merge it on GitHub, and then kick off deployment from the pull request. And with all the required information and feedback for the external system to proceed if changes are approved.
“We’ve had a lot of teams using GitHub in different ways,” noted McCulley. For instance, he’s seen teams use GitHub Actions to automate various deployment processes, bring in tools from GitHub Marketplace, and created documentation and style guides using GitHub Pages. They’re also excited to dig into Insights and Codespaces as their newly remote workflow evolves. “It started as a developer tool for developers, but now, it’s much more than that.”
With increased transactions in stores and online during the first half driving record sales, The Home Depot’s software needs to meet financial regulatory requirements. To stay compliant, the organization is required to follow best practices around code security, review sign off, documentation, encryption, and more.
Compliance is often synonymous with extra (albeit necessary) work. But the team has been able to build many of their compliance needs into their GitHub workflow using key features and GitHub APIs. Black explained, “It’s great for us that GitHub has pull requests within repos. We can automate best practices, write deployment checks, limit access, and document our process by default.”
We have time to build community, best practices, and training because the overhead of administering GitHub is very low.
On the administration side, the Developer Experience team has also been able to stay productive. “We have time to build community, best practices, and training because the overhead of administering GitHub is very low,” said McCully, “Upgrades are also straightforward. “It’s just one button push.” And if Brown’s organization needs a partner, she can turn to GitHub. “The Solutions Engineers at GitHub have been phenomenal partners. They truly understand both our technology and our retail strategy. GitHub has worked hard to learn about us and to give us a seat at the table.”
The tools The Home Depot uses aren’t just good for its engineers. They’re also important to future employees. Engineering teams across the company have found the tools they use can make or break their recruiting efforts. Engineering managers feel that regardless of how much experience a developer has, GitHub is on their resume—and sometimes is their resume.
“GitHub is a big part of developers’ lives,” added Black. “The modern developer experience is using GitHub and looking for projects that solve problems. If it wasn’t available to a development team, they’d feel hampered.”
The Home Depot’s switch to GitHub Enterprise started as a source code management migration. But it’s become much more than that over the years. It’s home to their entire developer experience, the central platform they all interact with. As Black described, “We’re better at collaborating and collectively solving problems—that’s what makes us better.”
Note: Any photos showing individuals without masks and PPE were taken before the global COVID-19 outbreak.