Agility and Architecture – Why and How to combine them?

Whether we like it or not, it is a fact that Agile approaches have had significant impact on industrial software development practices. Many companies which I have come to know through my collaborative and consultancy contacts, especially in Scandinavian region, have adopted and/or are planning to adopt agile approaches. Despite becoming widely popular, there remains quite a great deal of perplexity about the role and importance of a system’s software architecture in agile approaches.

Whenever I look at the literature on or listen to proponents of both topics, a large number of advocates of software architecture discipline appear to be skeptics of the scalability of any software development approach, not necessarily agile, that does not pay sufficient attention to architectural aspects. Looking at the other camp, I get the impression that as if Agile proponents were out there to implicitly or explicitly say that efforts required for looking after the architectural aspects are of little value to the customers of a system.

While listening to both camps which may sound dichotomous, I am becoming more and more convinced that we need to invest significant efforts to scientifically unearth the philosophical, theoretical, and practical differences between agility and architectural principles and values. We need to allocate more scientific and industrial resources to identify and understand the challenges caused by lack of sufficient attention to architectural aspects in agile software development. We shouldn’t question whether or not Agile and Architecture principles and values can be integrated; rather we need to focus on why and how to integrate sound architectural principles into agile approaches? In an attempt to contribute to this kind of efforts, along with colleagues Pekka Abrahamsson, and Philippe Kruchten, I have edited a special issue of IEEE software on the topic of Agility and Architecture. The articles in this special issue provide interesting and useful insights and experiences of integrating architectural aspects into agile approaches. This special issue is an interesting read for those interested in knowing “why and how to integrate agility and architecture.”

Pekka Abrahamsson, Muhammad Ali Babar, Philippe Kruchten, Agility and Architecture: Can They Coexist?. IEEE Software 27(2): 16-22 (2010).

Apart from this special issue, I have also been involved in several studies aimed at discovering potential patterns of integrating agile and architectures. Two of the articles from these studies are below.

Muhammad Ali Babar, Tuomas Ihme, Minna Pikkarainen: An industrial case of exploiting product line architectures in agile software development. SPLC 2009: 171-179.

Muhammad Ali Babar: An exploratory study of architectural practices and challenges in using agile software development approaches. WICSA/ECSA 2009: 81-90.