Understanding Elon Musk's Engineering Methods

In my life before EVANNEX, I was heavily involved in software engineering process design and implementation. One of my friends and colleagues during that time was Tom Gilb—a well-known author and consultant who specializes in evolutionary systems and software development processes. He is the creator of Planguage— a general-purpose, systems engineering planning language. Tom has a deep understanding of why some engineering processes succeed and others fail.  


Above: Elon Musk (Flickr: OnInnovation)

Over the past few years, Tom has become fascinated with Elon Musk’s engineering philosophy, summarized in the steps described at the Everyday Astronaut website (extracted below):

  1. Make the requirements less dumb. The requirements are definitely dumb; it does not matter who gave them to you. He notes that it’s particularly dangerous if an intelligent person gives you the requirements, as you may not question the requirements enough. “Everyone’s wrong. No matter who you are, everyone is wrong some of the time.” He further notes that “all designs are wrong, it’s just a matter of how wrong.”
  2. Try very hard to delete the part or process. If parts are not being added back into the design at least 10% of the time, not enough parts are being deleted. Musk noted that the bias tends to be very strongly toward “let’s add this part or process step in case we need it.” Additionally, each required part and process must come from a name, not a department, as a department cannot be asked why a requirement exists, but a person can.
  3. Simplify and optimize the design. This is step three as the most common error of a smart engineer is to optimize something that should not exist.
  4. Accelerate cycle time. Musk states “you’re moving too slowly, go faster! But don’t go faster until you’ve worked on the other three things first.”
  5. Automate. An important part of this is to remove in-process testing after the problems have been diagnosed; if a product is reaching the end of a production line with a high acceptance rate, there is no need for in-process testing.

Additionally, Musk believes everyone should be a “chief engineer.” Engineers need to understand the system at a high level to understand when they are making an “optimization” that affects a system negatively or fails to consider other system elements that may be more important. As an example, Musk [discussing SpaceX design challenges] noted that an order of magnitude more time has been spent reducing engine mass than reducing residual propellant, despite both being equally as important.

Tom Gilb worries that this formulation of Elon’s approach might lead to oversimplification and/or misunderstanding, so he has reformulated and expanded on it. He writes: 

Let me attempt a reformulation, hoping to increase clarity of Musk’s intent.

  1. DYNAMIC. CRITICAL REQUIREMENTS: State really-critical requirements only, and be prepared to learn quickly, about even-smarter requirements. Get rid of ‘dumb’ ones. 
  1. DYNAMIC DESIGN PRIORITIZATION: Resist keeping designs, that are not clearly justified and prioritized by means of cost-effectiveness, in terms of their impacts on our requirements.
  1. DYNAMIC DESIGN OPTIMIZATION: Keep continuous motivation to challenge existing designs, and to improve design cost-effectiveness, using new technology, using feedback from iterations, and using revised requirements.
  1. ACCELERATE: Speed up repetitive processes, by re-design, by paralleling, automation, feedback, and relaxing unnecessary requirements.
  1. AUTOMATE: Automate processes with high automation payoff, and avoid bad automation.

Tom expands on these comments and has more to say about Elon’s methods and system engineering in general.  For further information, visit: https://www.gilb.com/competitive-engineering.

===

Written by: EVANNEX Founder Roger Pressman

