I love technology, and enjoy scaling a system. You build the right architecture to allow scale out – using more computers to provide more processing power.
Talking about a company, we have to scale it as well. It is an art of scaling a human organization. To make a scalable system work for the people is much more complicated than in technical world.
When an organization grows, easy things started to become difficult. In technical world, insert a record into a database, serving a page view – any newly-graduate computer major can do the job. Inserting 1 million record per minute into the database, or serving 1 billion page views per day? Not easy. For the organization, it is the same. Communication within 1 0 person team is very different from 100 person team.
Communication needs to pay basically no attention when the team is small. Everyone knows everything – just like the husband/wife relationship. There will be no meetings, or PPTs – everyone just know.
It adds a lot of overhead as the organization gets bigger. This process seems to be irreversible, but need to be as slow as possible.
The key is communication. I just learnt it is exactly like the seat table. I paid great attention about who seats near whom, but not as closely as to the organization. We change seats every quarter to allow optimization communication. The same should happen to organization design.
To organize the team around functions or business are the key questions. We need to switch and alternate it every quarter to get the least of evils from any organization design.
The communication needs to be well planned, and enforced. We need to do it all the time, and that is the over head. We need to add a communication bus for the company to allow messages to flow within the company.