Lean Software Development and Soviet Rocket Design

As a software developer I am used to our approach to development process from being quite different from how engineers work, which we are told work according to a waterfall method where one develops a product in stages, and build according to strict specifications. You advance to the next stage only when the previous has been fully completed.

Thus I found it very interesting to watch this old Channel 4 Equinox Documentary about the Russian NK-33 and RD-180 rock engines. You might have read one of my previous stories on the Russian RD-180 rocket engine, so you know I have a certain fascination for old Soviet space industry and programs.

This documentary however came some interesting insights into the Soviet development process which reminded me of how software development is done.

Like with lean software development or Scrum, one would not settle on final specification before shipping a product to the customers. The Russians would defer a lot of engineering decision by building lots of essentially prototypes or early versions which would get fully tested in flight. The feedback from this would then be factored in when making a new improved version. This is much like lean software development, where you strive to deliver a minimum working product to the customer, have them test it and give you feedback.

Thus in both cases one follows a pattern of lots of iterations, testing and feedback before settling on a final version.

There was a lot of flexibility in their whole development process. An American engineer pointed out e.g. how in the US, when a factory got a design, it was final and the factory has to do everything to match the specifications. However in the Soviet Union, the factory would essentially take over the design process when receiving a specification from a Soviet Design Bureau. They would make necessary adjustments.

As I study the Soviet System, it doesn’t seem nearly as rigid as I first imagined. E.g. a competitive element existed. When the Kremlin wanted say a new rocket fighter jet, helicopter or whatever, multiple Soviet Design Bureaus would then compete with meeting the requirements. They would submit solutions which would then be evaluated by some kind of specialist organization. Once a design won, it would be sent to factories around the country the country for production, and they would take over adjustment of details.

The iterative, hands on approach of the Soviets is explained as a reason why the Soviet Union got an early lead on the US in the space race.

Americans on the other hand took a much more careful approach:

Von Braun took a conservative approach to his rockets. The German way was to build sturdier rockets than were strictly necessary and then test every piece until the kinks were worked out. This philosophy did take its toll on NASA’s early efforts.

This reminds me of a kind of software unit testing approach to development. However this caused dispute between Wernher von Braun and George Mueller on how to develop the Saturn V.

Rather than testing components separately, the standard approach in NASA’s early days, he wanted von Braun to test the full rocket all in one go.

George Mueller in other words seems to have wanted a more software integration test approach, which seemed more similar to the Soviet approach.

However I would speculate that a combination of the Von Braun approach and Muller’s approach was what made them succeed.

The Soviet approach was extremely aggressive in its iterative approach. For the N1 moon rocket they had planned 14 unmanned launches to iron out all problems. But keeping on blowing up such huge rockets, must have been excessively expensive. At least the US had actually tested their F-1 rocket engines before putting them on the Saturn V rocket. The Russian NK-15 engines used on the N1, couldn’t even be tested before they were fitted on it.

It would have been interesting to contrast the SpaceX approach to rocket development with all of this. They seem to test each part thoroughly, so they do kind of have a unit test approach. But they also seem to iterate a lot, which from my understanding is not something commonly done in the rest of American space industry.

As a software developer it is interesting to learn about these approaches, as Elon Musk took much of the software development mindset from Silicon Valley with him into the rocket industry.

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store