SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
Leverage software architecture as an effective tool for product development and build better software faster.
Effective Software Architecture is the essential handbook for making software architecture an effective practice within product development organizations and processes while putting whole software teams on the same page. Industry elite Oliver Goldman provides a comprehensive perspective on the set of real-world skills and practices this work requires: a predictable, repeatable design process; the ability to make decisions expediently and effectively; a comprehensive and consistent communication strategy; tools that promote efficiency; and a team that is greater than the sum of its parts.
Goldman's engaging prose articulates why software architecture is essential to building great software products, release after release. Rather than focusing on a specific architectural style or technology, this book's goal is to make software architects better at managing change, design, decision making, and team communication while helping software product managers, program managers, UX designers, and other team members understand how architecture functions within the software development process. Goldman's work is essential to helping the whole team achieve success.
Effective Software Architecture is a guide for making software architecture an effective tool for product development.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Acknowledgments xi
About the Author xii
Introduction xiii
Chapter 1: Software Architecture 1
Fundamental Organization 2
Of a System 4
Embodied in Its Components 5
Their Relationships to Each Other 7
Their Relationships to the Environment 9
Principles Governing Its Design 11
And Evolution 14
Summary 16
Chapter 2: Context 17
Concepts 17
Dependability 19
Architecturally Significant Requirements 21
Product Families 23
One Product, Multiple Platforms 24
Product Lines 25
Product Suites 27
Cross-Platform Platforms 28
Building Platforms 30
Standards 32
Summary 34
Chapter 3: Change 35
Stages of Change 36
Types of Change 37
Product-Driven Change 38
Technology-Driven Change 41
Simplicity 43
Investment Mindset 46
Incremental Delivery 50
Architectural Evolution 52
Summary 55
Chapter 4: Process 57
Document the System 58
Work Toward a Vision 61
Write Change Proposals 62
Maintain a Backlog 64
Consider Alternatives 66
Not Doing Things 70
Urgent versus Important 70
Redocument the System 71
Summary 72
Chapter 5: Design 75
How Architecture Accelerates Design 76
How Design Forces Architectural Evolution 79
Decomposition 81
Composition 82
Composition and Platforms 84
Incrementalism 85
Parallelism 86
Organizational Structure 87
Work in the Open 88
Giving Up 91
Done 92
Summary 93
Chapter 6: Decisions 95
Will More Information Help? 96
Whats Happening in the Meantime? 98
How Many Decisions Are in Play? 99
Whats the Cost of Not Doing It? 100
Can I Live with This Change? 102
What Is the Cost of Getting This Wrong? 104
How Much More Certain Can I Be? 105
Is This My Decision to Make? 106
Am I Aligned? 108
Can I Document It? 109
Summary 110
Chapter 7: Practices 113
Backlog 114
Catalogs 118
Templates 119
Reviews 122
Status 125
Velocity 127
Thinking 130
Summary 132
Chapter 8: Communication 133
Mental Models 134
Writing 136
Talking 139
Information Architecture 142
Naming Things 147
Dictionaries 150
Listening 152
Summary 154
Chapter 9: The Architecture Team 157
Specialization 158
Structure 160
Leadership 165
Responsibility 166
Talent 169
Diversity 170
Culture 171
Gathering 173
Seminars and Summits 174
Summary 175
Chapter 10: The Product Team 177
Working with Development Methodologies 178
Working with Product Management 180
Helping Out 184
Other Outcomes 186
Setting Boundaries 187
Working with User Experience 188
Working with Program Management 190
Working with Engineering 192
Following Through 195
Working with Testing 197
Working with Operations 200
Summary 203
Conclusion 205
References 211
Index 213