Soft Skills: Scaling out vs scaling up

Scaling UP vs Scaling OUT Scaling up refers to becoming a more effective person by increasing your personal efficiency. Scaling out refers to being a more effective person by engaging others to help solve your problems.    While scaling out is initially more difficult than scaling up, it has the potential for significantly more effectiveness than scaling up, so you should spend time investing in both types of scaling.

To understand the entomology of these terms lets look at the computer domain.  In the domain of computers there are two common ways to achieve more computing power or scale. Scaling up and scaling out.

Scaling up refers to getting more computing hardware for a single machine.  For example,  getting more RAM, faster CPUs or even bigger disks for the same computer.     On the other hand, scaling out refers to getting more computers. Instead of making your single computer faster you break up the problem so it can be processed by multiple computers and use the multiple computers to get the job done.

Scaling out requires changing the way the problem is solved, forcing co-ordination and making the problem more complex. As a result scaling up sounds like the way to scale.

At first, scaling up is  the easy way to scale. You throw some new hardware in the computer, and without much work you have more computing power.   As you upgrade your computer you start getting diminishing returns. Consecutive upgrades get more and more expensive, until eventually you can no longer upgrade your computer as it will be at its maximum power.  At this point you have no choice but to scale out.

Scaling out is hard. It requires you to think about how the problem can be broken up, how the computers can be coordinated and  how to keep the computers synchronized.  However, once you've made your problem solvable through scale-out solutions you can often add lots of computers. By scaling out, you can have significantly more computing power then you could ever have via a scale up solution.

As with computers and computing power, people often require more effectiveness to solve their problems. They have two ways to solve their problems, either they scale up, by becoming more efficient, or they scale out by engaging others to help solve their problems.

Humans scaling up reach diminishing returns - an easy to understand limit is the hours in a day.  Regardless of how efficient you are, you still only get 24 hours in a day.

As an alternative to scaling up, humans can scale out.  Scaling out requires figuring out how to break up problems so more than one person can work on them, and figuring out how the people will co-ordinate.

While scaling out is initially more difficult than scaling up, it has the potential for significantly more effectiveness than scaling up, so you should spend time investing in both types of scaling.

If you've read the 7 habits of highly effective people, you may notice that scaling up refers to the 3 habits of independence, while scaling out refers to 3 habits of interdependence.  I'll spend many more posts discussing these two types of scaling.

Comments

ReaderThinker said…
A nice way of thinking about these concepts, thanks for posting.

Popular posts from this blog

Finding CLR exceptions without visual studio

Why do I keep getting exception code e0434352?

Powershell script to enable windows to capture localhost traffic in wireshark