Becoming an Agile Software Architect
eBook - ePub

Becoming an Agile Software Architect

Rajesh R V

Share book
  1. 372 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Becoming an Agile Software Architect

Rajesh R V

Book details
Book preview
Table of contents
Citations

About This Book

A guide to successfully operating in a lean-agile organization for solutions architects and enterprise architectsKey Features• Develop the right combination of processes and technical excellence to address architectural challenges• Explore a range of architectural techniques to modernize legacy systems• Discover how to design and continuously improve well-architected sustainable softwareBook DescriptionMany 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.What you will learn• Acquire clarity on the duties of architects in Agile development• Understand architectural styles such as domain-driven design and microservices• Identify the pitfalls of traditional architecture and learn how to develop solutions• Understand the principles of value and data-driven architecture• Discover DevOps and continuous delivery from an architect's perspective• Adopt Lean-Agile documentation and governance• Develop a set of personal and interpersonal qualities• Find out how to lead the transformation to achieve organization-wide agilityWho this book is forThis agile study guide is for architects currently working on agile development projects or aspiring to work on agile software delivery, irrespective of the methodology they are using. You will also find this book useful if you're a senior developer or a budding architect looking to understand an agile architect's role by embracing agile architecture strategies and a lean-agile mindset. To understand the concepts covered in this book easily, you need to have prior knowledge of basic agile development practices.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Becoming an Agile Software Architect an online PDF/ePUB?
Yes, you can access Becoming an Agile Software Architect by Rajesh R V in PDF and/or ePUB format, as well as other popular books in Ciencia de la computación & Aplicaciones empresariales. We have over one million books available in our catalogue for you to explore.

Information

Year
2021
ISBN
9781800568204

Section 1: Understanding Architecture in the Agile World

In this section, you will gain clarity on various aspects of Agile architecture, how it differs from traditional architecture practices, and how the Agile architecture helps organizations to deliver a continuous sustainable flow of work.
This section contains the following chapters:
  • Chapter 1, Looking through the Agile Architect's Lens
  • Chapter 2, Agile Architecture – The Foundation of Agile Delivery

Chapter 1: Looking through the Agile Architect's Lens

"Less is more."
– Ludwig Mies van der Rohe (Architected Barcelona Pavilion, Expo 1929)
Agile software development is an effective practice that helps organizations continuously deliver the maximum possible business value with organizational agility. The 14th Annual State of Agile Report 2020 shows that an astounding 95% of the 1,121 respondents adopted Agile software development practices. The sharp increase in Agile adoption indicates why organizations cannot shy away from embracing Agile software development practices in their business. Most of these organizations adopt Agile software delivery practices for accelerating software delivery by successfully managing the changing priorities of the business. Architecting systems using Agile values, principles, and practices are incredibly crucial to improve productivity and deliver quality products.
This book introduces the Agile Architect's Lens—a comprehensive representation of the knowledge of key segments and leading practices for Agile architects to successfully operate in a Lean-Agile organization. The Agile Architect's Lens has twelve focal points, as shown in the diagram. Each focal point that can you see in the following figure captures tried and tested approaches, patterns, and guidelines for architects to design continually evolving solutions:
Figure 1.1 – The Architect's Lens
Figure 1.1 – The Architect's Lens
The Agile Architect's Lens act as a single pane of glass, guiding light, and topic navigator for readers to easily explore this book.
Agile architecture is a set of practices, principles, and guidelines for developing architecture as an intrinsic element of Agile software development. Using Agile architecture concepts, Agile teams can confidently drive sustainable, fit-for-purpose solutions to meet customer needs. We thus begin by focusing on the Agile Architecture focal point of the Agile Architect's Lens.
Agile architects need special skills to operate efficiently in Agile organizations. The collaborative nature of Agile software development needs a new set of metaphors to understand expectations from Agile architects. A well-architected solution enables organizations to deliver value with the shortest sustainable lead time, which significantly enhances business operations. Our next logical focus will therefore be on the Agile Architect focal point, followed by covering two specific architect roles crucial to Agile development projects – the Enterprise Architect and Solution Architect focal points of the Agile Architect's Lens.
Agile architects are responsible for bridging strategies and providing a shared vision to all stakeholders in the continuous delivery flow. Agile architects have to acquire technical knowledge in specific areas to address commonly occurring challenges efficiently. Hence, the knowledge kitty has to have the right blend of process excellence and technical excellence. We will therefore shift our attention next to covering the Value Delivery, Patterns and Techniques, DevOps and Automation, Built-in Quality, Evolutionary Collaboration, and Safety Nets focal points of the Agile Architect's Lens.
In addition to the knowledge kitty, Agile architects need to undergo a radical transformation in behavior and mindset to achieve operational excellence. Servant leadership is one of the foremost characteristics that Agile architects need to have, but it is just a starting position. In our journey ahead, we expand on the Culture and Leadership Traits focal point of the Agile Architect's Lens.
Business agility is one of the key motivations for many organizations to opt for digital transformation. The lean practices of Agile software delivery can boost organizational agility. However, this needs considerable effort to organize systems and people around values to be nimble enough to respond quickly to changes in business strategies. Architecting organizations around values is an essential aspect of organizational agility. We cover this in our final focal point of the Agile Architect's Lens, Architecting Organizational Agility.
In summary, digital transformation is a continuous activity for many organizations. Agile software delivery is the foundation on which the organizational agility essential to support successful transformations can be built. Architecture, and especially architects, play an extremely critical role not just in Agile software delivery but also in architecting organizations for agility. While technical excellence is paramount for architects, working beyond traditional boundaries with an intrinsically motivated team of multi-disciplinary individuals requires a significant shift in mentality.
Let's start our exciting journey by exploring our first focal point, Agile Architecture, in our next chapter.

