The conflict between agile and architecture – myth or reality?
I had a great time last month presenting the opening keynote at the Agile Software Architecture Symposium, a 1-day event organised by Avisi in The Netherlands, where I spoke about the conflict between agile and architecture...
The agile software manifesto celebrated its tenth anniversary in 2011, with agile now being an established and mainstream way of building software. With this in mind though, software teams still struggle with how architecture and thinking about things up front fit into an agile way of working, which is all about embracing change, moving fast and delivering value early. For some, there's a conflict between what "architecture" and "agile" are striving to deliver.
Even the most agile of projects will have architectural concerns of some description and these things ideally need to be thought about up front, particularly if you're building software systems that need to be highly scalable, available, secure, etc. Agile projects therefore need some notion of "architecture" yet teams are often discouraged from naming this as an explicit activity in their agile projects. I once heard somebody say "if you're doing Scrum and you need a sprint zero, you're doing it wrong"!
So agile software projects do have an architectural element to them, but where is the conflict between agile and architecture then? Perhaps it's with the process of "doing architecture" rather than the output. After all, one of the key goals of agile methods is to deliver customer value, frequently and in small chunks. The goal of "architecture" (which usually refers to "big design up front") is to settle on an understanding of everything that needs to be delivered before putting a blueprint in place. And if you are going to do this, how does the role of "software architect" fit into those self-organising teams that many are striving for?
Join me for "The conflict between agile and architecture – myth or reality?" where I'll talk about the conflict between agile software development and software architecture in the context of both the software development process and the software architecture role on agile teams, hopefully dispelling some myths along the way.
The slides from my talk are available to download/view online and slides from most of the talks from the day can be found on the symposium website. Some photos are also online. Many thanks to the team at Avisi! :-)