NASA Space Launch System

Software development is a funny thing.

The legendary culture of tech companies, and software development specifically, is well documented in one of my favorite shows: HBO’s Silicon Valley.

In the show, a team of scrappy coders and entrepreneurs battle their way into market relevancy and profitability. They conquer product dilemmas, navigate VC funding misadventures, and could fill a textbook with their various personality quirks.

But Silicon Valley also gets one more thing right – the tools.

In several episodes, the characters make reference to specific software development tools and methodologies that are not only quite real, but quite inescapable. The software developers have whiteboards full of sticky-notes and mention Agile with equal parts definition and derision.

And while tech does have many special things about it, the fact that it has common tools and methodologies is not unique.

In reality, most sectors do indeed have some commonly used frameworks, most of which are extremely well documented and understood. But those frameworks are often industry specific.

The unique thing about tech is that it often borrows frameworks from an industry with which it has a very special relationship: manufacturing.

In this article, we’ll explore the history of efficiency tools devised and perfected in manufacturing, and how those same tools can optimize software development.

Quick note: I’ve worked in both manufacturing and tech, so now I’m writing about it.

Ok, let’s get started!


The Rising Sun

At the conclusion of World War II, Japan went to work.

Roads, bridges, community buildings…they had a lot of rebuilding to do to restore life and prosperity to the nation after a long and grueling war. But Japan also had their eyes on the future, so in addition to urgent infrastructure and civil projects, the nation invested heavily in the industrial and technology sectors.

Investing in advanced industries is a tactical choice for a country wishing to gain a competitive edge in a fast-moving global economy and one that has paid dividends in this particular instance.

The significant investment that Japan made in technology and advanced industry helped the country recover quickly and ultimately outgrow many other nations in the decades that followed. It’s a fabulous story of redemption that set the country on a path to becoming an economic powerhouse.

Deep inside this incredible arc of recovery, in the halls of its great companies and in the minds of it’s best engineers, Japan did in fact have a certain magic.

That magic was conceived by some very bright minds at Toyota and you are undoubtedly the recipient of its many benefits.

Introducing the aptly named Toyota Production System.

Side Note: Japanese mag-lev trains glide along effortlessly at high speeds, while those of us in the US are subjected to rides on subway lines originally built in 1897. Japan’s mastery over efficiency and high-quality work is abundantly clear in such examples. Ok, back to the story…


The Toyota Production System

The Toyota Production System (TPS) is a set of management principles and production techniques that reduce waste, eliminate unnecessary work, optimize inventory levels, and do a whole host of other things that make production systems more ‘lean’.

In short, TPS helps companies run better so they can build and deliver better products.

TPS identifies 8 types of waste that can occur in any system:

  1. Overproduction: Building too many products
  2. Waiting: Too much downtime
  3. Transportation: Shipping things long distances
  4. Over-processing: Doing unnecessary work
  5. Excess inventory: Keeping too much stock on-hand
  6. Movement: Wasting time and energy moving people or goods around
  7. Defects: Building things that can’t be used or sold
  8. Underutilization of resources: People or equipment going un-used

Along with addressing the 8 types of waste, TPS also promotes several management principles:

  1. Continuous Improvement
  2. Respect for people
  3. Build a good process
  4. Develop your people and partners
  5. Continuous learning

The founder of Toyota, Sakichi Toyoda, treated these principles like commandments. He required executives and managers to treat them as gospel and put them at the core of everything they did.

Toyota had launched a successful car company. And eventually, Toyota became one of the strongest global vehicle brands in the world.

It’s a great story. But what does this have to do with building software?

Well, a lot.

Principles and tools from TPS have permeated every industry, including software and tech.

Let’s dig in.


Takt-time: the only time you’ll hear the word ‘takt’

What do all business owners have in common? For them, being ‘lean’ is necessary for survival.

To achieve that, Toyota leveraged common time-based measures to understand exactly how efficiently their systems were operating.

One such measure is known as takt-time.

Takt-time is the cadence with which a system completes units of work.