Chapter 2: Agile Architecture – The Foundation of Agile Delivery

"Simplicity is the ultimate sophistication."
– Leonardo da Vinci
In this era of innovative and disruptive digital transformation, Agile software development is no longer a marketing buzzword. Agile software development methodologies have enabled many organizations at scale (at the required size) to significantly accelerate their ambitious journey to accomplish and sustain organizational agility. Agile architecture and the new Agile ways of developing architecture and design are incredibly important in delivering an uninterrupted, continuous flow of values to meet the needs and wants of customers. However, architecture and architects need a radical reshaping to be relevant in the world of Agile software development.
This chapter takes you through the evolution of software development and analyzes the lessons learned, which help in reinforcing the vital need of architecture in Agile software development initiatives.
In this chapter, we're going to cover the following main topics:
  • The journey leading to Agile software development
  • Agile development and traditional architecture – an oxymoron?
  • Agile and architecture – the battle between speed and sustainability
  • Comparing different scaling Agile frameworks
  • Measuring Agile architecture
  • Lessons learned from Snow in the Desert
This chapter focuses on the Agile Architecture focal point of the Agile Architect Lens, as shown in the following diagram:
Figure 2.1 – The Agile Architect Lens – focal point
Figure 2.1 – The Agile Architect Lens – focal point

Technical requirements

Additional materials such as posters and Agile architecture assessment parameters referenced in this chapter are available to download from https://github.com/PacktPublishing/Becoming-an-Agile-Software-Architect/tree/master/Chapter2.

The journey leading to Agile software development

Interestingly, unlike many other natural evolutions, software development has gone through many forms, shapes, and, notably, cycles over the years. One of the significant parameters in software development evolution has been the risk of failure. The likelihood of risk dramatically reduced as a result of this evolution.
Software development is a young discipline, with only just under seven decades of legacy. Grady Booch, Chief Scientist at IBM, in his speech History of Software Engineering, at the Association for Computing Machinery, observed that the first mention of software was by John Turkey back in 1952.
The Agile method of software development has become increasingly popular in the last decade, but the traces of Agile development are deeply rooted in history. The paper Iterative and Incremental Development: A Brief History published by IEEE highlighted the existence of Agile development even before that. The article stated that, back in the 1960s, NASA's Project Mercury ran with an iterative approach of very short, half-day cycles and used test-driven development practices. The more interesting observations came from the Software Engineering report at a conference sponsored by the NATO science committee held back in 1968. Kinslow, a computer systems consultant, articulated very well in this paper that the software design process is an iterative one. Ross, another attendee of the conference from MIT, also highlighted the deadly symptom of traditional software development as first specifying what you are going to do and then doing it. Both Kinslow and Ross were pointing toward what is today called the Agile software development approach.
Most of the software development during the 1960s followed the waterfall approach, and the earlier statements came from frustration at the failures and challenges of waterfall-style software development. Sequentially staged software development was first proposed by Dr. Winston W. Royce back in the 1970s, which appeared in an IEEE publication, Managing Development of Large Software Systems. Later, the term "waterfall" was introduced by Bell and Thayer in the second International Conference on Software Engineering referring to Royce's approach. Royce, in his paper, explained a...

Table of contents