We tell you what the essence of the law is, how it manifests itself and what happens when this pattern is not taken into account in the process of designing and developing IT systems.
Photo - Spencer - UnsplashIn the book "Myself MBA. 100% self-education, written by Josh Kaufman, Gall's law is
given in the following wording:
')
“Any working complex system develops on the basis of a working simple system. Complex systems created from scratch will never work in the real world, because during the development process they were not influenced by the selection factors inherent in the environment. ”
This means that a systematic approach should be applied to the development of any project - moving from simple to complex. In other words, you need to start with the creation of simple systems and gradually move in the direction of their complexity, expanding the functionality and capabilities.
A simple system is usually understood as a system consisting of a small number of elements and not having a hierarchy. A complex system, on the contrary, has a branched structure and a large number of interrelated components.
A minute of history
The author of the law, John Gall, was a pediatrician by profession, but in his free time he was engaged in research in the field of system theory. In 1977, he published the book
Systematization: How Systems Work and How They Crash . In it, he said that to control any system, it is necessary to understand how environmental factors affect its functionality. It is in this book
that the Gall law was formulated .
The law gained its notoriety due to its mention in 1981 in the book “
Structured Terms of Reference ” written by system developer Ken Orr. His work has gained wide popularity, and it
is still referred to by the authors of modern literature on system analysis.
Some time after the publication of the book by Ken Orr, Grady Booch “armed” with the rule of Gall when he created the
UML . The concept “from simple to complex” is also traced in this language: separate classes, types and interfaces are used to build an abstract model of the system.
Photo - Isaac Smith - UnsplashAlso, the law is reflected in flexible approaches to software development. In particular, the rule applies to extreme programming (
XP ). One of the main concepts of this methodology is
simplicity of design . It says that a new product should not be designed well in advance and completely. Planning should be carried out iteratively, taking into account the constantly changing requirements (customer and market).
When to follow the law of Galla
The most prominent example to illustrate the Galla law is the
World Wide Web . It originated as a local project CERN - the organization developed a tool for linking documents through hypertext links. But over time, the network has successfully grown to the global scale - its capabilities have expanded, the structure has become more complicated and has “overgrown” with new protocols (for example, HTTPS, which was the development of HTTP).
Starting development with
MVP (minimum viable product) allows you to quickly test the idea and, if necessary, change the functionality. For example, the first version of the Uber service
contained only two simple functions: calling the driver and paying for a trip by credit card. With their help, the team tested their concept, attracted the user base and continued to develop the product. Today, these basic functions have become more complex: the opportunity has arisen to share the bill between several people, track drivers on the map and make auto payments.
Gall's Law helps to make the UI clearer for users. For example, the first version of the Dropbox application had a very simple interface — it
was an ordinary file folder. According to the developers, this feature allowed attracting a large number of new users - in a few days, the list of applications for beta testing of Dropbox increased by 70 thousand. Additional functions and dialog boxes - such as co-editing files - began to appear later.
What happens when this pattern is not taken into account
As an example of a project, during the creation of which it was worthwhile for developers to know about the Gall law and take it into account, the
CORBA technology standard is usually given. Its specification was initially voluminous and contained a large number of instructions. Due to the excessive complexity, the development of the standard has been going on for a long time, and many of its capabilities have not been implemented in practice. As a result, CORBA is not widespread.
An example of a failed implementation of a software product is the Digital Media Initiative (DMI), a 2008 BBC project. His goal was to create a large-scale platform with in-house tools for video editing and content storage. The basis of DMI immediately laid a large number of specifications, which in practice did not work out. Development lasted for five years, but was never completed. First, the project was abandoned by the performer - Siemens - and then by the BBC itself. Total DMI spent 100 million pounds.
An example of an unsuccessful interface implementation is
Google Wave . He was supposed to combine the functionality of online forums, social networks, instant 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 the features of the interface for a long time. Difficulties arose even with the search line service - to work with it, you had to know the special tags. The project was developed from 2009 to 2010 - the system did not meet the expectations of developers and users, and the project collapsed.
Reading by topic:
We at
ITGLOBAL.COM provide private and hybrid cloud and offer services aimed at developing the IT infrastructure of customers. We hope that this material seemed useful to you. What you can read about us, and what we write about ourselves in the corporate blog: