Tanks, WWII, and Software Engineering

I’m now entering week three of fully remote work due to the pandemic. By osmosis, my son has reawakened my childhood love for tanks. This time though, I decided to do some more historical research and came across some really interesting stories and lessons from WWII.

Suppose I were to present two different strategies that were employed in the design and production of tanks in WWII:

In one strategy, the war planner made sure to meticulously collect battle statistics, use the most updated data to continually improve the design of their tanks and to give their troops an edge, they made sure to use the best industrial designers, manufacturing practices, and parts and materials.

In the other strategy, tank design was heavily copied from older designs, only minor incremental improvements were allowed, and construction quality was always marred by old manufacturing technology and subpar materials.

Which strategy do you think was better?

Of course, this is a trick question. Let’s see why.

The first strategy was how the Third Reich approached its tank designs. German tank models were designated . The word comes from the German word for tank, .

The German word for “tank”

The & were the bulk of the armored divisions at the beginning of the war in Poland and France. While the had a fearsome reputation, it turns out that the tanks themselves were to the French tanks at the time. Instead, it was tactical innovation () that ensured early success.

Soon the mainstay of the German tank corp transitioned to & , but even those became outclassed by the and of the Allies. Later in the war, (nicknamed “Panther”) and (nicknamed “Tiger”) were designed to defeat those two adversaries. The Tiger especially struck fear into the hearts of its enemies. In the movie starring Brad Pitt, a single Tiger tank nearly takes out Pitt’s entire tank platoon. There is also a less well known Russian film called White Tiger in which a Tiger tank takes out waves after waves of tanks.

Hitler was especially obsessed with heavier armor and bigger guns. Just before the end of the war, Germany was working on (“Maus”) and nicknamed “Ratte”). The Maus was a heavy tank four times heavier than the next biggest allied tank. Only one was ever finished. The Ratte was a 1000 ton monster with the main guns taken from battleships. It was designed but never actually constructed due to material shortages at the end of the war.

Ratte and Maus (farmhouse for scale)

The second strategy was the Soviet approach to the T-34, generally considered the most influential tank of the war. The T-34 design borrowed heavily from the much older American M1928, bought as “farm tractors” during times when there were arm sales restrictions. The sloped front armor and the Christy suspension were inherited from the M1928. The T-34 also had a diesel engine, which allowed the T-34 to carry extra fuel on the outside of the tank because it was less flammable. This was a painful lesson learned at the cost of many lives during the Battles of Khalkhin Gol against the Japanese army.

T-34

The Soviets knew that the T-34 had many flaws, they knew that armor quality was not as good, especially around the joints. But they were brutally focused on quantity that the only improvements allowed were ones that reduced costs, simplified parts, or shortened manufacturing time. At the height of the war, T-34’s were even rolling out from the factory unpainted and thrown directly to the front.

Quantity has a quality all of its own

Spoiler alert: Hitler lost.

The Soviet strategy worked so well that they were able to make 80,000 T-34’s over the course of WWII. It didn’t matter that half of those ended up being destroyed, the Soviets were able to absolutely overwhelm the German army with this massive torrent of steel. By contrast, constant redesigns kept German tank production costs high and manufacturing time too long. By the end of the war, fewer than 2,000 Tiger tanks were made, and only about 25,000 tanks were made.

Similar economic scale, vastly different production rate

If you unnecessarily refactor code, Hitler wins

So we’ve arrived at a somewhat surprising conclusion. The German strategy, while sounding great, was actually an utter but totally avoidable disaster. The same thing applies to software engineering. Refactors and redesigns always feel good, but it’s not always a good use of our time and energy. And even when it is necessary, it has to focused on specific pain-points. For example, it’s very reasonable to argue that we should simplify code and add documentation so the code is easier to learn for new members of the team. However, there’s no way you can do that for the entire codebase. Instead, you have to focus on code that encapsulates the core business logic and also code where new hires are likely to touch first.

It’s not a gun measuring contest

By obsessing over heavy armor and bigger guns, the Nazis were able to create some fantastical metal beasts. But because they were so expensive they couldn’t be made at a scale that mattered. Even if they had been made, they would have been too heavy to have any meaningful combat range. By contrast, the T-34 was amazingly well-balanced and rugged. So while it wasn’t shiny or flashy, it was the tank that won the war, not the Tiger and definitely not the Maus or the Ratte.

Twitter: @changhiskhan

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