← notes

The only unbreakable Law

Basically points to Conway's Law How committees invent? as a good candidate for a Software Architecture "law". He also mentions:

Communication within a team has (or at least should have) close-to-zero overhead. The only communication that has zero overhead is with oneself.

Anywhere there is a need for communication, there are constraints that need to be addressed:

If there is any divide within an organization, you are creating the need for communication channels with varying bandwidth.

This adds complexity/friction which determines the kind of system you are capable of designing as a team.

If there is a need for a communication channel between two teams (let's say infrastructure and development) there is inevitably going to be some sort of responsibility segregation given it removes the need for given communication channel, or at least reduces the amount of information that has to go through.

Any kind of organizational structure created (for the org chart or the code base) comes from the need of simplifying a problem that may be too complex to solve with the current capabilities available. Divide and conquer as some may say. But its adding accidental complexity to the actual problem.