Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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

 What processes do you optimize?

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.

 This helps us understand why managers who do not communicate well with their team usually fail

It’s easy as a manager 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 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.

 Create 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.

 Bottleneck 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.

 Here'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.

 Long compile cycles - 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.

 Premature 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.

 But 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.

  • No labels