Published on

    Gall's Law: Unraveling the Secrets to Successful Programming Projects

    • avatar
      Nico Prananta

    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.

    In the dynamic world of software development, a hidden gem often goes unnoticed. It can make or break your project's success. It's called Gall's Law. This principle seems counterintuitive at first but holds profound wisdom. Gall's Law states that complex systems that work invariably evolve from simpler systems that worked. The key takeaway? If you want to build a system that works, start simple.

    As programmers, we often fall into the trap of overengineering. We dream big. We envision a system so comprehensive and feature-rich that it covers every conceivable need. But here's the catch: Complexity is the enemy of execution.

    Let's take a journey through the initial stages of a project. You're brimming with ideas, ready to code the next big thing. But hold on! Gall's Law whispers a word of caution: Start simple. This doesn't mean compromising your vision. It means structuring your project into manageable, functional units. Think of it like building a house. You don't start with the roof or the interior design; you start with a solid foundation.

    The beauty of starting simple is that it allows for evolution. Each component you add is like a block in a Jenga tower. If you add it carefully and thoughtfully, the tower grows taller and stronger. But if you rush and shove in blocks haphazardly, the whole structure risks collapsing.

    A great example to illustrate Gall's Law in action is the story of Instagram. The app was initially launched as Burbn. It was a check-in app that included gaming and photo-sharing features. The app was complex and cluttered. The founders, Kevin Systrom and Mike Krieger, quickly realized that this complexity was not their strength. They stripped down Burbn to its simplest, most unique feature: photo sharing. They focused on making this single feature as good as it could be. The result was Instagram. It's a simple, user-friendly app. The app solely focuses on photo sharing, filters, and social interaction.

    This journey from Burbn to Instagram is a classic example of starting with a complex idea, simplifying it to a workable model, and then evolving into a successful, complex system. It perfectly encapsulates the essence of Gall's Law in the world of software development.

    Embrace simplicity. Build a minimal viable product (MVP) that works flawlessly. Then, iterate and expand. This approach makes your project more manageable. It also makes it more adaptable to change.

    By the way, I'm making a book about Pull Requests Best Practices. Check it out!