'Gall's Law' comes from John Gall's 1975 book Systemantics: How Systems Work and Especially How They Fail. Gall's work has inspired a number of authors in systems thinking but the book actually focuses more on what we can learn from system engineering failures and how not to design systems. The law (although it was never expressly stated as a law in the book) is essentially an argument in favour of underspecification (so it has a natural affinity to agile thinking) and argues (quote taken from the Wikipedia entry):
'...that large complex systems are extremely difficult to design correctly despite best intentions and so care must be taken to design smaller less complex systems and to do so with incremental functionality based on close and continual touch with user needs and measures of effectiveness.'
Such a simple concept and yet quite profound. Think of all the complex systems that we try and design and launch (from large IT projects to Government policy implementation) that fail from the outset. As Josh Kaufman points out, complex systems are full of interdependencies and variations that are almost impossible to anticipate but that actually play a significant role in making the system function.
'Complex systems designed from scratch will never work in the real world, since they haven’t been subject to environmental selection forces while being designed...If you want to build a system that works, the best approach is to build a simple system that meets the environment’s current selection tests first, then improve it over time.'
Far better surely, to start with something simpler, easier, smaller and evolve from there. This is why, in scenarios characterised by complexity (such as those within which I would argue most businesses now operate), prototypical, emergent, iterative approaches work best. It's also why, when thinking about organisational change it's best to think big, start small, scale fast.