A long-standing approach to deal with complex product development is to divide the system into smaller parts
and assign responsibility for developing those parts to particular teams. Conventional wisdom suggests that by
doing so, we reduce the communication overhead in the development project by making the separate
development teams as independent as possible. This approach has been labeled in academic circles as
“Conway’s Law” or “the Mirroring Hypothesis”. Conway (1968) argued that “development organizations...
are constrained to produce designs which are copies of the communication structures of these organizations''.
Conway’s arguments were later further developed and refined by other researchers such as Parnas (1972),
Herbsleb and Grinter (1999), and Baldwin and Clark (2000). Furthermore, alignment between the technical
and organizational structures results in improvements in product development productivity and quality for
physical systems (Baldwin & Clark, 2000; Colfer & Baldwin, 2010). However, when it comes to developing
software systems, the evidence about the “mirror” in Conway’s law and its benefits to software projects
outcomes is less clear.This is the author's peer-reviewed final manuscript, as accepted by the publisher. The published article is copyrighted by IEEE Computer Society and can be found at: http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=52.Keywords: software architecture, evidence-based software engineering, software design, engineering management, organization