Babylon problem
by Oleg Sovetnik
When formal domain descriptions are not given proper attention, a gap emerges between code and natural language. This gap resembles the problem faced during the construction of the Tower of Babel, where people began speaking different languages, lost the ability to understand each other, and were unable to complete the building. In software development, code and natural language often become two distinct “languages” for describing the domain, leading to misunderstandings and a slowdown in progress.
One of the causes of this gap is the failure to choose an appropriate language for conceptualization. Without this, the overly flexible natural language and the formalized language of programming begin to diverge. Over time, the project’s description in documentation and its implementation in code lose alignment. This makes the project increasingly difficult to understand and leads to the “Babylon Problem.”
As the project evolves, the code becomes more complex and drifts further from the original goals and requirements expressed in natural language. Developers get immersed in technical details (added complexity), which are difficult to explain or comprehend outside of their context. As a result, the overarching goal is lost, and work slows or even stops due to the inability to communicate effectively.
To avoid this, it is crucial not only to establish a common language for the entire team but also to define a conceptual language early on that ensures consistency between natural language and programming language at all stages of development.
problem Babylon metaphor development