20 May 2015
The Three Most Important ”Laws” for IT Architects
Thera are many good laws that help us be more effective in life, but there are three laws that I think are the most important for IT architects.
Those three are Gall’s law, Boyd’s law, Conway’s law and I’ll briefly tell you why I think so.
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
– John Gall (1975, p.71)
Gall’s law help us realize that we need to start with a small working system and build from that. It’s so easy due to e.g. ego (who does not want to be the person who delivers the perfect solution), expectations from management or chosen development methodology (that don’t allow us to be iterative) to try to design the perfect system from the beginning. If the system is complex, Gall tells us that it can’t be done!
Speed of iteration beats quality of iteration.
– Colonel John Boyd
Boyd’s law help us with the tactical decision of when build from that small working system it’s more effective to do many iterations (with potentially less quality) than to over-think the solution to ”get it right the first time”.
Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization’s communication structure.
– Melvin Conway
Finally Conway’s law help us realize that organizations are constrained to produce application designs which are copies of their communication structures and that we therefore should through the ‘Inverse Conway Maneuver’ evolve our organizational structure to promote our desired architecture.
If you think that there is something I missed or just want to get in touch, please contact me on Twitter @larsbarkman
Til next time,