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

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

Christian Ciceri, Dave Farley, Neal Ford, Andrew Harmel-Law, Michael Keeling, 2022

Inhaltsverzeichnis des Buches

  • Preface
  • What Will You Learn?
  • Who This Book Is For
  • Conventions Used in This Book
  • O’Reilly Online Learning
  • How to Contact Us
  • Acknowledgments
  • Christian Ciceri
  • Dave Farley
  • Neal Ford
  • Andrew Harmel-Law
  • Michael Keeling
  • Carola Lilienthal
  • João Rosa
  • Alexander von Zitzewitz
  • Rene Weiss
  • Eoin Woods
  • 1. Four Key Metrics Unleashed
  • Definition and Instrumentation
  • Refactoring Your Mental Model
  • Pipelines as Your First Port of Call
  • Locating Your Instrumentation Points
  • Capture and Calculation
  • Display and Understanding
  • Target Audience
  • Visualization
  • Front Page
  • Discussions and Understanding
  • Ownership and Improvement
  • Conclusion
  • 2. The Fitness Function Testing Pyramid: An Analogy for Architectural Tests and Metrics
  • Fitness Functions and Metrics
  • Fitness Functions: Test Coverage
  • Fitness Functions: Integration Tests with Network Latency
  • Introduction to Fitness Function Categories
  • Mandatory Fitness Function Categories
  • Optional Fitness Function Categories
  • Fitness Function Categories: Catalog Overview
  • The Testing Pyramid
  • The Fitness Function Testing Pyramid
  • The Top Layer
  • The Middle Layer
  • The Bottom Layer
  • Examples and Their Full Categorization
  • Fully Categorizing Top-Layer Examples
  • Developing Your Fitness Functions and Metrics
  • Conclusion
  • 3. Evolutionary Architecture: Guiding Architecture with Testability and Deployability
  • The Importance of Learning and Discovery
  • The Tools of Sustainable Change
  • Testability: Creating High-Quality Systems
  • Deployability: Scaling Development of Our Systems
  • Conclusion
  • 4. Improve Your Architecture with the Modularity Maturity Index
  • Technical Debt
  • Origination of Technical Debt
  • Assessment with the MMI
  • Modularity
  • Hierarchy
  • Pattern Consistency
  • Calculating the MMI
  • Architecture Review to Determine the MMI
  • Conclusion
  • 5. Private Builds and Metrics: Tools for Surviving DevOps Transitions
  • Key Terms
  • CI/CD
  • DevOps
  • The “Ownership Shift”
  • Empowering the Local Environment Again
  • The Private Build
  • Case Study: The Unstable Trunk
  • Bug A1
  • Bug A2
  • Bug A3
  • Bug A4
  • Case Study: The Blocked Consultant
  • Metrics
  • Time to Feedback
  • Evitable Integration Issues in the Deployed Application per Iteration
  • Time Spent Restoring Trunk Stability per Iteration
  • The Cost of Private Builds
  • Metrics in Practice
  • High Time to Feedback, High Evitable Integration Issues, Low Time to Trunk Stability
  • Low Time to Feedback, High Evitable Integration Issues, Low Time to Trunk Stability
  • High Time to Feedback, Low Evitable Integration Issues, Low Time to Trunk Stability
  • Low Evitable Integration Issues and High Time to Trunk Stability
  • Conclusion
  • 6. Scaling an Organization: The Central Role of Software Architecture
  • YourFinFreedom Breaks the Monolith
  • Implementing a Distributed Big Ball of Mud
  • Seeking Direction
  • From Best Effort to Intentional Effort
  • Increasing Software Architecture Intentionality, Guided by Metrics
  • Managing Expectations with Communication
  • Learning and Evolving the Architecture
  • And What About Anna?
  • Conclusion
  • 7. The Role of Measurement in Software Architecture
  • Adding Measurement to Software Architecture
  • Measurement Approaches
  • Runtime Measurement of Applications and Infrastructure
  • Software Analysis
  • Design Analysis
  • Estimates and Models
  • Fitness Functions
  • Measuring System Qualities
  • Performance
  • Scalability
  • Availability
  • Security
  • Getting Started
  • Hypothetical Case Study
  • Pitfalls
  • Conclusion
  • 8. Progressing from Metrics to Engineering
  • The Path to Fitness Functions
  • From Metrics to Engineering
  • Automation Operationalizes Metrics
  • Case Study: Coupling
  • Case Study: Zero-Day Security Check
  • Case Study: Fidelity Fitness Functions
  • Conclusion
  • 9. Using Software Metrics to Ensure Maintainability
  • The Case for Using Metrics
  • Entropy Kills Software
  • The Toxicity of Cyclic Dependencies
  • How Metrics Can Help
  • Why Are Metrics Not More Widely Used?
  • Tools to Gather Metrics
  • Useful Metrics
  • Metrics to Measure Coupling and Structural Erosion
  • Metrics to Measure Size and Complexity
  • Change History Metrics
  • Other Useful Metrics
  • Architectural Fitness Functions
  • How to Track Metrics over Time
  • A Few Golden Rules for Better Software
  • Conclusion
  • 10. Measure the Unknown with the Goal-Question-Metric Approach
  • The Goal-Question-Metric Approach
  • Create a GQM Tree
  • Prioritize Metrics and Devise a Data Collection Strategy
  • Case Study: The Team That Learned to See the Future
  • System Context
  • Incident #1: Too Many Requests to the Foo Service
  • Incident #2: Seeing the Future
  • Reflection
  • Run a GQM Workshop
  • Workshop Summary
  • Workshop Steps
  • Facilitation Guidelines and Hints
  • Conclusion
  • Index