I was involved in a meeting recently and it was really apparent the business systems they had designed were done so in reflection of how their business was organized and how they wanted to use the data, not necessarily how their business apps were intended to be used. One of the participants mentioned to me afterwards that it was a perfect example of Conway’s Law in action. I had never heard of Conway’s law before so I did some digging on the subject and found Conway has his own web site.
In the late 1960’s Mel Conway wrote a paper and submitted it to a couple publications. This is his basic premise:
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
Now that I have had some more run time with a few different industrial clients and built SCADA systems for them I can see this concept comes through quite often. I have two clients that have very similar backends (because I helped build them) but the front ends and data interfaces are quite different. The user interface was designed with a particular client organization in mind. We are also seeing these systems start to show some cracks and issues because different parts of the client organizations are gaining access and are using the systems differently and want different things from the system.
Now that I know a little bit more I think I will start investigating some of the design issues that arise from client specific organizational issues in new systems I build. I hope we can start to build better systems because of this new found awareness.