The Golden Circle of Software development

Farouk Abichou
2 min readJul 18, 2023

--

Inspired by the book Clean Mobile Architecture by “Petros Efthymiou”

The Golden Circle of Software Development” is a concept adapted from Simon Sinek’s original model, which explores how great leaders and organizations inspire action. Applied to the domain of software development, this concept emphasizes fundamental principles that drive successful software projects, focusing on effectiveness, efficiency, and architectural patterns.

1 Effectiveness and Efficiency (Why): At the core of the Golden Circle lies the pursuit of effectiveness and efficiency in software development. The “Why” here is the driving motivation to create software that not only solves specific problems but also does so in the most efficient and optimal manner. It involves asking questions such as:

  • Why is this software development project necessary and how will it benefit users, stakeholders, or the organization?
  • Why certain strategies will be employed?
  • Why Would the software address the given points?

2 Low Coupling, High Cohesion, and Separation of Concerns (How): The “How” layer of the Golden Circle emphasizes the principles of low coupling, high cohesion, and separation of concerns. These are crucial software design concepts that contribute to maintainable, flexible, and scalable codebases. Questions arising at this level include:

  • How will the software be structured to minimize dependencies between components (low coupling) and promote better maintainability?
  • How will the software’s components be organized to focus on specific functionalities (high cohesion)?
  • How will concerns be isolated and decoupled to ensure better code readability, reusability, and testability?

3 MVVM, MVI, Hexagonal Architecture, and Clean Architecture (What): The outer layer of the Golden Circle represents the tangible software development paradigms and architectural patterns. Here, we encounter concepts like MVVM (Model-View-ViewModel), MVI (Model-View-Intent), Hexagonal Architecture, and Clean Architecture. These patterns provide guidelines for organizing the software code and its interaction with various layers and components. Questions related to the “What” include:

  • What architectural pattern will be used to separate the UI, business logic, and data layers effectively? (e.g., MVVM, MVI)
  • What is the best approach to design a modular and scalable system while adhering to Hexagonal Architecture principles?
  • What practices from Clean Architecture can be employed to maintain a clear separation of concerns and ensure testability, maintainability, and extensibility?
The Golden Circle Of Software Development.

By Combining:

  • The Golden Circle Of Software Development.
  • Our experience.
  • The specific context and details, like requirements, team size, and the systems we depend on.
  • Continuous inspection and adaptation.

..we produce a successful product not only in the short term but also in the long run.

The formula is simple:

Golden Circle Of Software Development + experience + context + inspect & adapt = Successful product!

--

--

Farouk Abichou

I’m a creative designer & developer based in Tunisia. Calm over chaos, experimental over predictable, learning over consuming. Faroukabichou.me