Until recently, conventional wisdom has held that Software Architecture design and Agile development methods are somehow “incompatible”, or at least they generally work at crosspurposes (Nord and Tomayko, 2006). Software architecture design has usually been seen by many in the agile community as a prime example of the major agile anti-pattern of “big design up front”. On the other hand, agile methods have been seen by many of those focusing on the discipline of software architecture as lacking sufficient forethought, rigor and far too dependent on “emergent” architectures (a suitable one which may never actually emerge). In my view, there is both a degree of truth and a substantial amount of falsehood in these somewhat extreme viewpoints. Hence the time seems ripe for a book exploring leading research and practice in an emerging field of “agile software architecture”, and charting a path for incorporating the best of both worlds in our engineering of complex software systems. In this foreword I briefly sketch the background of each approach and the anti-agile, antisoftware architecture viewpoints of both camps, as they seem to have become known. I deliberately do this in a provocative and all-or-nothing way, mainly to set the scene for the variety of very sensible, balanced approaches contained in this book. I hope to seed in the reader’s mind both the traditional motivation of each approach and how these viewpoints of two either-or, mutually exclusive approaches to complex software systems engineering came about. I do hope that it is apparent that I myself believe in the real benefits of both approaches and they are certainly in no way incompatible – agile software architecting or architecting for agile, if you prefer that viewpoint – is both a viable concept and arguably the way to approach the current practice of software engineering.
[1]
Paris Avgeriou,et al.
Relating Software Requirements and Architectures
,
2011
.
[2]
Mary Shaw,et al.
Software architecture - perspectives on an emerging discipline
,
1996
.
[3]
Tore Dybå,et al.
Empirical studies of agile software development: A systematic review
,
2008,
Inf. Softw. Technol..
[4]
Jeff Sutherland,et al.
Manifesto for Agile Software Development
,
2013
.
[5]
Muhammad Ali Babar,et al.
Agility and Architecture: Can They Coexist?
,
2010,
IEEE Softw..
[6]
Kent L. Beck,et al.
Embracing Change with Extreme Programming
,
1999,
Computer.
[7]
James E. Tomayko,et al.
Software architecture-centric methods and agile development
,
2006,
IEEE Software.
[8]
Jacky W. Keung,et al.
Guest Editors' Introduction: Software Engineering for the Cloud
,
2012,
IEEE Softw..
[9]
Philippe Kruchten,et al.
The 4+1 View Model of Architecture
,
1995,
IEEE Softw..
[10]
Ken Schwaber,et al.
Agile Project Management with Scrum
,
1980
.
[11]
Paul Clements,et al.
Software architecture in practice
,
1999,
SEI series in software engineering.
[12]
Frank Maurer,et al.
UCD in agile projects: dream team or odd couple?
,
2005,
INTR.