Software development used to be a long, drawn-out process, with teams of workers spending years if not decades to develop the next generation of the next big thing. Enterprise tech teams were structured around these longer timelines and threw up their own gates to gather requirements, contract out the development, deploy the release, and validate solutions before handing them over to the service teams that would manage the solution for the rest of its lifetime.
Origins of Agile Development
This model worked for decades, but with the dot-com boom, a new generation of technologists and futurists began building solutions that could be stood up and torn down in a matter of weeks or months instead of years or decades using the new “world wide web” as a platform for communication, applications, and software development.
Coming out of the chaos of the dot-com boom was the dot-com bust that left the famed Northern California Silicon Valley in shambles. As the dust settled, entrepreneurs worked to redefine a set of software development best practices that would support a more standardized approach to short-cycle iterative development.
The resulting process became known as “agile development” and came to the Valley with its own set of “agile ninjas” that wielded their own sets of tools, standards, and language to bring stability and a new norm to the valley.
At its core, it is this iterative software development methodology that has shaped the culture at Tesla. Tesla does not follow the long development cycles that have been the standard in the automotive industry for decades. Tesla does not wait to roll out improvements. It has instead applied the tenets of agile development to its automotive design and manufacturing processes, and in the process, it has revolutionized the industry.
It is Tesla’s relentless pursuit of not just the best electric vehicle, but the pursuit of the best vehicle, period, that has defined its trajectory more than any other. Tesla, unsurprisingly, operates like a software company. It iterates and rolls out improvements as they come. It takes in feedback regularly, as if it thrives on new ideas, solving problems, continuous improvement and iteration.
Use of agile principles like “scrums” — or regular meetings designed to put structure around ingesting and vetting improvements — have helped Tesla to perfect its vehicles and bring innovations to market that would have taken more traditional automotive companies years if not decades to get into the hands of customers.
The downside of rapid development in the automotive industry
The downside of this model — and current software development — is that, while development may happen at breakneck speeds, the vetting of the software in the millions of applicable scenarios still takes many weeks, months, and years. The result is what we have seen in Tesla’s production vehicles — a total system that is effectively in a permanent beta state. The software is more than functional most of the time, but is expected to have bugs that rear their angry heads.
Tesla’s phone key issues, panel gaps in early vehicles, road noise, seat improvements over time in most of its vehicles, issues with early Model X falcon-wing doors, Tesla Model S door handle issues, etc., etc., ad nauseam are all the symptoms of this strategy. Fortunately, the vehicles themselves are so much better than everything else on the road — and Tesla continues to deliver innovative, low-cost service solutions to fix its vehicles — that owners still rate Tesla at the top of the pack. Actually, most Tesla owners wouldn’t be able to have a Tesla vehicle and so much innovation today if it wasn’t for this approach, and they generally understand that and appreciate being able to have the cars (potentially with bugs) rather than having to wait for a similar thoroughly vetted vehicle to come out years from now.
We do not spend a lot of time covering the smaller issues with Tesla’s vehicles because, at this point, they’re more or less expected. It’s not a big deal and they are typically resolved rather quickly. The issues do not typically continue in perpetuity, but rather, Tesla tends to stabilize each platform over time. We’ve seen this play out with the Model S and the Model X, and we are now right in the middle of this evolution with the Model 3.
Extreme manufacturing — agile development for factories
Applying software development methodologies to automotive manufacturing looks great and maybe even obvious in retrospect, but it has been nothing short of a miracle to actually build a company and a business around them, which is what Tesla has done so successfully over the last 15 years.
At its core, agile development takes in new requirements as “user stories.” These don’t attempt to describe how functionality works, but instead take on the challenge of describing how the functionality will be used and what the actual customer needs. These requirements flow into the project management process not only at the beginning, though — user stories are vetted on an ongoing basis as part of a weekly scrum.
The scrum framework defines a standard set of tools that are used in weekly development cycles, called “sprints.” As the name implies, a sprint is a very short timeframe wherein the development team attempts to build a specific set of functionality based on a single user story.
Quick 15 minute meetings at the start of each day help the team to check status, ask for help, clarity, etc., before getting back to the actual work of developing the functionality. Overall progress delivering new functionality — as measured by the number of user stories that have been completed — is measured as the “velocity” of the team.
Joe Justice is leading the charge to adopt the agile development methodology to factories and is putting structure behind what can otherwise become a haphazard application of software development principles to manufacturing. He started doing this with his company Wikispeed and has since joined Scrum, Inc as a consultant, where he promotes the adoption of the agile development framework in manufacturing.
One key learning he and his team at Wikispeed came away with is that “Morale is multiplier for velocity across the team.” That’s logical and goes along with the disproportionate value of positive feedback versus negative feedback, but rarely seems to make the leap into software development, let alone manufacturing.
The Alien Dreadnought
Joe called out that Tesla has taken the principles of agile development and built its factory to mimic the founding principles of the methodology. A system comprised of robots and flexible, adaptable factories is essentially a naked programming language that can be adapted and dynamically tweaked over time as the incoming user requirements change.
For example, if Tesla’s engineers design a door that’s better — lighter, safer, and cheaper — Tesla can reprogram its factory to build the new door and to integrate it into the existing factory process. The factory has not been hardcoded to only build a single car. Rather, it can shift and adjust as new requirements — or user stories — are added and designed for on the front end.
With Model 3, Tesla aspired to build the ultimate factory production line, which idealistically could be almost entirely automated. It was also hoped that it could deliver greater flexibility for the future and the highest safety in the industry by removing people from dangerous assembly tasks. Furthermore, the target was to achieve significantly lower cost by increasing production speed to levels humans are incapable of delivering. As the production lines for Model 3 were vetted out, Tesla had to refine and adjust some of these areas, giving some complex tasks back to humans that were previously slated for automation.
That work wrapped up at the beginning of 2018 and that’s when Tesla started ramping up Model 3 production in earnest for the first time. But the iteration and improvement isn’t over — it never ends. We’re now seeing that Tesla continues to refine and put a polish on its production lines as the bugs in the system are worked out.
Tesla is already looking to the next big step into the future, with CEO Elon Musk noting that Tesla is working to “finish production design & build it, while avoiding dumb mistakes made with Model 3 production system.” Those who have watched Tesla for any amount of time know that, while Tesla will continue to improve, it will also continue to push the envelope — and that comes with its own set of new, unforeseen challenges.
It gives me hope for the future. It gives many of us hope for the future. The future is electric, but it will come faster with Tesla’s rapid iteration and agile development.
Take a look at Joe’s keynote from REConf 2017 here, where he unpacks the iterative process he and his team used to translate the agile development framework for manufacturing plants.
Source: Clean Technica, 2018
Tuesday Sep 4, 2018