Non-Linear Economics

Companies tend to calculate their profit by simple models, but higher order effects should not be neglected.

In the recent years I've spend a lot of time analyzing decisions of some companies - big, medium and small businesses. I reached the conclusion that most of their decisions are either based on irrational thoughts or simple models. There are only a few companies that make rational decisions that follow sophisticated models, which guarantee success in the long-run.

The most classic model is forming a linear equation. A company has a set of fixed expenses during a timespan. These expenses include paying employees, taxes, rent and other properties. The product(s) that are sold have a certain production cost / price per product. If we now compute f(x) = ax - b with the fixed expenses as b and the gain per product a, defined as retail price minus production costs, we can compute the income after a number of sold units x. The same can be written as a function of time, if we replace x with a function of time t integrating from 0 to t to reach the total number of sold units.

The simple model is highly effective. It lets us compute important quantities. What is the minimum price we need to charge for our product? When is break-even reached? How long can we sustain with our current financial resources? However, the linear model is a false friend in the long-run. It drives decisions that are only short-sighted and it will lead to a competitive disadvantage. After all, it only includes the 0-th (constant incoming / outgoing) and 1-st (product related incoming / outgoing) order. Higher terms such as employee efficiency and product relevance are not considered.

Especially the topic of employee efficiency is something that I think is important. In my opinion a software engineer can do the same amount of work in 4 instead of 5 days. Also only having 3 days seems sufficient to me. But we need to spent the other days wisely. When Google gave its employees one day (20%) of the week for their own projects, most people reacted surprised. It seemed that Google was very kind and foolish to pay their employees for pursuing their own projects. The reality is different. Google is selfish and smart. Why? By giving people one day to experiment with new or different technologies these people won't leave the learning circle and they will be prepared for future projects. Also they'll appreciate it and be more loyal to their company. Finally some of these projects may actually end up as part of a real product.

Should every (software) company introduce such a day? I don't know. I don't think so, but most companies would certainly profit from such a program in the long run. Nevertheless, what I find even more important is a single day reserved only for writing unit tests, refactoring and documentation. This is a non-feature day. It will also bring additional key benefits such as everyone having more insight in the code, cleaner (more extensible and robust) code, less regression and therefore in the long run less bugs, easier maintenance and faster changes.

Of course a product is only defined by its features, but we should not forget that the ability to include those features quickly and still have a very reliable and solid product, will be the key differentiator between different products on the market.

But all of this are non-linear effects that are usually not included in any models that are considered when making decisions such as in favor or against a refactoring or technology day. Otherwise companies would see that employee effectiveness, measured in features / week, is weaker only in the beginning of a "reduced-week" and much stronger in the end.