NOTE: This was written and published on December 3, 2020. I’ve since started and posted about my next adventure, along with a little on how I chose it, here.
Today is my last day with The Home Depot.
Those are words I never thought I’d write. One, because I never thought I’d join Home Depot, or any large enterprise organization. Two, even after I did, I refused to admit it. I preferred to tell people I worked at QuoteCenter — the name of the group I’ve worked with within Home Depot — and if they pried, I might admit that I was working at a “post-acquisition startup owned by THD”.
I worked for The Home Depot though. For the last 5 1/2 years, until today, actually. Today I’m leaving to head back towards my roots, a fresh adventure at a stage that suits my temperament and current risk tolerance. Off to help launch another rocket, something I’ve been pretty ok at so far in my career.
What I’ve been doing at Home Depot was helping launch a rocket, an internal one called QuoteCenter, one that was poised on the pad with all engines lit up when myself and a wave of others joined in mid-2015. All the lift potential was there. It needed some guidance, tactics for getting through the space junk in the atmosphere, and a little luck. And 5 1/2 years later, we did it. A tech-centric Pro marketplace inside The Home Depot is in orbit amongst the satellites.
The Brief Origin Story
Once upon a time, The Home Depot was a rocket of its own. Its origins are in late-mid-century retail. Stack’em high, watch’em fly, and what if we did that at continental scale.
The Home Depot’s business, from everything I can tell, was built around what came to be called the DIY customer, and in particular what you might call a pro-sumer customer that was starting to emerge in the late 1970s and 1980s. My dad was a good example of a target Home Depot customer in the 80s: Single-family home owner with a background as a machinist and possessor of meat-space technical skills seeks enormous warehouse experience where he can wander gargantuan aisles, shop every brand known to humanity and feel really good about the price he was paying. The Big Box Store epitomized the 80s and 90s retail customer experience expectation: one stop shopping in a centralized location.
This worked. Really, really well. I think if you went back to 1978 and told anyone not named Bernie or Arthur or Ken that you thought a hardware store would be in the Fortune 25, you’d have gotten laughed out of the room. But the model worked, and today there are over 2,000 Home Depot stores, and almost all of the US has at least one within a few hours drive. And The Home Depot is amongst the biggest corporations in the US and the world.
That must have been a fun rocket to get off the ground. The challenge of moving into an entirely new region of the country. Markets and Districts and most importantly Stores are your domain models. Each store its own mini-rocket, free to plot its course, run its own systems, set its own prices, keep its own customer records, build its own thrust, learn from failures and embrace success. The Store as autonomous center of its own universe and owner of its individual destiny was at the heart of how THD and many if not most of the retail giants that grew up in the 80s and 90s were built. It’s at the core of the architecture, the structure, the code.
And now it’s 2020, and that’s a problem.
I want to pause here, because if I was reading this without knowing anything about Home Depot, I’d likely be saying to myself So Friggen What. I just introduced the emergence, situation and eventual plight of every single retail organization that grew up between 1900 and roughly 1997. Who cares.
This is not a commercial to go work for Home Depot. Or maybe it is. Here’s why: Like most organizations, THD has a set of core values. What has surprised the heck out of me is that this org actually lives them, all the way to the CEO. I’ve worked a total of maybe six hours in a store, and I haven’t worked a DC, or anywhere else really but our Portland-area office, so maybe you’re reading this as a current or former THD employee saying yeah right. All I can speak of is my little experience and how I’ve perceived the org during my time as an engineering leader.
Some examples seem warranted… I won’t dig into the values that refer to things like creating shareholder value. You can look at the stock price and see that THD lives that one. And entrepreneurial spirit we’ve already discussed: Every store, its own organism, free to grow in many of its own ways.
Taking care of our people is one. This is an every day conversation, both as a manager of people and as makers of software for our associates. “What’s the right thing to do for the user here” is everyday vocabulary. Prioritizing accessibility for users isn’t something we did because it was mandated, but rather something that’s emerged organically from the culture and from ICs who are cultural leaders. How might we help the store associate help the Pro is at the heart of every discovery, definition, design and development iteration we do.
In terms of respect for all people, I’ve honestly never worked anywhere where there are literally no jerks before. That either means that the jerk was me (which maybe that was it 🤔), or respect for all people is something that’s required to the extent that those who don’t practice it are either shown the door, or never let in in the first place.
Giving back is a big one for me, and I’m always going to wish we’d do more and that I could have done more personally. I think of the times someone said to me hey I want to host such and such event, or hey I want to take the day off to do xyz volunteer event. The answer for me and in my group is: Yes, and… don’t take the day off to do it, do it as part of your job. I think that’s pretty fantastic. And pretty rare as well, to be empowered by your org to say that to your people.
The way the org has taken care of its people during the COVID-19 pandemic has been pretty awesome from my perspective. For a giant corporation to infuse understanding and grace so quickly into its operating system when the need emerged… it can’t have been easy. And we did it.
While I might have been frustrated at times at the slowness of making many other culture changes in the broader org (see the current conversations around the ability to work from anywhere post-pandemic, etc), I think that’s true for any large organization of people. What’s awesome about Home Depot is how few times you get told No when you have a big idea, and how many times you get told Great, I don’t know how to do that myself, but if I can help you I will.
Back to our story. The problem Home Depot is facing as we get into the meat of the 21st century is fairly straightforward: That awesome, stick a big ol’ warehouse in every metro area in the country model is now legacy code. It no longer aligns with the 2020 consumer expectation of “Yo, put it on my porch.”
Sites and apps that ask you what store would you like to shop in? are anachronisms in a world where I can Instacart anything, and it’s on my porch within two hours. Or Amazon Prime literally fucking anything, and it’s on my porch within two days. What store am I shopping in??? Stores?
The modern retail customer expectation is: Click or tap a button, and within days if not hours, it’s on my porch. When I joined Depot in 2015 it felt like I was one of the few people who really got that. The org was excited about a program called Buy Online Pickup In Store, which to me sounds like a whole lot of work. In 2020 I can say that THD Leadership (and you can see this most easily in its quarterly investor calls) absolutely gets the modern consumer expectations. The other day I went out to homedepot.com and shopped for vinyl flooring. I had enough for a kitchen in my cart, bound for my front porch if I’d clicked buy, and never once was I asked what store are you shopping in? That’s outer space. And that’s where Home Depot is headed, because that’s where retail is headed, or you’re dead.
And putting a giant $100b+ / year organization in space is a massive amount of work, with all manner of interesting nuances to consider and fun problems to noodle on.
The group I’ve been working with — Home Depot QuoteCenter — is engaged in wrastling with a segmented aspect of this problem: What is the modern Pro customer expectation?
What is a Pro customer?
In its annual 10-K filing with the Securities and Exchange Commission, Home Depot defines its “Pro” customers as those who “are primarily professional renovators/remodelers, general contractors, handymen, property managers, building service contractors and specialty tradesmen, such as installers.” In other words, these aren’t DIY homeowners tackling weekend projects but, rather, people who depend on performing these types of jobs for their livelihood.
A pro contractor doesn’t need materials on their porch. They need them at the jobsite… and could they please arrive at the jobsite on the day we’ll need them, cuz I don’t want spools of copper wire sitting around for someone to steal, ok? Oh, and those shingles? Put’em on the roof so we don’t have to lug them up there.
Price plays a part as well. It needs to make sense for the scale of the purchase. There’s a mountain of legacy code in how materials are priced in the market, and a lot of it is of the nature yeah the folks at the lumberyard, they charge me MY price.
To compete, a modern interconnected retailer needs a way to compose its pricing, discounting and markdown systems to both compete and shift the expectations around price paid.
Finally, completing the purchase matters. Ironically for a space with so much legacy rigidity in its systems of motivation and marketplaces, materials are mostly fully componentized.
Most modern consumer retail experiences are turnkey purchases. Batteries ARE included. And everything else I need to make the mini quadcopter drone I’m ordering on Amazon just work when it arrives on my porch in days if not hours.
Try that with a composite deck, or a vinyl fence. You need to buy the things that go with the things, and combining things that are necessary and it’s a fail if I forget them is orders of magnitude harder of a problem than recommending me one of many Neal Stephenson books because I liked the last two William Gibson novels I read.
This was my elevator pitch version of what I did at QuoteCenter: We extend the store shelves for Pro customers. A Pro building a subdivision needs shingles, and they need a lot more of them than fit on a store shelf, and at a price that makes sense for that scale of purchase, and they don’t need them all at once but staggered throughout the build, and finally they need them delivered and ideally placed on the roofs. We enable all of that through The Home Depot.
A big part of doing the thing here involved re-imagining technology systems that existed at The Home Depot, only in less composable forms. I can’t get too far into the strategy around turning a 42 year old brick & mortar behemoth into a tech company, but suffice it to say they involve focused, single sources of truth that are composable and extensible, and a lot of the challenge of doing that at a large organization is convincing enough of the various human bits that it’s what we should do.
Why is that so hard, anyway?
I think it’s hard on a lot of levels simply because building rigidity is so darn easy. Composability and extensibility require iterations of divergence and convergence, developing shared understanding, arriving at a domain model collaboratively and inclusively. Whereas I can open up VS Code and impose rigidity with a few keystrokes. 💥. Here’s a product model with a fixed final retail price, non-nullable number. Looks good to me, passed CI, hits acceptance for our little group. 🚢 it.
And now it’s encoded.
And now it’s technical debt when you want to do something a little different with your final price.
And I’m talking software here, but it’s a metaphor for the larger whole. We talk a lot about Domain Driven Design and about making the software models match the business. That’s interesting, but not nearly as interesting as the conversation around the flow in the opposite direction… how the business is adapting to computing concepts.
For example, how is a compensation model built? Is it compositional? Can I refactor a Directorship and downline’s comp when the business direction changes? Or was it built with rigidity such that if I’m not inheriting from the right
SalesRepresentative model that I can’t do that, and so the org stays motivated to keep doing legacy things.
Keeping doing legacy things is the hardest conversation. There’s a lot of reward built into keeping the org right where it is. Why put it up in space when it’s all working great down here. And for the most part, not only are the technologists the ones equipped to have the conversation, we’re the ones who see the need to have the conversation in the first place.
Reading Code is harder than writing code. And in this case, we’re not just talking about software code.
So where are we at here: Huge opportunity up in space for values-based Fortune 25, there’s several rockets up there already, you’ve got to become a tech company from the inside out to even see the need to put the org up there too… but the customer expects it and they’re going elsewhere if they don’t do it, so long term it’s do it or die… oh and then there’s this little thing called actually doing the thing. Execution.
I could probably stop right there and have done the job of an essay… making a point, the point that hey if you want to come take on that sort of hard problem for a great company to work for, have a look here.
This is probably a good time to say a little about why I’m leaving personally. After all, kid, it sounds like you were already working at a place with great culture that’s solving really interesting problems… what more do you want? The answer is nuanced, and it’s not “more”, and it’s prefaced with this: I think that if I was coming in fresh today, I’d have an incredible amount of energy and passion for all this. It’s not that I’m bored, it’s that I know every inch of the map, the interesting ones anyway. I’m ready for a change, to try my hand at new challenges, to learn a new map. If there’s explorers and there’s settlers, I’m an explorer, and when enough settlers show up at the space colony and things are in good shape, my nature is to start thinking about where else needs exploring.
I’ve got more to say though about the experience I had at THD. I can feel this devolving into a ramble, and strangely enough I’m happy with that. I think you get one of these a decade. Rather than wrapping up, I’m going to double down on the wall of text here and throw out some vignettes, and maybe someone gets something useful out of one or two of the grab bag. Here we go…
The Loose Ramble
The QuoteCenter group I joined in 2015 had written an incredible amount of software. Honestly if it had simply stopped there, it probably would have been nearly as successful. One of the things about being on a rocketship is that you’re growing and you don’t even see all the ways or reasons for it because you’re too busy working on your little part of the rocket. Our sales and marketing team did a fantastic job. Just tremendous. The merchants onboarded every department except the really legacy (appliances) and the truly complex (paint). Again, tremendous work. Tech did its part, and if I’m truly honest, maybe the biggest thing we did post-2015 is we didn’t screw it all up. Which is a win.
Something I’ve learned over the years, now that I’ve been on a couple rocketships, is that if you look too closely at the parts of the rocket at any time, then it looks like the whole thing is going to hell in a handbasket. Fuel is leaking, the welds are strained, we didn’t have time to wireup the backup systems and we’re pretty sure the engineer who did the primary didn’t do it right. To put it in web app terms: Prod is down for the sixth time this week, the nightly ETL process is taking 18 hours instead of 4 because of all the new products, there’s a system that badly needs fixing but nobody can fix it because it’s all legacy code and the two people who wrote it just bailed for XYZ startup, and there’s three people down the hall who were hired seven months ago with a newly created title who still don’t know what they’re supposed to be doing here.
All of this is normal.
The rocket defeats gravity because despite all of that drag, the thrust created by (a) the idea (b) the opportunity space (c ) big ol’ engines. It’s a rocketship.
Over the years we had several misadventures. Mostly to do with overindexing on one KPI or letting the authority:responsibility ratio between departments get out of whack.
One thing that went really wrong is the technical vision when I joined turned out to be a dead end, and rather than reforming the vision, the group seemed to decide for a while that technical visions themselves were the problem, so let’s just not have one.
Operating in a visionless group isn’t as bad as it sounds at first glance. The lack of vision at the core creates a vacuum that’s filled at the peripheries. All sorts of cool shit emerged during those visionless years… docker + kubernetes. Somehow CI/CD survived and the group still goes to prod 10–20 or more times a day. A few of us could have written parts of Accelerate. Reading that book in 2018 was like “oh yeah, we learned that. Oh yeah, we do that. Oh shit, those are cool words to use to talk about a thing we do.”
One of the more interesting problems in the world I think is choosing along the spectrum of centralized, decentralized, distributed, federated. The challenge is that to the right is clearly a better choice for almost any complex system, and that constructing a meaningful system without a central node is really fucking hard. The go-to tools like composibility start to collapse in two scenarios:
- When two languages are so different that everything rendered in the other loses the message in translation
- When two languages overlap and the same terms are used with different meanings
Scenario (2) will be any large enterprise’s biggest challenge. If the widgets team builds its product scheme with price defined as a pre-discounted, pre-fee, pre-marked-down, required base price, and the sprockets team builds its product schema with price being the final post-calculation but pre-marked-down and also nullable price? You’re going to have problems building a coherent system. So you tend to give in to centralization and write One Rule To Rule Them All for price… and here comes rigidity, and rigidity is the enemy when Amazon is coming to eat your lunch.
If you are going to centralize, then extensibility becomes the key. Even if it’s not composable extensibility. If I can come along and fulfill the base price requirements of a non-nullable, non-modified price and extend the model with my own custom notion of price? That may land you with large tables with fields like
priceThatsNotTheRequiredPrice, which will make all your engineers want to hurl, but it also enables the flexibility you need to put your rocket in space.
We talk about the tech, but the real enterprise challenge tends to be People and especially systems of People. Here I think Home Depot gets a lot of things right. This is a company that talks about its values front and center, and really lives those values. A decade ago I think I would have looked at that cynically.
I think half the challenge for any existing enterprise in the 2020s is, can you look like the tech company you either are becoming or actually are while the message machine continues to tell stories that suggest otherwise. Looking like a tech company is important because the good technologists you want to hire en masse want to work for a Capital T Tech Company. I can talk to an individual candidate about using React, EDA, dockerized microservices deployed using kubernetes, CI/CD, modern observability, progressive web applications, etc etc… if the average notion out there in the world is “huh, I thought that company was just ______” then the pipe is dry and the war is lost.
Things I won’t miss about THD — it’s a joke. For laughs 😆 😆 😆
- Thinking the first Monday in February is New Years Day
- One tool to solve every problem, and that tool is called PowerPoint
- AFEWD (Acronyms For Everything We Do)
- That f%&$cking Guam store, out there in the middle of world, messing up what otherwise could be a 16/7 uptime.
- Password Change Day
#ee7125as the primary, secondary, tertiary and auxiliary color in every user interface I build
To Mike Lee: Thank you so much for insisting I come up to Orchards, WA and meet this guy Nate Copper. Life’s a funny thing. I was in a coffee shop when I got your email and celebrating what looked like it was about to be a juicy offer from another org when I got your email, and for whatever reason I was in an aww fuckit, why not go meet this guy kind of mood. So I went up the next day to interview, and the next 5 1/2 years of my life all happened how they did because of that moment of aww fuckit over an afternoon coffee.
To Nate: I have the Pirate Flag. It will fly again, don’t know when, don’t know where, but the next thing of my own I get off the ground whether it’s a software company, a coffee shop or a school? It’ll be flying high, and I’ll send you a picture.
Thank you for everything you taught me.
To my now-former coworkers, those of you who will be taking on the hard and fun problems around lifting THD into orbit:
It’s been a heck of a ride.
I see nothing but opportunity for you in the future. It’s a different shape of opportunity than we had when we were back in the office park in Orchards, and I hope that’s ok for most of you. We did it. We did the thing, put the rocket in space. In more ways than are obvious, our vision has become part of the greater organization’s vision, an org that now mostly understands that it needs to get up into space too. That’s awesome and yet weird at the same time; I think many of us thought what that looked like was all of us stepping triumphantly on to the stage and accepting our awards for launching a satellite. The reality is that it looks more like someone we don’t know and have never heard of telling a story to us that we realize quickly is actually our story, is the story that we’d spent years yelling into a vacuum. I hope you can be ok with that, because opportunity looks like repeating that process. You have changed and are changing and will further change the world of how Pros do business. You might not necessarily get credit for doing it after you do it, and I hope you’re ok with that too, because you’ll always know it was you who did it.
You’re a fantastic group, and of all the things we made together, it’s the camaraderie, character and careers we’ve built that I’m the most proud of.
I miss you each already, and I wish you the best of fortune in the years to come.