3 ms·
This is the conclusion that I am coming to as well. You need to pick the correct tool for the job. What's the correct tool? The simplest tool that can get the
by ItsMonkk 5y ago
This is the conclusion that I am coming to as well. You need to pick the correct tool for the job.
What's the correct tool? The simplest tool that can get the job done, the Principle of Least Power[0]. We often hear "Favor Composition over Inheritence", but never "These are the instances where Composition does not work, and Inheritence needs to be used instead."[1] Rich Hickey's "Simple Made Easy" shows many more examples, but this principle is very wide reaching. Prefer expressions over code blocks. Prefer for over while. Prefer map over for. Prefer data over functions. Prefer functions over macros. Prefer monoliths over micro-services. Prefer companies over governments. Prefer bikes over cars. Prefer smaller teams over bigger teams.
It's that last one that is intriguing me. You need to ensure that all of the skills that you need to be in the company are there, you can leave a bit of a buffer like Kelly-sizing, and then you want to optimize for that and cut as much as you can. Vertical integration is just another instance of tight coupling. The less people in the company, the less you need to communicate, the more it can get done. You want the skills Venn diagram of the team to look like the Olympic rings.
Social media runs into this same trap where communities grow far to large. The economies of scale within the space grows and even with the worsening of communication the entity gets stronger with each member according to a network effect. Both need some sort of dampening effect or forced splitting, but I don't know yet what that is.
[0]: https://blog.codinghorror.com/the-principle-of-least-power/ https://blog.codinghorror.com/the-principle-of-least-power/