Today I want to discuss Gall’s Law, which was named after an author and paediatrician called John Gall. In 1975 he wrote a book called General Systematics, an essay on how systems work and especially how they fail. It’s from his insights in this book that Gall’s law was coined.
Gall’s law states
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.
We see the effects of this all the time in software development. How many times has a product team decided that the system they’re currently working on is rubbish and the best thing to do is start again.
Then, when we start again, it’s never as good as it was before, it takes longer than expected, and there is challenge after challenge.
The whole purpose of the lean software development methodology was, on reflection, all about mitigating the effects of Gall’s law.
Start simple, get a system that works to solve the main use case, test and learn and then evolve it to match your customer’s needs. We know that iteration is the best way [00:01:00] to ensure that you create a software product, create a system that works for your business and your customers.
It’s worth us all keeping that in mind, especially within the context of accelerating digital delivery. You can’t deliver well and deliver fast if the premise that you are building on is wrong.
So if the premise is that we will build this new thing because it will be better than the old thing and Gall’s law is correct, then we know that’s already a non-starter.
So next time you’re frustrated with the system you’re working on. Remember Gall’s law about how successful systems evolve.
Create small features and layer on top of them to create good, reliable software that meets the business and customer needs.