đ¤Break Silos, Build Trust.
đˇââď¸ Software Architecture Series â Part 8.
đConwayâs Law: âAny organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organizationâs communication structure.â
đAn observation made in later 1960s, by Melvin Conway, still stands tall among all the observations made about how organizations design architecture of software systems. In simpler words, it can be understood as: âorganizations will design systems that copy their communication structureâ. The core idea is that the way members of an organization communicate and collaborate will shape the design and character of the systems and projects it produces. Although termed as a law, it is more of an observation, which became so evident over time that it almost transitioned itself to be called a âlawâ, and for the rest of the article, we shall refer it thus.
đThe essence of Conwayâs law lies in identifying the critical role of communication amongst teams and team members within an organization. While designing and developing a software, communication between teams is an overlooked aspect. However, as the development process evolves, the communication behavior does creep into our system and by the time system evolves, it starts reflecting. Organizations end up creating functional silos in their business process to complete the workflow. Silos are nothing but different departments focused on maximizing their goal and performance. Consider this example:
đ°For an order-cash flow, an e-commerce organization has following business process:
âDifferent teams have their specific goals and targets, however, at times, these goals become conflicting to each other. If an end to end matrix for order processing is unavailable, teams try to maximize their respective goals without considering impact on other team/departmentâs goals. Reluctance to share data between teams is one such behavior often observed in majority of organizations and can be considered one of the side effects of silos.
đ¤źAs a result, what transpires at the end is not exactly a process designed to meet customer needs but a disoriented set of operations taking organization to nowhere. Conwayâs law tries to underline these communication gap which lead to an ineffective output as organizations loose sight over the larger picture and end up creating a process which contributes no value to the end goal.
đĄHow to overcome Silos?
đ¤Conwayâs Law emphasizes to break down silos within organization and encourage to come up with an efficient communication channel within the organization, where knowledge is shared across teams and ideas are promoted openly. Core idea is to align the organizationâs structure with the goals of system development, facilitating necessary changes that can transform the organization into a more effective and efficient one. In the recent past, several case studies of esteemed organizations have surfaced, which underline the importance of effective communication within a well aligned organization, leading to better outcomes.
đ¤However, this should not be viewed as a one stop solution across organizations. Each business goal demands its specific process and teams within organizations should be aligned and committed towards the goal, rather than just copying the team structure or communication template just because it worked for other party. Understanding how information flows within a department and across departments is a key step in reorganizing team alignments inspired by Conwayâs law. For example, sharing a common data repository might not be a viable option, as each team/department may want an independent view of the data and not all of the data should be accessible to all of the members/teams within organization. However, the flow of data across teams should be seamless, so that they are able to access the required information needed to perform their job.
âIt is very important to note that Conwayâs Law does not promote tight coupling of process within departments, or even flow of data. It focusses on effective communication, which can be easily achieved using Event driven approach/ Pub-Sub/Message Queues in a distributed architecture, where the architecture is divided based on technical capabilities or domain functionality (a topic for discussion on another day).
đAt the end of the day, necessary operational metrics must be gathered for end to end process (goal), which should help provide necessary insight about overall impact on customer satisfaction. These insights should then regularly be discussed across teams to iteratively improve the process as per the feedback (I know you are thinking of Agile!).
#softwarearchitect #requirement #architecture #softwaredevelopment #design #business