Technology changes and new (functional) features are two common drivers for evolving a software system and, often, its underlying architecture. In these cases, an evolution roadmap that provides a sequence of tasks and activities with a clear rationale is needed and, furthermore, often demanded by management.
In our experience, producing such a roadmap can be challenging, even when the source and the target systems are known, due to various business, technology, and operational concerns at play that affect the evolution paths and hinder a global analysis by the project stakeholders. Thus, we argue that evolution planning must be a shared responsibility between managers and architects.
In this presentation, we discuss experiences in applying a set of architectural techniques—utility trees, scenarios, and architectural views—to perform architectural assessments of source and target software architectures with the goal of generating an evolution roadmap that facilitates a risk analysis and a convergence of the stakeholders’ decisions. These experiences are based on two projects centered on business process management (BPM) solutions and a third one involving a legacy core in the banking and telecom domains. As the main lessons learned, we can say that architecturally informed roadmaps help decision makers to understand which mix of architectural capabilities should be delivered along the evolution path, risks associated with the tasks of the roadmap, and system options that can be enabled by architectural capabilities.