BUILDING EVOLUTIONARY ARCHITECTURES : support constant change
- Author
- FORD, NEAL. PARSONS, REBECCA. KUA, PATRICK
- Published
- [Place of publication not identified] : O'REILLY MEDIA, INC, USA, 2017.
- Contents
- Machine generated contents note: 1.Software Architecture -- Evolutionary Architecture -- How Is Long-term Planning Possible When Everything Changes All the Time? -- Once I've Built an Architecture, How Can I Prevent It from Gradually Degrading Over Time? -- Incremental Change -- Guided Change -- Multiple Architectural Dimensions -- Conway's Law -- Why Evolutionary? -- Summary -- 2.Fitness Functions -- What is a Fitness Function? -- Categories -- Atomic Versus Holistic -- Triggered Versus Continual -- Static Versus Dynamic -- Automated Versus Manual -- Temporal -- Intentional Over Emergent -- Domain-specific -- Identify Fitness Functions Early -- 3.Engineering Incremental Change -- Building Blocks -- Testable -- Deployment Pipelines -- Combining Fitness Function Categories -- Case Study: Architectural Restructuring while Deploying 60 Times/Day -- Conflicting Goals -- Case Study: Adding Fitness Functions to PenultimateWidgets' Invoicing Service -- Hypothesis- and Data-Driven Development -- Case Study: What to Port? -- 4.Architectural Coupling -- Modularity -- Architectural Quanta and Granularity -- Evolvability of Architectural Styles -- Big Ball of Mud -- Monoliths -- Event-Driven Architectures -- Service-Oriented Architectures -- "Serverless" Architectures -- Controlling Quantum Size -- Case Study: Guarding Against Component Cycles -- 5.Evolutionary Data -- Evolutionary Database Design -- Evolving Schemas -- Shared Database Integration -- Inappropriate Data Coupling -- Two-Phase Commit Transactions -- Age and Quality of Data -- Case Study: Evolving PenultimateWidgets' Routing -- 6.Building Evolvable Architectures -- Mechanics -- 1.Identify Dimensions Affected by Evolution -- 2.Define Fitness Function(s) for Each Dimension -- 3.Use Deployment Pipelines to Automate Fitness Functions -- Greenfield Projects -- Retrofitting Existing Architectures -- Appropriate Coupling and Cohesion -- Engineering Practices -- Fitness Functions -- COTS Implications -- Migrating Architectures -- Migration Steps -- Evolving Module Interactions -- Guidelines for Building Evolutionary Architectures -- Remove Needless Variability -- Make Decisions Reversible -- Prefer Evolvable over Predictable -- Build Anticorruption Layers -- Case Study: Service Templates -- Build Sacrificial Architectures -- Mitigate External Change -- Updating Libraries Versus Frameworks -- Prefer Continuous Delivery to Snapshots -- Version Services Internally -- Case Study: Evolving PenultimateWidgets' Ratings -- 7.Evolutionary Architecture Pitfalls and Antipatterns -- Technical Architecture -- Antipattern: Vendor King -- Pitfall: Leaky Abstractions -- Antipattern: Last 10% Trap -- Antipattern: Code Reuse Abuse -- Case Study: Reuse at PenultimateWidgets -- Pitfall: Resume-Driven Development -- Incremental Change -- Antipattern: Inappropriate Governance -- Case Study: Goldilocks Governance at PenultimateWidgets -- Pitfall: Lack of Speed to Release -- Business Concerns -- Pitfall: Product Customization -- Antipattern: Reporting -- Pitfall: Planning Horizons -- 8.Putting Evolutionary Architecture into Practice -- Organizational Factors -- Cross-Functional Teams -- Organized Around Business Capabilities -- Product over Project -- Dealing with External Change -- Connections Between Team Members -- Team Coupling Characteristics -- Culture -- Culture of Experimentation -- CFO and Budgeting -- Building Enterprise Fitness Functions -- Case Study: PenultimateWidgets as a Platform -- Where Do You Start? -- Low-Hanging Fruit -- Highest-Value -- Testing -- Infrastructure -- Case Study: Enterprise Architecture at PenultimateWidgets -- Future State? -- Fitness Functions Using AI -- Generative Testing -- Why (or Why Not)? -- Why Should a Company Decide to Build an Evolutionary Architecture? -- Case Study: Selective Scale at PenultimateWidgets -- Why Would a Company Choose Not to Build an Evolutionary Architecture? -- Convincing Others -- Case Study: Consulting Judo -- The Business Case -- "The Future Is Already Here..." -- Moving Fast Without Breaking Things -- Less Risk -- New Capabilities -- Building Evolutionary Architectures.
- ISBN
- 1491986360
9781491986363
View MARC record | catkey: 21834147