Software industry does not have economies of scale

Prashant Gupta
Product Management Distilled
4 min readSep 21, 2014

September 21, 2014.

The most efficient workforce in software industry is one software engineer. As soon as this number changes to 2 or more people economies of dis-scale kicks in. What i mean by that is if one engineer working independently is able to produce y amount of work in a given period of time, 2 engineers working together will necessarily produce <2y amount of work over the same period of time. For argument sake we are assuming that all engineers are same and produce equally efficient software code working independently.

This is true because writing code which works together creates the need to coordinate when two or more people are involved and that creates the extra cost that creeps into the project. People have to talk, they have to explain and come to a common understanding of what needs to be coded, they have to divide the work and then have to integrate their individual pieces and make it work together. There is fundamentally a set of extra steps introduced which take away time and energy and makes the overall work less efficient.

As software products get shipped out by small or large companies, one can often see the organizational boundaries where one part of the software does not work well with the other part. Equally common issue is the performance of the software products. Performance suffer as the same person has not coded all the layers of the architecture and their are assumptions being made about each others work. The larger and more sophisticated the product is, more these seams are apparent and more the performance (defined a time it takes to complete one user interaction with the software being used) problems become dominant.

In general, the efficiency curve is somewhat like this, where team size represents the number of people deployed and efficiency is in terms of output for every additional person added to the team.

I am arguing that the efficiency curve is not asymptotic as the team size increases. In fact, it reaches a point where every additional person added produces negative output. This is the space where the much talked about “mythical man month” concept kicks in. What this means that when projects require more effort, the managers would throw in more resources but what they may find that this does not lead to reduction in time of delivery or increased net output.

Does this mean that we should not have teams at all and all projects should be just one person? Not really. There are 2 aspects to consider.

  1. A large software project can be sub divided into logical, relatively independent pieces of work. Each divided piece can thus be treated as an independent efficiency curve. But there reaches a point where the division itself is not inefficient or the person responsible for this breaking down is not competent enough to break it well enough. Also, division does mean inefficiency only that the drop in efficiency is small enough if the breaking down is done properly.
  2. If project timeline factor is critical, then even with less efficiency an addition to the team does reduces the time to complete the project. In other words, even if an additional person will only produce 50% value (of what that person can do completely independently) there is value in adding that person to the team as it reduces the overall time to complete the project.

The first aspect essentially determines the shape of the curve. Depending on the ability to break a project down into efficient sub parts, the drop in efficiency can be slowed down. If time of completing the project is critical, break down the project efficiently to reduce effect of dis-economies of scale but know that one cannot escape this drop in efficiency.

And when the project managers are trying to create teams to get work done early, what is important is the time and efficiency equation. What the real output of the team is the area under the efficiency curve:

Software engineers thus needs to be fully aware that the (x+1)th person will produce efficiency which is a fraction of the first person. And as stated in the previous curve there will be a point where the area will become negatively effected (mythical man months).

It can be argued that this is true for any service oriented industry but i am not sure if that is true. Some service industries have a nature where each piece of work is independent by nature (example a call center) and others where alternate opinions are critical for the overall success (example investing or lawyers).

This is a simple concept and maybe even obvious to lot of people but almost always forgotten in case of project resource allocations. But a thoughtful application of the concept can make teams more efficient and products & services that users experience better.

--

--

Prashant Gupta
Product Management Distilled

Analyzer & Modeler of thoughts. Interested in philosophy, history, technology, economics and travel. Background of management consulting, software and investing