Conway’s Law teaches us that a complex organizational structure often results in complex systems. Assuming that organizational complexity is also a result of (or perhaps a catalyst to) the introduction of diverse technologies, it can be deduced that:

An organization that designs a system is bound to produce designs which mirror the myriad of technologies the organization utilizes“.

Think about it!

Print Friendly

4 Comments

  1. Pingback: Cornelius Fichtner

  2. Pingback: Shim Marom

  3. I think you are mostly right on this one, although I would modify it a bit.

    Rather than the “density of technologies” I would specify the “n of different technologies implemented” on a particular system.

    The reason for this is that the number of interfaces increases exponentially as you start to use different programming languages, etc. These interfaces are plug-ins or converters that add potential failure points and complexity. Also, maintenance becomes much more problematic once in production with every additional variety of language or technology you use.

    Imagine a system (A) written in 1 language versus one (B) with 5 different languages for various components. B has much more chance to be impacted by the need for an upgrade, with all the extra interfaces that need to be tested and potentially fixed each time. System A is being upgraded much less frequently, and those upgrades go smoother.

    To put a finer point on it, I don’t see how technologies outside of the specific system impact it; other than the liklihood that a diverse set of technologies in an organization is going to lead to a design with a diverse set of techologies. Perhaps that was your original point, Shim.

    -Josh

    Reply

    • Hey Josh,

      I might not have made my self clear. My extension to the Conway’s Law suggests that organizations with complex organizational structure will tend to invest in a large number of technologies that, once introduced, will need to justify their very existence by having themselves included in technical solutions, regardless of whether they are suitable for that technical solution or not. So it is not just about the number of technologies implemented in a particular system, it is about the number of technologies available for selection for inclusion in the architecture applied on a particular system.

      What do you think?

      Reply

  4. I think we’re on the same page Shim (we should try to disagree more to make this more lively! :-)

    The question I posed in my last paragraph on the previous comment is correct I think; we agree that a plethora of technologies available for implementation means more diversity within specific systems. For example “we hired that guy who is a ruby on rails whiz so we should use ruby on rails for this!”

    Reply

    • Spot on Josh. Too often technology is used because an initial investment in that technology has already been made and too many questions were to be asked had IT decided not to make use of that technology. Also, the IT teams using and maintaining that technology make damn sure that no architectural solution is signed-off without having their little pet included as well. And so on and so forth…and the big losers are…everybody!

      Reply

  5. Pingback: Don’t take complexity for granted | quantmleap

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

%d bloggers like this: