I had sharp cheddar cheese and butter in the fridge, but no bread. So, I opened Amazon Prime Now (also known as “assisted living for Millennials” in San Francisco) and ordered a loaf of dark rye, Greek yogurt with blueberries, a huge bag of Fritos, and a few other groceries to breach the $25 minimum. Then I got back into the Word document I’d been struggling with. Got an email confirming the order, and another a little while later telling me that Marvin was en route. I had left the browser window open so I could see his progress on the map. When he got close to my subdivision: a text message. Marvin pulled up in his car, struggled with the USB cord on his phone, and then retrieved my order from his trunk. We shook hands, commented favorably on today’s brief Mojave rain, and as Marvin pulled away, I got another text message confirming delivery. And then I went back in the house and made my grilled cheese sandwich.
So what does it take to develop, test, and roll out a market-dominating shopping and delivery service built on so many enabling technologies in just 111 days? Well, aside from a very clear vision of the market opportunity, it takes agile methods at unprecedented scale and an architecture that lets the consumer and the business interact seamlessly, cheaply, and reliably.
Two Pizza Teams
CEO Jeff Bezos has a firm rule—never have more people in a meeting than you could feed with two pizzas. That metric has grown into a key part of the Amazon culture, with small customer segment teams rapidly designing and developing products in 10 to 15-day cycles. This allows them to advance on a broad front, failing and learning quickly and building on the experience in the next cycle. CTO Werner Vogels says that failure is at the core of their elasticity and agility. Teams can choose their own methods. Former Amazon developers have noted the use of scrum, XP, Crystal, and many other hybrid development methodologies. Most development is done in Java on Linux, but since the systems communicate with each other via REST calls, teams use whatever tools they prefer. Management cares about results, not methods.
Selling Your Own Dog Food
As Amazon started expanding and working on new ideas, they found that many of their software development teams were spending up to 70% of their time on technology infrastructure—web-scale databases, storage, queuing services, and so on. So they developed Amazon Web Services (AWS) and became one of its biggest customers. As AWS has evolved, their own developers have become masters of the APIs and web services that enable them to spin up experiments quickly, retool as they learn, and lather, rinse, repeat. No capital expenditure, no budget approval process. And it’s now an incredibly valuable profit center for them, as well.
Decentralized Operations and a Modular Mindset
The architectural ideology at Amazon is based on decentralized operations—they have over 200 fulfillment centers in the US alone—and modularization. While the fulfillment centers make extensive use of robotics and conveyor belts, it was easy for the Prime Now team to implement an order fulfillment process using humans and small carts. They have a massive amount of data from past orders that lets them locate the most ordered items near “the front” and an inventory system that lets their stock be distributed anywhere in the warehouse, without a permanent physical storage plan. Stuff just goes in a cubby where it fits, and the picker scoops it up in a route determined on the fly, based on orders currently being worked. Resupply is distributed around the warehouse based on past experience and current available space. All they had to do was slightly adapt the existing warehouse management solution.
User Experience, from Customer to Driver
Amazon developed a customer-facing mobile app for Prime Now, ready on Day 1. They also developed a driver app that communicates with the fulfillment system, accessing the phone’s GPS and serving up a “Delivered” acknowledgement to the CRM system. The pickers at the warehouse follow instructions from the fulfillment system, sealing bags and boxes with order labels. Drivers are directed to a single point to pick up orders destined for a specific neighborhood, sequenced for most efficient travel based on current traffic and construction projects. All of those algorithms, CRM and inventory databases, navigation, traffic management, and a hundred other sources and sinks for data are assembled from modular components, using APIs and web services. And coming soon: delivery by drone, in under 30 minutes.
Agility isn’t something that software developers can learn in a two-day course. It requires a culture that embraces experimentation, a large and growing enabling architecture, and a modular mindset that partitions the implementation in a way that lets components be reused in new ways without a lot of refactoring. It also requires a management model that doesn’t protect cash cows and rewards successful disruption, but doesn’t penalize failures so long as actionable lessons are learned. Anything less is just wanna-agile.
For more brilliant insights, check out Dave’s blog: The Practicing IT Project Manager
Are you involved in a data conversion project? Then check out Dave’s indispensable book: The Data Conversion Cycle