What is the Twin Peaks Model?
The Twin Peaks Model tackles the development of the architecture and requirements of a software system. Developed by Bashar Nuseibeh, an IT professor at the Open University in the UK, the model aims to solve the chicken-and-egg problem in software development:
Before drafting the architecture, requirements need to be defined. But requirements can only be defined when the architecture is known.
In practice, this often results in a classical waterfall model: First, requirements are specified and then the architecture is developed based on these. This approach may lead to problems. For instance, requirements are derived that can’t be implemented with the existing technology. Or the architecture is assembled piecemeal from individual components, performs poorly, and doesn’t fulfill stakeholders’ expectations.
To solve these problems, Nuseibeh introduced the Twin Peaks Model. He suggested that the architecture and requirements should be seen as two mountains that need to be worked on from top to bottom using an iterative approach. The “peaks” of the mountain are the starting points and development takes place from top to bottom in mutual interplay.