đ¸ Build software like Walmart
The surprising story of how developer tools cured technical debt
Technical debt is like cancer. Itâs slow to onset, but hard to get rid of and once it has a grip on your organization it can slow your developer productivity to a halt. And even after thousands of blog posts on âHow to avoid technical debtâ, every organization still ends up facing it. What gives?
Technical debt happens when developers make assumptions about future requirements. For example, you might build a video chat application that only supports one on one calls. Three years into the product's existence, you find out that customers actually want group video calls, but the product was never built for that! Thatâs like taking a single-family home and trying to convert it into apartments.
In the rush to serve this emerging customer need, your developers take shortcuts or waste time rebuilding core parts of their infrastructure. Repeat this process, and your software internals inevitably become a zombified blob of organic development.
Engineering teams of all sizes face the problem of technical debt, but it metastasizes as engineering teams scale. Software complexity = Number of customers * number of engineers. Complex software that has grown organically with large enterprises can be an expensive beast to tame. For example, many legacy finance organizations need to keep COBOL engineers on staff to support their legacy integrations with ACH software. The FAA has core airline weather forecasting infrastructure written in a programming language designed 20 years ago!
These organizations are so bogged down by technical debt, they spend most of their time fixing existing software rather than building new features. New engineers are less productive because they are constrained by the limitations of the product theyâre working with.
Massive enterprises occasionally embark upon a ârefactorâ, where they bring in outside consultants or dedicate entire engineering teams to convert their legacy code into something more modern. But these efforts rarely solve the core problem, because tech debt is inevitable. It isnât about stopping tech debt, itâs about unblocking innovation alongside continuous maintenance of legacy software.
Walmart is an example of a 60-year-old company that has found a way to do this. Obviously, they have technical debt, but they donât let it hold them back. Walmart has fostered a culture of innovation by embracing modern development tools like Next.JS that can exist alongside their legacy software systems. This novel hybrid approach means they donât have to do an expensive refactor, or forgo using modern development tools. Walmart Labs (the technical group within Walmart) is able to attract strong developer talent with the allure of using the best tools in the business. And finally, theyâre able to innovate faster, and weâve seen Walmart launch products like Drone Delivery, Conversational Shopping, and Augmented Reality Shopping at an impressive pace relative to their peers.
Never thought I'd say this, but be like Walmart. Startups that build software spend an enormous percentage of their operating expenses on developers. And in this tight macroeconomic environment, itâs more important than ever to be nimble and lean. Implementing modern developer tools like Vercel, Fly.io, or Instant alongside your existing software will free your developers from the weight of the technical debt thatâs been holding them back.