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, it it means to solve the chicken-and-egg problem in software development:
Before you draft architecture, the requirements have to be defined. But requirements can only be derived when the architecture is known.
In practice, this often results in a classical waterfall model: First, the requirements are specified, then the architecture is developed based on these. This procedure leads to requirements that, for instance, cannot be implemented with the existing technology; or to a poorly performing architecture that is assembled from individual components and does not fulfill the stakeholders’ expectations.
So Nuseibeh suggested the Twin Peaks Model, to see the architecture and requirements as two “twin peaks” that have to be developed and refined iteratively in a mutual interplay. This means that the tops of the mountains make the starting point and the preparations go down to the bottoms.