Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

If you want a bit more material to look at bottlenecks then here we are:

Expand
titleWhat processes do you optimizeEfficiency is key! Why does SpaceX and Tesla do better than NASA and General Motors?

Love him or hate him, one thing that Elon Musk understands is bottlenecks. It’s a common pattern in all his businesses - the focus on efficiency.

Elon runs his companies on first principles style thinking. That’s why Tesla can build cars more efficiently than its competitors and why SpaceX can put payloads into space more efficiently than any other organization.

The way these businesses are able to out compete their competition is by making sure there is nothing in infra-structure they cannot optimize.

Elon runs his businesses in a manner that he has much tighter control over all the processes that are core.

Expand
titleWhat processes need to be optimized?

Private sector organizations tend to have an easier time being efficient and successful because they have much more clear goals

Most businesses have a handful of core processes which define the business.

For instance for iNTERFACEWARE these would be our core processes:

  • Quality assurance

  • Support

  • Acquiring new clients

  • Growing our relationships with existing clients so they become bigger clients

  • Recruitment

  • Helping staff grow with training.

  • Accounts receivable

That’s about it. It’s not to say that there are not other processes. But these are the core ones that to be successful as a business we need to focus on optimizing.

Some processes don’t need optimization. Payroll is pretty important process for us but it works well - we won’t make much impact by making 100 times more efficient.

Expand
This helps us understand why managers who do not communicate well with their team usually fail
titlePremature optimization is an example of solving the wrong bottleneck

The theory of constraints gives another lens to understand why premature optimization is a problem in software development.

If the piece you are optimizing isn’t a bottleneck in the overall process you are losing valuable time and creating unnecessary complexity which is probably going to hurt your ability to optimize what matters.

Expand
titleWhy is communication so important in resolving bottlenecks?

It’s easy as a manager to look at a system and find things which look like they are broken or could be improved.

The problem is if you are not tapping into the knowledge of the people in the system who are closest to it that you will identify , you may end up identifying things which you think are bottlenecks but actually aren’t the real bottlenecks.

This is when time and money get wasted fixing problems which don’t improve the system. You have to be humble as a manager and get people to trust you to have open conversations to find the real bottlenecks with your people.

This is so important.

Expand
titleCreate a common language - communication is one of the biggest bottlenecks

Simple clear language is a huge advantage for an organization. Avoid unnecessary specialized jargon. Create space to focus on the problems that matter.

Bottleneck ideas can be applied in every area of an organization. Smart is simple.

Expand
titleBottleneck theory works for human processes and software

Same underlying mathematics.

That’s what makes this idea so powerful since it gives a common language to talk about through your entire organization.

There are symmetries here.

Expand
titleHere's a more fully worked example of why fixing bottlenecks works

When you look at system with the goal of trying to improve the speed and output, the first thing you need to do is try to look for what the biggest ‘bottlenecks’ are. Think of the problem abstractly in terms of components of the process. Let’s say they are A, B and C. If we look at the break down of time spent on these things maybe it breaks down as:

  • A takes 5 minutes (5%)

  • B takes 1 minute (1%)

  • C takes 94 minutes (94%)

Total time is 100 minutes.

As a manager or a software developer if we focus our efforts on making A or B twice as fast we won’t see a measurable improvement - increasing the speed of B by a factor of ten times only will barely produce a 1% increase in speed.

But if we focus our efforts on making C change from 94 to 47 minutes then the figures will change to this:

  • A takes 5 minutes (9%)

  • B takes 1 minute (2%)

  • C takes 47 minutes (89%)

Total time is 53 minutes.

If we further optimize C to take it down to 5 minutes then the figures stack up like this:

  • A takes 5 minutes (45%)

  • B takes 1 minute (9%)

  • C takes 5 minutes (45%)

Total time is 11 minutes.

What is interesting about this process is that as you solve one bottleneck then usually another bottleneck emerges as significant. At this point optimizing A would now offer some opportunities to make measurable improvements in the process.

Premature optimization is an example of the wrong bottleneck
Expand
titleLong compile cycles - an example of a bottleneck for development

For me personally if I am managing developers I look for typical patterns which slow them down - i.e. if it takes them a long time to compile, run and test to reproduce an issue they are working on solving.

Expand
title

solving

The theory of constraints gives another lens to understand why premature optimization is a problem in software development.

If the piece you are optimizing isn’t a bottleneck in the overall process you are losing valuable time and creating unnecessary complexity which is probably going to hurt your ability to optimize what matters.

Expand
titleBut I don't want to eliminate my job!

If an organization that is really executing well and eliminating bottlenecks it’s true that individual roles often will go away.

But as old bottlenecks close, new bottlenecks emerge which creates the need for new roles and the benefits of the growth mean there is plenty of opportunity. Think about about it - if you can double your revenue multiple times - there is no shortage of money to pay people who can contribute.

A healthy organization is about creating people who are flexible, who can communicate using clear simple language, who can learn and are adaptable. This the mindset required for a high achieving organization.

...