Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Architecture and Conway’s Law

DZone's Guide to

Architecture and Conway’s Law

· Integration Zone
Free Resource

Modernize your application architectures with microservices and APIs with best practices from this free virtual summit series. Brought to you in partnership with CA Technologies.

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

—Melvin Conway


Conway’s law
is a well-known fact of life in technology organizations. Eric S. Raymond noted that “[i]f you have four groups working on a compiler, you’ll get a 4-pass compiler”. It’s a simple fact that within groups you tend to see better communication, better trust and stronger alignment around goals. Across groups these tend to weaken.

Technologists naturally gravitate toward technical challenges rather than organizational or political ones. But architects, who are responsible for systems design in the large, need not only to be aware of organizational forces impacting their designs, but also to be advocates for organization structures that use Conway’s law to positive effect. It’s important to highlight misalignments between organizational and architectural structures because these make larger business goals difficult or impossible to achieve.

The Integration Zone is proudly sponsored by CA Technologies. Learn from expert microservices and API presentations at the Modernizing Application Architectures Virtual Summit Series.

Topics:

Published at DZone with permission of Willie Wheeler, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}