Book Image

Becoming an Agile Software Architect

By : Rajesh R V
Book Image

Becoming an Agile Software Architect

By: Rajesh R V

Overview of this book

Many organizations have embraced Agile methodologies to transform their ability to rapidly respond to constantly changing customer demands. However, in this melee, many enterprises often neglect to invest in architects by presuming architecture is not an intrinsic element of Agile software development. Since the role of an architect is not pre-defined in Agile, many organizations struggle to position architects, often resulting in friction with other roles or a failure to provide a clear learning path for architects to be productive. This book guides architects and organizations through new Agile ways of incrementally developing the architecture for delivering an uninterrupted, continuous flow of values that meets customer needs. You'll explore various aspects of Agile architecture and how it differs from traditional architecture. The book later covers Agile architects' responsibilities and how architects can add significant value by positioning themselves appropriately in the Agile flow of work. Through examples, you'll also learn concepts such as architectural decision backlog,the last responsible moment, value delivery, architecting for change, DevOps, and evolutionary collaboration. By the end of this Agile book, you'll be able to operate as an architect in Agile development initiatives and successfully architect reliable software systems.
Table of Contents (19 chapters)
1
Section 1: Understanding Architecture in the Agile World
Free Chapter
2
Chapter 1: Looking through the Agile Architect's Lens
4
Section 2: Transformation of Architect Roles in Agile
8
Section 3: Essential Knowledge to Become a Successful Agile Architect
15
Section 4: Personality Traits and Organizational Influence

Enabling flow with continuous delivery

One of the Agile Manifesto principles is to satisfy the customer through early and continuous delivery of valuable software. Adopting lean-Agile development practices alone is insufficient to accelerate the flow of work; build-test-deploy-release cycles must equally be lean and continuous. Continuous delivery is one of the underpinning practices in DevOps for automating build-test-deploy-release cycles.

CI and CD are common abbreviations used in the context of Agile software delivery and DevOps. CI stands for Continuous Integration, and is well understood as an evolution of engineering practice that automates building, testing, packaging, and deployment. On the contrary, CD is a confusing term. In general, CD is interchangeably used for continuous delivery or continuous deployment. The recent state of DevOps report Accelerate: State of DevOps 2019 defines Continuous Delivery as CD and that is adopted in this book.

The following diagram illustrates...