Tuesday, December 15, 2015

Design, Agile, and Gall's Law

The topic of design has been crossing my path lately. I see a lot of overlap with Agile principles. One of the principles I came across is called Gall’s law. It states that "all complex systems that work evolved from simpler systems that worked.” It was introduced by John Gall in his book Systematics in 1975.

This is very similar to the Agile principle of simplicity. It can be seen in the practice of Test Driven Development. You write your test case and only code until it passes the test and then you stop. No gold-plating here. 

This is also similar to the principle of MVP (minimal viable product)  that originated in the Lean Startup. The idea is to make a product as simple as possible, get it into your users hands, and see how it works. You make your improvements to the product based on the feedback from your users. 

Seems pretty logical, but my experience is that it isn’t followed as often as it should be. I see plenty of examples where scope creep takes over, and rather than getting the MVP out, features keep getting added - needed or not - while the users are left waiting. So next time there's a request for just one more feature, remind people of Gall's Law.