Twin Peaks Model. Developing the architecture and requirements
of a software system.

What is the Twin Peaks Model? What advantages does it offer and how is it used in software development?

Twin Peaks Model

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.

Advantages of the Twin Peaks Model

  • Requirements take the system context into account
  • Quick development of design alternatives
  • Quick creation of prototypes
  • Efficient development of the architecture through use of existing solutions
  • Workload of requirements can be estimated using the first rough architecture plan
  • Reduction of costs because “unrealistic” requirements are identified before development begins
  • Risk reduction in development