How to think while designing the architecture of an application.
Lagom is a Swedish word that translates in spirit to “just about right.” I came across this word while listening to Tim Ferriss’s conversation with Daniel Ek(Spotify founder).
The design phase of an application is a stressful time. Developers have to grapple with unknowns and make assumptions. While designing applications, a recurring thought pattern is—what architectural details should I obsess over, and what can I relegate to the future?
During the design phase, the aim should be to get the architecture “just about right.” Chasing perfection is like trying to find the mythical elixir that turns metal into gold.
What does it mean to get the design “just about right”?
In decision making, there is the concept of reversible decisions and irreversible decisions. Jeff Bezos popularised this idea with his analogy of doors. Reversible decisions are like two-way doors—you can go through, and if things do not work out, you can come back. Irreversible decisions are like one-way doors—there is no coming back. Do not deliberate too much while going through a two-way door; one can accumulate experience and information, and if things do not work out, one can come back. Do spend quality time before deciding to go through a one-way door—it can be a dead-end if things do not work out.
Think of your application design in terms of one-way and two-way doors— there are things that you can change later once you have enough data, and then there are things that are tough to change.
Example of tough to change things—the programming language and the framework. Examples of things that can be changed later—design patterns, application server, and caches.
When designing an application, aim to get the architecture “just about right” using the rubric of reversible and irreversible decisions.
If you liked this post, you will enjoy my post on how to build scalable applications titled “The three pillars of scalability.“