The most common questions that I get from customers – whether it be developers or executives – is to understand how Amazon is able to move so quickly. They want to know about our company culture, our organizational structure, the internal tools that we use, and the type of people that we hire, just to name a few. Of course, there’s no single answer here. Further, what might be a challenge at one company isn’t necessarily the same at another. But there’s one thing that I’ve found that as close to a silver bullet as you can get – Developers. More specifically, it’s about hiring the right kinds of developers and then empowering them to do what they do best – build.
Interestingly, this empowerment aspect is where a lot of companies struggle. Sometimes, a company’s organizational structures or internal policies act as barriers to letting developers build, and there are non-technical levers that can help a company move more quickly. But sometimes, the problems are more tied to the actual technologies themselves, and how these are rolled out and managed across the company. Building in the cloud is an obvious first step here, as it allows companies to experiment and deliver faster than they can on-premises. In the cloud, developers have the ability to use the best technology for whatever solution they may be building and can easily deploy a web-scale solution in fractions of the time they can elsewhere. But like the answer to the original question, on its own the cloud is not always a silver bullet. When companies try and apply the same traditional thinking they use for on-premises infrastructure to evaluate, deploy and operate applications in the cloud, they still may not be able to run at the speed they want to. So what needs to change?
Today, I want to talk more about our thinking at Amazon, and how our developers, modern application development and platforms are at the center of our ability to move fast. If you want to run faster as a company, let your developers serve themselves. Let them innovate without having to ask for permission. Use guardrails and platforms that enable developers to focus on the more valuable part of their jobs. Abstract away unneeded complexity, but give them choices that are relevant to them.