Gall's Law: How to Build a Complex System
Create a new - create a simple. You may have a clear idea of what the environment should be, but it doesn't mean you understand every undertaking element. Some assumptions should be evaluated against reality.
Determining which components of the system are critical is an art that is simpler to master in specific projects than others. Getting the important stuff right in a minor release helps the team start on the correct path towards their goal. However, aiming for perfection in the first iteration is typically a waste of time and resources.
Gall’s law suggests that attempts to develop complex systems will likely fail. Complicated systems are rarely built at once but grow from simpler systems.
If you’re looking at a business that seems difficult, it’s always based on basic systems that have grown into core over time - complicated. But let’s figure it out step by step and start from the meaning of Gall’s law.
Gall’s law means that any project should be designed systematically, moving from simple to complex. In other words, you must start creating simple systems and gradually move towards their complexity, expanding the functionality and capabilities.
Sounds familiar, isn't it? Perhaps it reminded you of the basic principle of Agile software development. Businessmen and entrepreneurs can recognise this law as the MVP development approach. But Gall’s law was born and formulated long ago before these concepts. Who was John Gall, and how did he come up with the basic principle of Agile and the concept of MVP? Keep reading.
About John Gall
John Gall was a paediatrician and author from the United States. What do a doctor and his law have in common with web development? Let’s figure it out.
Gall's major research focuses on what causes systems to function and fail. He gathered and evaluated numerous cases of system failures and generalised difficulties and later formulated Gall’s law.
Gall is most known for his critique of systems theory in his book «Systematization: how systems work and how they fail» He explained that to manage any system: you need to understand how environmental factors affect its functionality.
What is Gall’s Law?
Gall's Law is a system's rule of thumb. As mentioned above, it states that attempts to build extremely complicated systems are likely to fail.
Gall claims that all complex systems are rarely built all at once but evolve from simpler systems throughout time, and complex systems created from scratch would never work.
Any business is a complex system within even more complex systems: markets, industries, and societies.
It turns out that to manage the system, you need to understand how environmental factors affect its functionality, as well as to have an understanding of the processes.
How to build a complex system? Laws to remember
Building a complex system involves leaving difficult moves for smart players, gathering a model, checking the calculation, testing, and making conclusions. Let’s look at some laws that may clear up and simplify your way to a complex system.
According to the Law of Conservation of Complexity, there is a certain level of complexity in a system that cannot be reduced. Some system complexity is 'accidental.' It results from a problem's weak structure, errors, or poor modeling.
According to The Broken Windows, the system's technical boundaries will reflect the organization's structure. This theory has been applied to software development, suggesting that poor quality code can lead to a perception that efforts to improve quality may be ignored or undervalued, thus leading to further poor quality code.
According to Goodhart's Law, measure-driven optimizations may result in the devaluation of the measurement results themselves. People tend to optimise locally by "gaming" the system to meet certain metrics rather than considering the overall consequence of their activities.
Before creating a system, assume these basic and useful laws, for example, to simplify the procedures you can, and leave that’s unnecessary or optimize with understanding the outcomes.
Why can it be so difficult to build a complex system from scratch?
The Gall law directly answers this question: Any complex system that works is developed based on a simple working system. The complex system contains variables and connections that need to be correctly organised before the system functions
Complex systems created from scratch will never work in the real world, as they were not affected by the selection factors inherent in the environment during the development process. Because of the unknown, you will never be able to predict all these connections and variables and constantly face different problems.
Example of the usage of Gall’s law
For example, the World Wide Web is a very complex system. However, it was originally defined as a simple way of exchanging information between educational institutions through hypertext links. It has made great strides in achieving these goals and has become more complex over time.
But over time, the network has successfully grown to the world scale - its capabilities have expanded, the structure has become more complicated, and it «finished» new protocols (for example, HTTPS, which has become the development of HTTP). But this is not the only successful example.
Starting development with Minimum Viable Product (MVP) is the embodiment of Galls' law and allows for testing the idea quickly and, if necessary, changing the functionality.
Read more about MVP development in our blog
For example, the first version of Uber only had two simple features: a call to the driver and a credit card. With their help, the team tested its concept, attracted a user base and continued to develop the product. Today, these essential functions have become more complicated: dividing the account between several people, tracking drivers on the map and making auto payments possible.
Gall’s law is often used not only by developers but also by designers. It helps to make the UI clearer to users. For example, the first version of Dropbox had a straightforward interface - it was a simple file folder.
According to the developers, this feature has attracted many new users - for a few days, the list of beta-requests Dropbox testing was expanded to 70,000. Additional features and dialogue boxes - such as collaborative file editing - began to appear later.
As you can see, Gall’s law helps successfully implement projects of different scales and areas. But is it so important to follow it?
What happens when companies ignore Gall’s law?
We look over examples of successful projects that used the Gall law. Now, let's look at those companies that ignored it and negatively impacted their product or service.
CORBA technology standard
As an example of a project where developers should have known about Gall’s law and considered it, CORBA provides these features: location transparency, platform portability for aerospace and military, banking and finance, telecommunications, and manufacturing. The COBRA faced many challenges due to its complexity; many of its features have not been implemented and developed
- Companies struggled to locate the professional CORBA programmers they needed.
The platform had a steep learning curve, was complicated, and was difficult to operate effectively, which resulted in long development periods and high error rates.
- The specification was extensive and complicated, and most had never been implemented.
Most employees and the wider organization accept the dysfunctional system as "good enough," and relatively few people are inspired to "raise the white flag" and push for what is required: starting again with a workable, primary system.
The Digital Media Initiative (DMI)
The Digital Media Initiative (DMI) is a 2008 BBC project. It aimed to create a large-scale platform with in-house video editing and content storage tools. The basis of DMI immediately laid many specifications, which could not be implemented in practice. The development lasted five years but was never completed. First, the contractor - Siemens - and then the BBC - refused the project. Only DMI spent 100 million pounds.
An example of a failed implementation of the interface is Google Wave. Developers intended to integrate the functionality of online forums, social networks, messengers, and version control systems. The creators of the platform assumed that it would become a universal way of communication. But in an attempt to replace «all at once,» the development team overloaded the application with different functions.
As a result, users had to deal with interface features for a long time. Even the search string of the service faced difficulties - to work with it, you needed to know special tags. The project failed because the system did not meet the users' expectations and developers.
You may have never heard about those companies or interfaces before. There is a simple reason why - they’ve never made it. Don’t follow their mistake - don’t try to do it all at once. Start small - start smart.
Why do startups have to begin with Gall’s Law?
Startups have a huge advantage over older, much larger companies. The startup can decide
- what the fundamental and primary systems will be and how they will operate,
- what new systems to build and how they will integrate and be added to the existing, larger meta-system.
and launch beta version:
- how the system conducts and whether it meets the main qualifying tests and, on this basis, justifies the strategic assumptions. Launching the product free of charge may be advisable, getting user feedback..
The "meta-system" is a set of ideas and actions that have been generalized and standardised across the entire organism.
Gall's Law is especially relevant for new businesses; they must think about the systems they utilize to have a fighting chance of transforming their world-changing ideas into genuine services and goods that people genuinely desire.
Most bigger corporations cannot compete with much smaller and agile startups because the expense of reverse engineering and dismantling a dysfunctional, complicated system is sometimes too enormous and damaging to be worthwhile!
The problems begin when anyone tries to create something very smart from scratch.
Gall's Law states that we should not attempt to run before we can walk. The idea of starting small and simple is appealing. First, you have to get the fundamentals of the user experience correct and then make an evolutionary roadmap to adapt to environmental forces and evolving user demands.
Suppose, at the stage of "conception", your imaginary business or product is a complex system with many parameters to control. In that case, the business will fail very quickly. Starting small and then iteratively adding functionality allows you to build working software gradually.
Keep in mind these words: think big, start small, and scale fast, and you will have what you desire. If you want to build a working system from scratch - contact us. Let's create together.
Questions about Gall’s Law
What is Gall’s law?
According to Gall's Law, all complex systems that work evolved from simpler systems that worked. If you want to construct a complicated system that works, Build a small working system first and gradually enhance it.
What is Gall's law in software engineering?
Gall's law states is a compelling rationale to begin software product development with a minimal viable product (MVP).
If you want to design a system that works, the ideal strategy is to start with a simple system that fulfills the present selection tests in the environment and then enhance it over time. You'll eventually create a sophisticated system that works.
What is John Gall’s theory of systems design?
John Gall's work has established the standard for system design and has been used to make a compelling case for underspecification. In short, the theory states:
- You cannot construct a complicated system from the start that means to keep our API surface as minimal as possible since if we are successful, it will ultimately increase.
- Complex systems are challenging to modify when simple systems in startups can progress more quickly.
Who is John Gall?
John Gall was a paediatrician and writer known for his book “General Systematics: Essays on How Systems Work and Especially How They Fail ...,”
The Gall Law states that all complicated working systems are developed from smaller ones.