Featured Post

This is the Kodak Moment for the Auto Industry

Plug-In Drivers Not Missin' the Piston Electric vehicles are here to stay. Their market acceptance is currently small but growing...

Monday, May 1, 2023

What Makes Tesla Different - The Agile Manifesto


There are a lot of things that make Tesla different from legacy auto makers: direct sales, marketing methods, design minimalism... In this post we'll look at product development methods. 

Agile is a software development process that started in 2001. The method allows new software to be released every two to four weeks. This method was widely adopted by the software engineering community because it delivered results. Prior to Agile, most software was written in a Waterfall method.

With Waterfall, as the name implies, requirements come from the top down. The elaborate requirements and specifications were argued over and documented before software development even started. Then when the documentation was complete, software development began. Coding to the Byzantine documentation can take months. During this time the external world changes: new technologies emerge, new customers are courted, new competitors' products are released... this all means that new requirements emerge. This would effectively reset much of the Waterfall project. So the requirements would then have to be rewritten, or (more realistically) re-argued. Now, however, there are competing agendas. Should the development team address the new needs meaning the schedule will be delayed, or should they complete the original vision knowing that it would be lacking areas that are currently relevant to customers. This dilemma is why most Waterfall projects of any notable size are significantly late and over budget.

The Agile method turns Waterfall on its head. The team creates a minimum viable product and then performs short development cycles called sprints to add and improve features. In each sprint, the direction can change to keep up with the changing world and at the end of each sprint there's a viable product to release to customers.

Agile Scrum Process

Tesla took this software development method and applied it to all of their products. And then they customized and improved the Agile process for their own needs. They came up with a method called "mobbing" that allows the right size team to work on a project and allows the work on it to pass from shift to shift (hot passing) to allow 24-hour progress on tasks. 

The car model year system used by legacy automakers is a Waterfall process. In the upfront phase, designs are proposed, debated, documented, and tested. Requirements, tooling, fixtures, processes, parts, design, interfaces, and logistics are planned are all done before production starts. Experimentation, learnings, and improvements can only be done upfront. Once production starts, the design and production lines are frozen; changes are minimized. 

However, unlike a waterfall software project (that often overruns the planned schedule), car model years cannot be late. So to meet this schedule requirement, changes are kept to a minimum, even during this upfront phase. This limits the legacy automakers' ability to make significant changes to their vehicles.

The Agile process (or more correctly the Tesla-modified Agile process) does not wait for model years, so Tesla does not use model years. When something can be implemented that makes the car better, it is implemented, tested, and deployed. Rather than waiting for the next model year, improvements are slip-streamed into the vehicle line dynamically. A car built in the 10th week of the year can be radically different from one made in the first week of the year. Tracking each individual car (how it was built, the parts that went into it...) would be a daunting task for a 1950s legacy car company. However, this is an easy task for a technology company.

Given this radical pace of change, how can vehicle quality be maintained? Unit tests. Before any part or software changes are deployed, a test is written and incorporated into the car. This test knows how to determine the parts present in the car and then check their functionality. This means as a car is built, it can test itself. It can make sure all the needed components are present, acting as expected, and that the various components can talk to each other as expected.

Built-in self-tests allow for rapid feedback. Rapid feedback allows for experimentation. Experimentation enables innovation. This is the key to Tesla's rapid pace of innovation.


These built-in automated self-tests allow for rapid feedback. Rapid feedback allows for experimentation. Experimentation enables innovation. This is the key to Tesla's Agile Dev Ops method. 

The pace of innovation allows problems to be solved, costs to be reduced, and the product to be improved. Tesla has a motto that cost reductions cannot reduce the ownership experience. Changes need to both reduce cost and improve the experience. Focusing on both prevents either one from running away. It's easy to reduce costs if you don't consider the user experience. Similarly, it's easy to improve the user experience if you ignore cost.

Having a rapid pace of change inherent in the system has other advantages too. When the supply chain problems hit in 2021, Tesla was able to adapt. Rapid innovation combined with their vertical integration, allowed them to change to new control chips when the ones they had been using were not available. They had to change their software, but when the built-in self-tests passed, they then have a high level of confidence in the new hardware and software components.

Tesla is fundamentally different from other automakers.

Disclosure: I am long Tesla

No comments:

Post a Comment