4 ms·
It turns out that nothing in life can be tackled by one 4-8 person team. We are all heavily dependent on each other to build the complex things we have. Our sol
by randomdata 2y ago
It turns out that nothing in life can be tackled by one 4-8 person team. We are all heavily dependent on each other to build the complex things we have. Our solution to make that work at the macroeconomic scale is to employ a service model.
The solution to which you speak is microservices. No, not some misguided multi-process IPC technology model that seems to have tried to usurp the name, I mean real microservices. The people model. Where each 4-8 person team continues to act if they are an independent businesses, even if they legally work for a single organization.
It's not particularly difficult. The macro economy, which operates at an unfathomably larger scale, shows how easy it is. But, indeed, it can be uncomfortable for some people to not feel like they have full control over an organization.
- tsimionescu 2y agoThe macro economy is dominated by gigantic conglomerates that try to own and integrate a significant amount of their entire supply chains - think General Electric, Mitsubishi, Samsung. Small to Medium Enterprises have a few niches where they work (restaurants and other service industries being the largest by far), but they play a relatively small role and are not normally part of any supply chain, they only really work at the very end of the chain. Similarly, building a whole product out of pure microservices with teams that barely coordinate with each other beyond maintaining their APIs doesn't really work. There is very much a place for such microservices for certain well understood problems (authentication being probably the clearest), but for most domain specific work you need far more coordination than that to truly evolve a complex product. For example, you can't build a computer game in this model. A modern 3D engine requires far more than 4-8 people, and there is no clean separation between pieces to afford this. And even if there were, there is no One True Way to build one: the teams designing the 3D engine need to communicate with the teams building the game engine and the game designers themselves and the artists to achieve a cohesive whole. A 100-person project just can't (always) be modeled as 15 4-8-person projects.
- randomdata 2y ago> the teams designing the 3D engine need to communicate with the teams building the game engine and the game designers themselves and the artists to achieve a cohesive whole. Sure, just as they need to communicate to the farmer what food needs to be grown in order to ensure that the right food shows up on their dinner table. These are solved problems, though. We already know how to do incredibly complex things at scale.
- tsimionescu 2y agoNo, it is nowhere near like that. Food is a particularly bad example, as the food industry is extremely wasteful overall, with a huge percentage of all food produced being thrown away at all levels of the production chain all the way to the final consumer. In addition, most companies that package food in various ways, including major restaurants, either own or contract farming business for specific quantities of specific crops ahead of time, spending large amounts of time to negotiate contracts to this effect, and sometimes working even closer when a particular result is required. If you find yourself craving Mongolian food one night, you may often simply find that none is available, at any price you are willing to pay, unless you worked with someone to make some months in advance. And conversely if you open a Mongolian restaurant, you may just not find any customers for it and waste significant money on it. (substitute Mongolian with any other food that is not commonly eaten or even thought about in your area)
- randomdata 2y agoIt's told to be not like that and a bad example, but then we learn how it is exactly like that and how it is great example... Intriguing.
- tsimionescu 2y agoThe point is that you do need explicit integration and cooperation. And you often have way more than 4-8 people working on one of these contracts to even define the terms. And again, most real companies own most of their supply chain, they don't depend on a hundred different suppliers at every level like you seem to be suggesting. And they do this because it's FAR more efficient to have a large monolithic team build something together than to rely on dozens of small teams competing in a market to build the same thing.
- kubanczyk 2y agoBut if "each 4-8 person team continues to act if they are an independent businesses", then (by definition) these small teams act on the market. Why would they prefer the closed market over the global free market? On the global free market they are not constrained to 8 employees, they can have 9 or more.
- randomdata 2y agoEvery business needs millions, if not billions, of people working for them. The complexity cannot be handled otherwise. But back to the topic at hand, there is an impossible level of communication overhead to burden if you try to keep millions (or even tens) of people on a single team. Like the original comment pointed out, we've never actually figured out how to do that. It might be a good idea in theory, but the problems remain unsolved. The workaround is easy, though: Just don't do it. Do what everyone else does instead.
- kubanczyk 2y agoYes, I've tried to point out a different problem with your scheme. Outside of hypothesis, we do have a global market - I think it's disrupting your idea because you cannot prevent an independent team to enter it.