USD
  • US Dollar (USD)
  • Euro (EUR)
  • British Pound (GBP)
  • Canadian Dollar (CAD)
  • United Arab Emirates Dirham (AED)
  • Albanian Lek (ALL)
  • Afghan Afghani (AFN)
  • Armenian Dram (AMD)
  • Angolan Kwanza (AOA)
  • Argentine Peso (ARS)
  • Australian Dollar (AUD)
  • Aruban Florin (AWG)
  • Azerbaijani Manat (AZN)
  • Burundian Franc (BIF)
  • Barbadian Dollar (BBD)
  • Bangladeshi Taka (BDT)
  • Bahamian Dollar (BSD)
  • Bahraini Dinar (BHD)
  • Bermudan Dollar (BMD)
  • Belarusian Ruble (BYN)
  • Belize Dollar (BZD)
  • Bhutanese Ngultrum (BTN)
  • Bosnia-Herzegovina Convertible Mark (BAM)
  • Brazilian Real (BRL)
  • Bolivian Boliviano (BOB)
  • Botswanan Pula (BWP)
  • Brunei Dollar (BND)
  • Bulgarian Lev (BGN)
  • Congolese Franc (CDF)
  • Swiss Franc (CHF)
  • Chilean Peso (CLP)
  • Chinese Yuan (CNY)
  • Colombian Peso (COP)
  • Costa Rican Colon (CRC)
  • Czech Republic Koruna (CZK)
  • Djiboutian Franc (DJF)
  • Danish Krone (DKK)
  • Dominican Peso (DOP)
  • Algerian Dinar (DZD)
  • Egyptian Pound (EGP)
  • Ethiopian Birr (ETB)
  • Fijian Dollar (FJD)
  • Falkland Islands Pound (FKP)
  • Gibraltar Pound (GIP)
  • Ghanaian Cedi (GHS)
  • Gambian Dalasi (GMD)
  • Guinean Franc (GNF)
  • Guatemalan Quetzal (GTQ)
  • Georgian Lari (GEL)
  • Croatian Kuna (HRK)
  • Honduran Lempira (HNL)
  • Hong Kong Dollar (HKD)
  • Haitian Gourde (HTG)
  • Hungarian Forint (HUF)
  • Indonesian Rupiah (IDR)
  • Israeli New Shekel (ILS)
  • Icelandic Krona (ISK)
  • Indian Rupee (INR)
  • Iraqi Dinar (IQD)
  • Iranian Rial (IRR)
  • Jamaican Dollar (JMD)
  • Japanese Yen (JPY)
  • Jordanian Dinar (JOD)
  • Kenyan Shilling (KES)
  • Kyrgystani Som (KGS)
  • Cambodian Riel (KHR)
  • Comorian Franc (KMF)
  • South Korean Won (KRW)
  • Kuwaiti Dinar (KWD)
  • Cayman Islands Dollar (KYD)
  • Kazakhstani Tenge (KZT)
  • Lebanese Pound (LBP)
  • Sri Lankan Rupee (LKR)
  • Liberian Dollar (LRD)
  • Lesotho Loti (LSL)
  • Libyan Dinar (LYD)
  • Moroccan Dirham (MAD)
  • Moldovan Leu (MDL)
  • Malagasy Ariary (MGA)
  • Myanmar Kyat (MMK)
  • Macedonian Denar (MKD)
  • Macanese Pataca (MOP)
  • Mauritian Rupee (MUR)
  • Maldivian Rufiyaa (MVR)
  • Malawian Kwacha (MWK)
  • Mexican Peso (MXN)
  • Malaysian Ringgit (MYR)
  • Mozambican Metical (MZN)
  • Namibian Dollar (NAD)
  • Nepalese Rupee (NPR)
  • New Zealand Dollar (NZD)
  • Nicaraguan Cordoba (NIO)
  • Norwegian Krone (NOK)
  • Omani Rial (OMR)
  • Panamanian Balboa (PAB)
  • Pakistani Rupee (PKR)
  • Papua New Guinean Kina (PGK)
  • Peruvian Nuevo Sol (PEN)
  • Philippine Peso (PHP)
  • Polish Zloty (PLN)
  • Qatari Rial (QAR)
  • Romanian Leu (RON)
  • Russian Ruble (RUB)
  • Rwandan Franc (RWF)
  • Saudi Riyal (SAR)
  • Sao Tome and Principe Dobra (STD)
  • Serbian Dinar (RSD)
  • Seychellois Rupee (SCR)
  • Singapore Dollar (SGD)
  • Syrian Pound (SYP)
  • Swedish Krona (SEK)
  • New Taiwan Dollar (TWD)
  • Thai Baht (THB)
  • Tanzanian Shilling (TZS)
  • Trinidad and Tobago Dollar (TTD)
  • Tunisian Dinar (TND)
  • Turkish Lira (TRY)
  • Solomon Islands Dollar (SBD)
  • Sudanese Pound (SDG)
  • Sierra Leonean Leone (SLL)
  • Surinamese Dollar (SRD)
  • Swazi Lilangeni (SZL)
  • Tajikistani Somoni (TJS)
  • Tongan Paanga (TOP)
  • Turkmenistani Manat (TMT)
  • Ukrainian Hryvnia (UAH)
  • Ugandan Shilling (UGX)
  • Uruguayan Peso (UYU)
  • Uzbekistan Som (UZS)
  • Venezuelan Bolivar (VEF)
  • Vietnamese Dong (VND)
  • Vanuatu Vatu (VUV)
  • Samoan Tala (WST)
  • Central African CFA Franc (XAF)
  • CFP Franc (XPF)
  • Yemeni Rial (YER)
  • South African Rand (ZAR)