Principles of Speed

I came across an article on McDonald’s plans to make their drive-thrus faster:

McDonald’s has already made improvement in its drive-thrus. Over the past few years, it’s sped up the drive-thru line by about 30 seconds, thanks in part to a simpler menu.

But it’s not the fastest among other quick-service chains, according to a recent study by the market research group SeeLevel HX.

It took about 349 seconds to get through a McDonald’s drive-thru on average this year, according to the group’s 2020 drive-thru report, which based its findings on about 1,500 visits to 10 restaurant chains. At Burger King, it took about 344 seconds, and even less at KFC and Taco Bell.

What difference could 5 seconds make?  There is the obvious objective math.  For every 12 customers, a minute is lost.  For every 70 customers, another could have been served.  But the subjective sensation of expediency and efficiency by the customer is perhaps even more important.  For all of these reasons, every company now is adapting and investing in ways to increase expediency as customers change how they consume and the channels through which they choose to be served.

Rather than more cashiers, retailers may need more stock handlers to prepare pick-up orders, for example.

For McDonald’s part, they are relying on some creative ideas:

Last year, McDonald’s acquired two AI companies: One, Dynamic Yield, has allowed the company to roll out digital menu boards that can recommend orders based on weather, how busy the kitchen is and other factors.

And some tried and true mechanisms:

Apprente, will help McDonald’s use automation, rather than employees, to take orders in the drive-thru.

For McDonald’s and for any software team seeking to build speed, it’s important to keep three principles in mind.

Principle 1: Control

The two concepts of control and speed would seem to be at odds with each other.  Yet the faster one wishes to go, the greater the emphasis must be placed on control and safety.

These are the carbon-ceramic disc brakes on a 1,479 HP Bugatti Chiron capable of reaching speeds of 261 MPH.  On a vehicle capable of such speeds, systems such as stability control and braking become even more important, even more expensive, and even more complex as risk increases with speed.  Compare the brakes of the Chiron and a golf cart and there is no comparison because the golf cart is not designed for speed.

Speed without control is reckless whether you are hurtling down a strip of asphalt or trying to ship enterprise software; the two must co-exist and increment in lockstep.  Being a race car driver isn’t about how fast you can drive, but about how fast you can drive while maintaining control of the vehicle.

Even for McDonald’s, what good is moving orders faster if it increases the rate of incorrect orders?

Principle 2: Automation

A key to achieving the duality of speed and control is automation.

For McDonald’s, the adoption of automation in the order taking process serves two purposes: first is to hopefully decrease the rate of errors during the process (though I think we are right to be a bit skeptical of this).  Second is to make more humans available to perform the dynamic processes which the automation is not quite ready to take on yet.

In the Chiron, that automation comes in the form of the stability control which transparently ensures the aerodynamic and physical forces exerted on the vehicle do not affect the driver’s intended trajectory.  The driver feels in control, despite a computer analyzing every input and providing minute adjustments to sub-systems to maintain control.

In software engineering, this automation comes in many forms.

  1. Unit testing which automatically tests and verifies behavior at the level of code
  2. Automated build-and-deploy pipelines which remove the need to manually build and install software into environments
  3. End-to-end test automation which automatically tests and verifies behavior at the functional level

This last bullet is one that I have been focusing on in 2020 as I have attempted to find ways to help my team build speed while maintaining control:

  1. Automated UI Testing with Taiko
  2. Automated UI Testing with LeapWork

This experience has been invaluable as the tooling around E2E test automation has evolved so dramatically from the days of Selenium and WebDriver.  While my career has not been focused on the QA discipline, it has been a worthy investment of time in 2020 to get a better understanding of the state of E2E web test automation as these tools are enablers of speed.

In particular, Gauge + Taiko, are in my mind transformative in how teams can leverage existing skills and layer new approaches to automation to increment speed without sacrificing control.  Gauge empowers existing non-technical QA in a way that Selenium and WebDriver never could.

Automation does not remove the need for human testers; as is the case with McDonald’s, it shifts the human workers to provide more value-added work that machines are not well suited for.  In the case of software, this shifts testers away from routine, procedural, regression testing and focuses on the creative exploratory testing that drives the next cycle of automation.  For developers, this also means granting more time to develop features and create value rather than manual testing and fixing lagging defects surfaced during long feedback cycles.

Principle 3: Data

To measure the effect of the speed and that the proper controls are in place, it is ultimately necessary to capture data that reflects the output of the changes to feed back into the process design.  While it is obvious to measure and track the time delta in processing each order, it is equally important to track the rate of incorrect orders as this feeds back into the design of the systems of control.  It feeds back into the automation to surface the value unlocked by the invested time in developing the automation but also helps shed light on areas where the automation is not delivering value.

2020 has accelerated our need for speed by bringing shifts in every aspect of our lives.  Whether you’re an Amazon warehouse worker dealing with the tremendous increase in order volume or you are McDonald’s trying to optimize the drive-thru experience as consumers shift their patterns.  Nowhere has it been felt more acutely than in life sciences where global teams are racing to find vaccines and effective treatments for COVID; regulatory bodies are adapting processes and controls to ensure that the speed is controlled. Life sciences is an industry which has traditionally been quite measured in how it advances in terms of technology.  The shift in clinical research to focus on speed then must also be matched by a shift in the pace of how the technology supports the research, development, trial, and approval process.

This shift in focus on speed is pervasive and I think the gains made during this period will never be undone.  The speed that McDonald’s gains, the processes created and altered by regulatory agencies and pharmas, how we in software engineering adapt our processes for speed as we are asked to deliver more, faster; these are lessons that will not be undone once the pandemic is over.

Teams and leaders that understand these principles can achieve speed while improving quality.

You may also like...