Gheorghe Curelet-Balan Blog

Wednesday, January 29, 2014

Agile Software Architecture book (chapter 15) review notes

My abbreviated contents of book's contents:
Foreword by John Grundy
  Architecture vs Agile: competition or cooperation?
Foreword by Rick Kazman
Chapter 1: Making architecture and agile approaches work together
Part 1: Fundamentals of Agile Architecting
  Ch 2: DCI Paradigm: taking OO into Architecture world
  Ch 3: Refactoring Software Architectures
  Ch 4: Persona as a driver in architectural design and preservation
  Ch 5: Architecture decisions: Who, How & When
Part 2: Managing Software Architecture in Agile Projects
  Ch 6: Adaptable architectures via agility to support variability
  Ch 7: Continuous software architecture analysis
  Ch 8: Lightweight Architecture Knowledge Management for Agile
  Ch 9: Tailored Scrum for Agile Architecting by bridging user stories with architecture
Part 3: Agile Architecting in Specific Domains
  Ch 10: Security testing by architecture-centric approach
  Ch 11: Multitenant, multitarget architecture supporting agile development & deployment in the cloud
Part 4: Industrial Viewpoints on Agile Architecting
  Ch 12: Agile Architecting: enabling delivery of complex agile systems
  Ch 13: Architecture and Agile = key innovation enablers 
  Ch 14: Emergent Architecture's opportunities, threats and limitations
  Ch 15: Agile Success driven by architecture: Aviva UK case study.
Extensive Author & Subject indexes

Chapter 15 review: This chapter brilliantly details the challenges and architectural-centric solutions for the transition to agile from a waterfall process in a big insurance organization, Aviva UK. The transition was caused by the rapid change (and on-going quality) demands under the restriction of not increasing risk & cost. 

First part of the chapter lists the Challenges to agile adoption at Aviva UK, i.e. architectural / organizational characteristics (result of Conway's Law) and derived waterfall specific business practices (scheduled release processes, silo mentality, restricted integration testing, etc.).

Facing these, few lessons were learned: agile practices specific to small teams pose hurdles when adopted by big teams, requiring changes to pure Scrum practice; agile adoption by big businesses is achieved by focusing on impact and requirements of IT architecture ("in-sprint" design is not sufficient to guarantee success).

Next, the key architectural strategies for agile adoption success in big organizations are detailed and exemplified:
1. sufficient up-front architecture and design. An example is given where incrementally in-sprint design failed due to domain complexity and having too much uncertainty unresolved before starting the sprints.
2. what is "sufficient" up-front architecture / design and how uncertainties impact them.
3. the key points for continuing architecture and design during sprints (exemplified with Aviva UK agile development scenarios). 
4. the layered architecture as enabler for independent change agility. Inspired from the buildings pace layering architectural pattern the layered architecture allows independent and different rate of change across loose coupled system software tiers.

The chapter ends with a testimony towards the benefits of incremental agile and architecture transformation of the business and IT. Aviva UK learned by experimentation a valuable lesson in gradually changing existing architecture towards a loosely coupled service-oriented tiers that accommodate easy system evolution. Paraphrasing authors lesson: it is permissible to change things later as long as the design facilitates these changes.

I review for the O'Reilly Reader Review Program

Labels: , , , , ,


Post a Comment

<< Home