Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture
Software architecture metrics are key to the maintainability and architectural quality of a software project and they can warn you about dangerous accumulations of architectural and technical debt early in the process. In this practical book, leading hands-on software architects share case studies to introduce metrics that every software architect should know.

This isn't a book about theory. It's more about practice and implementation, about what has already been tried and worked. Detecting software architectural issues early is crucial for the success of your software: it helps mitigate the risk of poor performance and lowers the cost of repairing those issues. Written by practitioners for software architects and software developers eager to explore successful case studies, this guide will help you learn more about decision and measurement effectiveness.

Through contributions from 10 prominent practitioners, this book shares key software architecture metrics to help you set the right KPIs and measure the results. You'll learn how to:

  • Measure how well your software architecture is meeting your goals
  • Choose the right metrics to track (and skip the ones you don't need)
  • Improve observability, testability, and deployability
  • Prioritize software architecture projects
  • Build insightful and relevant dashboards
1141092327
Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture
Software architecture metrics are key to the maintainability and architectural quality of a software project and they can warn you about dangerous accumulations of architectural and technical debt early in the process. In this practical book, leading hands-on software architects share case studies to introduce metrics that every software architect should know.

This isn't a book about theory. It's more about practice and implementation, about what has already been tried and worked. Detecting software architectural issues early is crucial for the success of your software: it helps mitigate the risk of poor performance and lowers the cost of repairing those issues. Written by practitioners for software architects and software developers eager to explore successful case studies, this guide will help you learn more about decision and measurement effectiveness.

Through contributions from 10 prominent practitioners, this book shares key software architecture metrics to help you set the right KPIs and measure the results. You'll learn how to:

  • Measure how well your software architecture is meeting your goals
  • Choose the right metrics to track (and skip the ones you don't need)
  • Improve observability, testability, and deployability
  • Prioritize software architecture projects
  • Build insightful and relevant dashboards
65.99 In Stock
Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture

Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture

Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture

Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture

Paperback

$65.99 
  • SHIP THIS ITEM
    In stock. Ships in 1-2 days.
  • PICK UP IN STORE

    Your local store may have stock of this item.

Related collections and offers


Overview

Software architecture metrics are key to the maintainability and architectural quality of a software project and they can warn you about dangerous accumulations of architectural and technical debt early in the process. In this practical book, leading hands-on software architects share case studies to introduce metrics that every software architect should know.

This isn't a book about theory. It's more about practice and implementation, about what has already been tried and worked. Detecting software architectural issues early is crucial for the success of your software: it helps mitigate the risk of poor performance and lowers the cost of repairing those issues. Written by practitioners for software architects and software developers eager to explore successful case studies, this guide will help you learn more about decision and measurement effectiveness.

Through contributions from 10 prominent practitioners, this book shares key software architecture metrics to help you set the right KPIs and measure the results. You'll learn how to:

  • Measure how well your software architecture is meeting your goals
  • Choose the right metrics to track (and skip the ones you don't need)
  • Improve observability, testability, and deployability
  • Prioritize software architecture projects
  • Build insightful and relevant dashboards

Product Details

ISBN-13: 9781098112233
Publisher: O'Reilly Media, Incorporated
Publication date: 06/21/2022
Pages: 215
Product dimensions: 7.00(w) x 9.19(h) x (d)

About the Author

Christian Ciceri is a Software Architect & co-founder at Apiumhub - software development company known for software architecture excellence. Also, he is head of Software Architecture in VYou app - customer identity and access management solution and head of moderators in Global Software Architecture Summit. He began his professional career with a specific interest in Object Oriented design issues, with deep studies in code-level and architectural-level design patterns and techniques.

Dave Farley is a thought-leader in the field of Continuous Delivery, DevOps and Software Development in general. He is co-author of the Jolt-award winning book 'Continuous Delivery', a regular conference speaker and blogger and one of the authors of the Reactive Manifesto.

Neal Ford is a director, software architect, and meme wrangler at Thoughtworks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal’s authored nine books (and counting), a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developer conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, Nealford.com.

Andrew Harmel-Law is a highly enthusiastic, self-starting and responsible tech principal at Thoughtworks. Andrew specializes in Java and JVM technologies, agile delivery, build tools and automation, and domain-driven design. Experienced across the software development life cycle and in many sectors including government, banking, and ecommerce, what motivates him is the production of large-scale software solutions, fulfilling complex client requirements.

Michael Keeling is an experienced software architect, agile practitioner, and programmer. He has worked on a variety of software systems including combat systems, search applications, web apps, and IBM Watson. When not doing software stuff, Michael enjoys hiking, running, cooking, and camping.

Carola Lilienthal is Senior Software Architect and Managing Director at WPS - Workplace Solutions and loves to design good structured, long-living software systems. Since 2003, she and her teams are using DDD to achieve this goal. DDD and long-livingness of software architectures are the topic of many talks she has given on various conferences, one of them is O'Reilly Software Architecture Conference. She condensed her experience in the book “Sustainable Software Architecture” and translated the book "Domain-Driven Design Distilled" by Vaughn Vernon into German.

João Rosa is a strategic software delivery consultant at Xebia and CTO ad interim at GoodHabitz. He believes software architecture is the fine balance between trade-offs. João focuses on helping teams and organizations to make strategic decisions regarding the software; aligning teams and software to optimize the stream-based value. He believes in the power of collaboration and is a fan of visual collaboration tools.

Alexander von Zitzewitz is a serial entrepreneur in the software business and one of the founders of hello2morrow, an ISV specializing in static analysis tools that can enforce architecture and quality rules during development and maintenance of software systems. He's worked in the industry since the early 1980s and focuses on the role of software architecture and technical quality for successful project outcomes. He moved from Germany to Massachusetts in 2008 to develop hello2morrow's business in North America.

Rene Weiss is a CTO at Finabro. He has supported agile software development endeavors for more than 13 years. Having had different roles as software developer, software architect, project manager, scrum master, product owner, and head of software development, he has plenty of experience to rely on.

Eoin Woods is CTO at Endava, an international technology company that delivers solutions in the areas of digital, agile transformation, and automation. As CTO, Eoin leads the technical strategy for the firm, guides capability development, and directs investment in emerging technologies. Eoin is a widely published author in both the research and industrial communities, coauthor of the well-known book Software Systems Architecture, published by Addison-Wesley and the recipient of the 2018 Linda Northrup Award for Software Architecture, from the Software Engineering Institute at CMU.

Table of Contents

Preface vii

1 Four Key Metrics Unleashed 1

Definition and Instrumentation 2

Refactoring Your Mental Model 3

Pipelines as Your First Port of Call 4

Locating Your Instrumentation Points 6

Capture and Calculation 10

Display and Understanding 12

Target Audience 13

Visualization 13

Front Page 17

Discussions and Understanding 18

Ownership and Improvement 18

Conclusion 19

2 The Fitness Function Testing Pyramid: An Analogy for Architectural Tests and Metrics 21

Fitness Functions and Metrics 21

Fitness Functions: Test Coverage 23

Fitness Functions: Integration Tests with Network Latency 24

Introduction to Fitness Function Categories 25

Mandatory Fitness Function Categories 25

Optional Fitness Function Categories 28

Fitness Function Categories: Catalog Overview 30

The Testing Pyramid 30

The Fitness Function Testing Pyramid 32

The Top Layer 33

The Middle Layer 34

The Bottom Layer 34

Examples and Their Full Categorization 35

Fully Categorizing Top-Layer Examples 37

Developing Your Fitness Functions and Metrics 39

Conclusion 41

3 Evolutionary Architecture: Guiding Architecture with Testability and Deployability 43

The Importance of Learning and Discovery 44

The Tools of Sustainable Change 44

Testability: Creating High-Quality Systems 45

Deployability: Scaling Development of Our Systems 47

Conclusion 47

4 Improve Your Architecture with the Modularity Maturity Index 49

Technical Debt 49

Origination of Technical Debt 50

Assessment with the MMI 52

Modularity 53

Hierarchy 54

Pattern Consistency 56

Calculating the MMI 57

Architecture Review to Determine the MMI 61

Conclusion 63

5 Private Builds and Metrics: Tools for Surviving DevOps Transitions 65

Key Terms 66

CI/CD 66

DevOps 67

The "Ownership Shift" 68

Empowering the Local Environment Again 69

The Private Build 70

Case Study: The Unstable Trunk 72

Bug A1 72

Bug A2 73

Bug A3 73

Bug A4 73

Case Study: The Blocked Consultant 74

Metrics 75

Time to Feedback 76

Evitable Integration Issues in the Deployed Application per Iteration 76

Time Spent Restoring Trunk Stability per Iteration 77

The Cost of Private Builds 78

Metrics in Practice 78

High Time to Feedback, High Evitable Integration Issues, Low Time to Trunk Stability 78

Low Time to Feedback, High Evitable Integration Issues, Low Time to Trunk Stability 79

High Time to Feedback, Low Evitable Integration Issues, Low Time to Trunk Stability 79

Low Evitable Integration Issues and High Time to Trunk Stability 79

Conclusion 80

6 Scaling an Organization: The Central Role of Software Architecture 81

YourFinFreedom Breaks the Monolith 83

Implementing a Distributed Big Ball of Mud 85

Seeking Direction 87

From Best Effort to Intentional Effort 88

Increasing Software Architecture Intentionality, Guided by Metrics 91

Managing Expectations with Communication 99

Learning and Evolving the Architecture 102

And What About Anna? 104

Conclusion 104

7 The Role of Measurement in Software Architecture 105

Adding Measurement to Software Architecture 106

Measurement Approaches 108

Runtime Measurement of Applications and Infrastructure 108

Software Analysis 109

Design Analysis 109

Estimates and Models 109

Fitness Functions 110

Measuring System Qualities 110

Performance 111

Scalability 113

Availability 114

Security 116

Getting Started 118

Hypothetical Case Study 119

Pitfalls 121

Conclusion 123

8 Progressing from Metrics to Engineering 125

The Path to Fitness Functions 125

From Metrics to Engineering 127

Automation Operationalizes Metrics 130

Case Study: Coupling 132

Case Study: Zero-Day Security Check 136

Case Study: Fidelity Fitness Functions 138

Conclusion 141

9 Using Software Metrics to Ensure Maintainability 143

The Case for Using Metrics 143

Entropy Kills Software 144

The Toxicity of Cyclic Dependencies 146

How Metrics Can Help 147

Why Are Metrics Not More Widely Used? 148

Tools to Gather Metrics 149

Useful Metrics 150

Metrics to Measure Coupling and Structural Erosion 150

Metrics to Measure Size and Complexity 160

Change History Metrics 162

Other Useful Metrics 163

Architectural Fitness Functions 165

How to Track Metrics over Time 167

A Few Golden Rules for Better Software 168

Conclusion 169

10 Measure the Unknown with the Goal-Question-Metric Approach 171

The Goal-Question-Metric Approach 172

Create a GQM Tree 172

Prioritize Metrics and Devise a Data Collection Strategy 174

Case Study: The Team That Learned to See the Future 177

System Context 177

Incident #1: Too Many Requests to the Foo Service 179

Incident #2: Seeing the Future 181

Reflection 182

Run a GQM Workshop 182

Workshop Summary 182

Workshop Steps 184

Facilitation Guidelines and Hints 185

Conclusion 186

Index 189

From the B&N Reads Blog

Customer Reviews