IT Scene and Changing Trends from an Indian Perspective

Udayan Banerjee

Subscribe to Udayan Banerjee: eMailAlertsEmail Alerts
Get Udayan Banerjee: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Cloud Computing, Virtualization Magazine, SOA & WOA Magazine, Java Developer Magazine, Microsoft Developer, CIO/CTO Update

Microsoft Developer: Blog Feed Post

Evolutionary Architecture and Conway’s Law

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

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:

Read the original blog entry...

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting
Google