Development Velocity & Quality

Domain knowledge is the most underrated key to high development velocity and quality.

Quote

"It's developer (mis)understanding that's released in production, not the experts' knowledge."

Alberto Brandolini

Without a proper understanding of the domain, it's impossible to implement a conceptual model that accurately reflects it. Effective collaboration with domain experts is essential to bridge this gap. Events play a central role in uncovering domain insights and fostering a shared language. Additionally, the immutability of events contributes significantly to scalability, particularly in event-driven architectures.

  • Quote

    "A complex system that works is invariably found to have evolved from a simple system that worked."

    John Gall

  • Tip

    Design flaws in the simple system tend to compound and lead to exponentially increasing complexity in the complex system.

  • Quote

    "Doing the wrong thing right is not nearly as good as doing the right thing wrong."

    Russel L. Ackoff

  • Tip

    Without a proper understanding of the domain, it's easy to prioritize technical correctness over solving the actual problem.

  • Quote

    "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

    Melvin E. Conway

  • Tip

    Conceptual models derived from the domain often lead to software structures that should mirror the communication structures within the organization.

  • Quote

    "Civilization advances by extending the number of important operations which we can perform without thinking of them."

    Alfred North Whitehead

  • Tip

    When we focus solely on implementing conceptual models from the domain and minimize concerns about technical details, we achieve the highest velocity in problem-solving.

    It’s like how modern engineers don’t need to worry about manually managing memory in high-level languages or how mathematicians use symbolic computation tools instead of solving everything by hand. Each layer of abstraction frees us to think bigger and move faster.