Becoming an Agile Software Architect
eBook - ePub

Becoming an Agile Software Architect

Rajesh R V

Buch teilen
  1. 372 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Becoming an Agile Software Architect

Rajesh R V

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

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.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Becoming an Agile Software Architect als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Becoming an Agile Software Architect von Rajesh R V im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Ciencia de la computación & Aplicaciones empresariales. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

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...

Inhaltsverzeichnis