Conway’s Law

Image created with Midjourney. Image prompt:
Image created with Midjourney. Image prompt: 2d illustration of A visual metaphor of two cities: one fragmented with isolated buildings and disjointed roads, representing disconnected units of an organization; the other a well-planned city with skyscrapers and interconnected roads, symbolizing an organization built around verticals

In the realm of software development, there is a principle known as Conway's Law which suggests that "the technical boundaries of a system will reflect the structure of the organisation"1. This fascinating correlation between the architecture of an organization and its resulting software products can provide valuable insights for both businesses and developers. Let's explore this concept through three examples.

Examples

The Siloed Organization

In a company where departments operate independently without much communication or collaboration, the produced software often mirrors this siloed structure. For instance, an organization with separate departments for user interface, backend development, and data management might produce a software product where these components are distinctly separate and lack seamless integration. This might result in challenges with communication between different parts of the software and overall user experience.

The Cross-Functional Organization

On the other hand, a company that promotes cross-functional collaboration and has teams built around specific features or services often produces software with a more integrated structure. An e-commerce company, for example, might have teams that combine UI designers, backend developers, and data analysts all working together on a specific feature like the shopping cart. This can lead to a more cohesive software product where the shopping cart feature has a seamless user interface, efficient backend processing, and effective data management.

The Hierarchical Organization

In a traditional hierarchical organization where decision-making flows top-down, the resulting software may reflect this hierarchy. The higher levels may have more control over the core functionalities of the software, while the peripheral functionalities might be dictated by the lower levels. This could potentially result in software that is rigid and less adaptable to user needs.

Understanding Conway's Law can be particularly beneficial for organizations looking to improve their software products. By reshaping the organizational structure towards a more collaborative and cross-functional model, companies can foster the development of software that is more integrated and user-centric.

However, it's also crucial to remember that while Conway's Law provides a compelling perspective, it's not a hard-and-fast rule. Other factors like technology choices, project management strategies, and market demands can also significantly influence the structure and quality of software products. Nonetheless, Conway's Law serves as a valuable reminder that in the world of software development, the human element – the way we organize ourselves and collaborate – plays an equally important role as the technological one.

See also

Sources

Conway's Law on Wikipedia