T   = Takt time, e.g. [work time between two consecutive units]
Ta = Net time available to work, e.g. [work time per period]
D = Demand (customer demand), e.g. [units required per period]

It’s also worth digging into the etymological history here, given the unusual name. Again from Wikipedia:

“Takt time is a borrowing of the Japanese word takuto taimu (タクトタイム), which in turn was borrowed from the German word Taktzeit, meaning ‘cycle time’. The word was likely introduced to Japan by German engineers in the 1930s.https://en.wikipedia.org/wiki/Takt_time

Like in most areas of in life, many systems-realted concepts, ideas and words are spread across borders and the best ones proliferate.

One final note here: takt-time (aka cycle-time) is squarely within the discipline of ‘Operations Research’. OR is the study of systems and processes, and the basis for many of the ways our world operates.

If Operations Research sounds interesting to you, there is a world of academic programs (i.e. Industrial Engineering) and jobs that focus heavily on OR topics.


Takt-time in action

Let’s illustrate takt-time with a detailed example.

Imagine you’re the Plant Manager of a SpaceX factory that operates for 12 hours per day.

You’re basically Elon Musk. Congratulations on your money and popular Twitter account.

The events of an average day at your factory look like this:

8 AM: Factory starts production
12 PM: The first booster completed
4 PM: The second booster is completed
8 PM: The third booster is completed
8:15 PM: You drive home in your Tesla (or, the Tesla drives you home?)

What do you see?

A new rocket is produced every 4 hours, so 4 hours is the takt-time!

Now that you know the takt-time of your rockets, let’s move on to some other time-based measures.


Other time-based measures

As you may have guessed, there are other time-based metrics commonly used in production systems. Here are my top 3 (including takt-time):

Takt-Time: how often a product is completed

Lead Time: the time from when a customer places an order to when they receive the product

Processing Time: the total number of hours (or minutes, etc) that the product has work done to it (i.e. time spent cutting, welding, painting, etc)


Warning!

It’s easy to conflate these measures, so we must take extra care to use the correct term.

To illustrate…

Takt time: a rocket may be completed every few days

Lead-time: a customer order for a rocket may take months to fulfill

Processing Time: it may take thousands of labor hours to build a rocket

To add to the confusion, sometimes these values can actually be the same. 

For example, if you only build one rocket at a time, and all rockets take the same time to build from start-to-finish, the takt-time and lead time will be the same.

All 3 measures may even be the same in some cases. Yikes.

Tip: Try visualizing the production facility in your mind. Doing so can help you ‘see’ the dynamics of the system.


The bottom line about takt-time

By measuring a production system with respect to its periodicity, we learn how often a product can be shipped to a customer.

The software developers and tech product managers among you may see where this is going…


From cars to code

If you’re a software developer, or at all involved in tech products, you know all about ‘sprints’.

Sprints are short time-bound periods that act as containers for a volume of work.

Stated another way, a sprint defines how much work will likely be done in a period of time.

Here’s an example…

Sprint One
Weeks 1 & 2
Sprint Two
Weeks 3 & 4
Sprint Three
Weeks 5 & 6
3 Features Delivered2 Features Delivered4 Features Delivered

Here we have 3 sprints that on average deliver 3 new features each.

Thus, the takt-time for 3 new features is 2 weeks.

It feels obvious, but naming and understanding this concept helps us be better managers and build better systems.

If we expand our thinking here, we can really begin to see the many similarities between systems regardless of their physical tangibility.

Ok, we’ve spent enough time in the weeds for one article. Let’s wrap this thing up.


What we’ve learned

Understanding systems using time-based measures allows us to draw insights, plan effectively, and optimize our systems for maximum performance.

It’s amazing to see the adoption of tools from the Toyota Production System into the worlds of software and tech.

Building cars and rockets are the same as building software. They require top-notch engineering resources and an optimized way to put those resources to work.

So whether you’re a software engineer or a rocket scientist, go forth to the stars!


Comments are closed