0%

A guide to successfully operating in a lean-agile organization for solutions architects and enterprise architects

Key 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 software

Book Description

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.

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 agility

Who this book is for

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

Table of Contents

  1. Becoming an Agile Software Architect
  2. Contributors
  3. About the author
  4. About the reviewers
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the example code files
    5. Download the color images
    6. Conventions used
    7. Get in touch
    8. Reviews
  6. Section 1: Understanding Architecture in the Agile World
  7. Chapter 1: Looking through the Agile Architect's Lens
  8. Chapter 2: Agile Architecture – The Foundation of Agile Delivery
    1. Technical requirements
    2. The journey leading to Agile software development
    3. What is Agile software development?
    4. Is Lean different from Agile?
    5. Five benefits of Agile software development
    6. Agile development and traditional architecture – an oxymoron?
    7. Architecture as a continuum
    8. Traditional development methods frontload architecture efforts
    9. Agile architecture – architecting with Agile practices
    10. Balancing speed and sustainability
    11. Developing a little architecture upfront, but how much?
    12. Agile architecture principles
    13. Architecture needs a collective effort
    14. Architecture is continuous
    15. Architecture is Lean and efficient
    16. Test and learn architecture early and often
    17. Architecture enables agility
    18. Comparing different enterprise Agile frameworks
    19. Scaled Agile Framework (SAFe)
    20. Disciplined Agile (DA)
    21. Large-Scale Scrum (LeSS)
    22. Measuring Agile architecture maturity
    23. Lessons learned from Snow in the Desert
    24. Circumventing key challenges in adopting Agile architecture
    25. Agile architecture process flow and poster
    26. Summary
    27. Further reading
  9. Section 2: Transformation of Architect Roles in Agile
  10. Chapter 3: Agile Architect – The Linchpin of Success
    1. Technical requirements
    2. Understanding the challenging environment of architects
    3. A myriad of architect roles have impacted clarity
    4. Architects slow down delivery
    5. Self-organizing teams propel the no architect movement
    6. The birth of the accidental architect
    7. Architects are vital in Agile – the question is who plays that role?
    8. Organizing Agile architects – none, volunteered, designated, or dedicated
    9. Different roles played by Agile architects
    10. Essential skills for Agile architects to be relevant
    11. Explaining the Agile architect's behavior and duties with metaphors
    12. The changing behavior of the Agile architect
    13. The challenging duties of the Agile architect
    14. How different frameworks handle architect roles
    15. Scaled Agile Framework
    16. Disciplined Agile
    17. Large-Scale Scrum
    18. Learnings from Snow in the Desert
    19. Summary
    20. Further reading
  11. Chapter 4: Agile Enterprise Architect – Connecting Strategy to Code
    1. Technical requirements
    2. The need for change in lean-Agile EA
    3. EA frameworks focus on describing enterprises
    4. The city planning metaphor is no longer valid
    5. EA operates without purpose
    6. Digging into the current state is an evil
    7. EA disconnected from its intended purpose
    8. Showing value first is a trap
    9. Enterprise architects are non-technical
    10. Understanding the principles and duties
    11. The principles for Agile enterprise architects to succeed
    12. The duties of Agile enterprise architects
    13. The EA repository – the gold dust problem
    14. Measuring enterprise architects
    15. The enterprise architect role in Agile frameworks
    16. The enterprise architect role in Scaled Agile Framework
    17. The enterprise architect role in Disciplined Agile
    18. The enterprise architect role in Large-Scale Scrum
    19. Enterprise architects at Snow in the Desert
    20. The profile of an enterprise architect
    21. Understanding the portfolio flow
    22. Summary
    23. Further reading
  12. Chapter 5: Agile Solution Architect – Designing Continuously Evolving Systems
    1. Technical requirements
    2. Solution architects – the busy bees of agile teams
    3. A solution architect's mindset – the periscope in action
    4. The overlapping roles of enterprise and solution architects
    5. Maximizing value and eliminating flow barriers
    6. Starting with business value
    7. Focusing on sustainable quality
    8. Reducing reject cycles
    9. Minimizing lead time
    10. Reducing rework
    11. The duties of solution architects
    12. Developing an intentional architecture
    13. Preparing for emergent design
    14. Enabling continuous evolution
    15. Measuring the success of solution architects
    16. Summary
    17. Further reading
  13. Section 3: Essential Knowledge to Become a Successful Agile Architect
  14. Chapter 6: Delivering Value with New Ways of Working
    1. Technical requirements
    2. Understanding business value
    3. Showing the value of architecture is difficult
    4. Linking architecture activities to business backlogs
    5. Determining the business value of architecture
    6. Allocating capacity for prioritization
    7. Making the work transparent
    8. Looking ahead of development
    9. Working with a pragmatic mindset
    10. Understanding the last responsible moment
    11. Using eventual integrity
    12. Using a risk- and cost-driven approach
    13. Ensuring anti-viscosity
    14. Keeping options open
    15. Using a hypothesis-based solution
    16. Using real options theory
    17. Using set-based concurrent engineering
    18. Delivering early value with MVA
    19. Managing tech debt
    20. Summary
    21. Further reading
  15. Chapter 7: Technical Agility with Patterns and Techniques
    1. Amplifying agility with technical excellence
    2. Adopting software craftsmanship
    3. Enhancing quality with technical agility
    4. Building technical agility with patterns and techniques
    5. Architecting for change
    6. Driving technical agility with simplicity
    7. Evolving with isolation by design
    8. Legacy modernization architecture
    9. Developing good code with engineering excellence
    10. Applying coding principles, techniques, and patterns
    11. Good coding practices
    12. Continuous refactoring
    13. Twelve-factor principles
    14. Understanding enterprise integration
    15. Developing for testability
    16. Test-driven development
    17. Treating infrastructure like software with the cloud
    18. Monitoring everything with full stack telemetry
    19. Outcome-based monitoring with progressive enhancement
    20. Moving to product-centric monitoring
    21. Building observable systems
    22. Summary
    23. Further reading
  16. Chapter 8: DevOps and Continuous Delivery to Accelerate Flow
    1. Embracing DevOps culture
    2. Enhancing security with DevSecOps
    3. Crossing over with site reliability engineering
    4. Enabling flow with continuous delivery
    5. Benefiting from CD
    6. Architecting for continuous delivery
    7. Measuring the effectiveness of continuous delivery
    8. Implementing continuous delivery for legacy applications
    9. Adopting continuous integration
    10. Improving development and source code management
    11. Automating quality assurance
    12. Automatically deploying to production
    13. Launching in dark mode for early feedback
    14. Using feature flags to release features selectively
    15. Releasing on demand
    16. Progressively releasing with canary releases
    17. Collecting early feedback with A/B testing
    18. Architecting for release on demand
    19. Securing systems by design
    20. Summary
    21. Further reading
  17. Chapter 9: Architecting for Quality with Quality Attributes
    1. Understanding software quality
    2. Improving quality needs systems thinking
    3. Incrementally applying quality with a build-to-adapt strategy
    4. Building in quality to eliminate waste
    5. Adopting a quality attribute model
    6. Documenting quality attributes
    7. Using the scaled Agile approach for specifying quality attributes
    8. Using a quality attribute scenario
    9. Using the quality life cycle in Agile software development
    10. Discovering and refining quality attributes
    11. Aligning stakeholders to quality attributes
    12. Conducting a quality attribute workshop
    13. Refining QASes and playback
    14. Modeling and simulation
    15. Applying architecture trade-offs
    16. Using the architecture trade-off analysis method
    17. Using the solution architecture review method
    18. Developing quality attributes
    19. Assessing system quality
    20. Integrating quality checks in development
    21. Using fitness functions
    22. Evaluating using the Well-Architected Framework
    23. Summary
    24. Further reading
  18. Chapter 10: Lean Documentation through Collaboration
    1. Persisting knowledge with documentation
    2. Understanding the reasons for documentation
    3. Why the traditional way of documenting is no good
    4. Using Lean-Agile ways of documentation
    5. Evolutionary collaboration over documentation
    6. Just barely enough documentation when required
    7. How much documentation is sufficient?
    8. Adhering to the principles of documentation
    9. Documenting software architecture
    10. Different proposals for documenting architecture
    11. Documentation ecosystem at Snow in the Desert
    12. Applying Model-Based Software Engineering
    13. Summary
    14. Further reading
  19. Chapter 11: Architect as an Enabler in Lean-Agile Governance
    1. Understanding architecture governance
    2. Challenges with traditional governance
    3. Bringing agility with Lean-Agile governance
    4. Embracing Lean-Agile governance
    5. Principles of Lean-Agile governance
    6. Benefits of Lean governance
    7. Balancing autonomy with agility
    8. Determining the level of decentralization of decisions
    9. Implementing Goldilocks governance – a case study
    10. Documenting architecture decisions
    11. Ensuring psychological safety
    12. Measuring the quality of architecture decisions
    13. Summary
    14. Further reading
  20. Section 4: Personality Traits and Organizational Influence
  21. Chapter 12: Architecting Organizational Agility
    1. Correlating business agility with IT agility
    2. Understanding business and IT flow of value
    3. Improving the flow of value in IT
    4. Organizing people around value
    5. Examining the need for architecting the organization and teams
    6. Identifying flow and organizing teams with flow decomposition
    7. Assigning systems to flows
    8. Giving autonomy to flow teams
    9. Comparing capability-centric versus flow-centric teams
    10. Validating the organization of teams
    11. Structuring teams within flow teams
    12. Implementing communities of practice
    13. Stepping into next-generation IT
    14. Summary
    15. Further reading
  22. Chapter 13: Culture and Leadership Traits
    1. Understanding the need for change 
    2. Examining culture in high-performing organizations 
    3. Understanding the behavior of high-performing teams 
    4. Choosing the right leadership
    5. Personality traits of an architect
    6. Selflessness for relentless support
    7. Respect, equality, and humility
    8. Mindfulness for managing wellbeing
    9. Curious to acquire new knowledge
    10. Growth mindset for positive thinking
    11. Intrinsic motivation for commitment
    12. Creativity to explore new opportunities
    13. Self-esteem to protect personal value
    14. Empathy for emotional connection
    15. Executive presence for gaining attention
    16. Interpersonal traits of Agile architects
    17. Collaborating for collective ownership
    18. Resolving conflict for superior quality outcome
    19. Communicating well using storytelling
    20. Nurturing and growing talent for a competent workforce
    21. Motivating for a better outcome
    22. Leading by example and demonstrating servant leadership
    23. Feedback for continuous improvement
    24. Psychological safety for trust and transparency
    25. Leading the change by creating multipliers
    26. Caring for building a sense of belonging
    27. Summary
    28. Further reading
    29. Why subscribe?
  23. Other Books You May Enjoy
    1. Packt is searching for authors like you
    2. Leave a review - let other readers know what you think
18.220.66.151