Evolutionary Architecture and Conway’s Law


Way back … in 1968, Melvin Edward Conway, an early computer scientist, computer programmer, and hacker postulated that…

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

Or more concisely…

Any piece of software reflects the organizational structure that produced it.

For example, if you have four groups working on a compiler, you’ll get a 4-pass compiler!

This became known as the Conway’s Law.

Mel Conway

Implication of Conway’s Law on Evolving Architecture

Let us assume that there is some truth in Conway’s Law. Then what implication does have on large agile projects?

In agile project you do not do a “Big Up Front” architecture. You do it in smaller increments. You take the architectural decisions at the last responsible moment. So, the architecture of your software evolves parallel to the stories getting delivered.

Small agile project can have a flat structure, a single team and no hierarchy.

For larger projects you will necessarily have to create multiple teams. You will need to partition the problem and assign a slice of the problem to a team. There are different ways to partition the problem like – feature wise, component wise, technology wise, tier wise etc. But there is no escaping the fact that you need to partition your problem.

If we accept Conway’s Law then your architecture would reflect how you have partitioned the problem to assign the work to the team.

So, here is the question that you need to answer – in which order should you do the following:

  1. Split the problem
  2. Form the teams
  3. Arrive at the high level architecture

How about…

…doing enough “Up Front Design” to be able to arrive at a high level architecture so that the problem can be split in such a in way that each slice can be assigned to a team?

Research study that support Conway’s Law

Harvard Business School: Exploring the Duality between Product and Organizational Architectures: A Test of the “Mirroring” Hypothesis

…products tend to “mirror” the architectures of the organizations in which they are developed … we find strong evidence to support the mirroring hypothesis…

Microsoft Research: The Influence of Organizational Structure On Software Quality: An Empirical Case Study

Well … this research is strictly not a validation of Conway’s Law but it remonstrates link between organization structure and software quality!

More about Conway and his law:

About these ads
Comments
2 Responses to “Evolutionary Architecture and Conway’s Law”
  1. Gene Hughson says:

    This illustrates the weakness of advocating a purely Darwinian approach to architectural evolution – we don’t have several million years to get it right. Foregoing all architectural design is no more feasible than attempting to design it all up front.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,003 other followers

%d bloggers like this: