Monday, March 17, 2014

Agile Software Architecture Edited By Muhammed Ali Babar, Alan W. Brown and Ivan Mistrik; Morgan Kaufmann

This book is a collection of 14 articles from 33 contributors (which is not stated in the description of the book) about agile software architecture. Most of the articles are about 20 pages long.

Some articles are really hard to read and many articles have a short introduction in agile development, explain some parts of the agile manifesto and/or introduces scrum which get really annoying after a few articles.

The Book is organized in 4 Parts.
Part 1 contains fundamental information of agile architecture including a small introduction in DCI, an introduction into refactoring of architectures, an article on how to discover and prioritize architecturally significant requirements (ASR) with the help of architecturally savvy personas (ASP) and an article where the authors constructed the Triple-A Framework for assessing the architecture decision process. Further the authors examined different projects that changed their architecture decision during the project and that the successes and failures of the projects were influenced by the shifts that were made.

Part 2 is about managing software architectures in agile projects. The first article from this part shows how adaptable and flexible software architectures can be achieved through the integrating of agile paradigm and variability at the architectural level. The second article is about continuous software architecture analysis and comes to the conclusion that continuous architecture evaluation in agile processes remains an open research question. Next is an article about lightweight architecture knowledge management (AKM) for agile software development. The authors show how AKM can be part of agile processes (like Scrum) without much overhead and costs. The last article is about bridging user stories and software architecture. It explains agile architecting and describes a tailored Scrum for agile architecting.

Part 3 shows agile architecting in specific domains. These specific domains are testing for security and development and deployment in the cloud.

Part 4 shows industrial viewpoints on agile architecting. This part is more practical than the others. It includes an article about agile architecting in complex agile system development projects. The authors show that strong architecture and agile practices mutually reinforcing in complex agile development projects. The next article “Building a Platform for Innovation” focuses largely on agile with architecture rather than agile versus architecture. The author considers both technical and nontechnical factors in building a platform for innovation. The third article “The Opportunities, Threats and Limitations of Emergent Architecture” deals with the claim of emergent architecture “that executing the implement-and-refactor cycle over and over again, using some design principles like the SOLID principles for guiding the refactoring, will result in a complete architecture—without doing any explicit architectural work”. The last article “Architecture as a Key Driver for Agile Success” focuses on the experiences of Aviva UK during their transformation journey from waterfall to agile.

There is not much new information in this Book but some articles are interesting to read.

IMHO the most interesting articles in this Book are: From Part 1: Chapter 3: Refactoring Software Architectures, Chapter 5: Architecture Decisions: Who, How, and When?

From Part 4: Chapter 12: Agile Architecting: Enable the Delivery of Complex Agile Systems Development Projects Chapter 13: Building a Platform for Innovation: Architecture and Agile as Key Enablers Chapter 14: Opportunities, Threats, and Limitations of Emergent Architecture Chapter 15: Architecture as a Key Driver for Agile Success: Experiences at Aviva UK

I give it 3 out of 5 stars.

You can find the book here.

No comments:

Post a Comment