Motivation and Objectives
The Twin Peaks model draws attention to the synergistic relationship between requirements and architectural design. It emphasizes the need to progressively discover and specify requirements while concurrently exploring alternative architectural decisions. The Twin Peaks model addresses the problems found in more linear development processes in which either the requirements are specified and frozen without considering the implications on the architectural design, or the opposite case occurs in which the architecture is designed without negotiating emerged conflicts, balancing trade-offs and making desirable changes in the requirements.
The Twin Peaks model also addresses the case in which new requirements are introduced to an existing system and therefore previous architectural decisions constrain new and emerging requirements. This case can occur in both incremental development environments, such as agile projects, or in cases when an existing system is modified to address new needs.
Research in this area has produced a broad array of techniques such as the Attribute Driven Design Method, the WinWin approach, Architectural Trade-off Analysis Method (ATAM), the NFR catalog and its accompanying SoftGoal Interdependency Graphs. However, significant challenges still remain in order to achieve the Twin Peaks' vision in which requirements and architecture are evolved incrementally.
The impact of the Twin Peaks model extends far beyond the early phases of software development, because quality concerns must not only be addressed into the initial system design, but must also be maintained throughout the system's lifetime. The well-documented problem of architectural degradation during system evolution indicates that this goal has not yet been accomplished.