Software Architecture and Decision-Making: Leveraging Leadership, Technology, and Product Management to Build Great Products

Author:   Srinath Perera
Publisher:   Pearson Education (US)
ISBN:  

9780138249731


Pages:   208
Publication Date:   02 January 2024
Format:   Paperback
Availability:   In stock   Availability explained
We have confirmation that this item is in stock with the supplier. It will be ordered in for you and dispatched immediately.

Our Price $105.57 Quantity:  
Add to Cart

Share |

Software Architecture and Decision-Making: Leveraging Leadership, Technology, and Product Management to Build Great Products


Add your own review!

Overview

Leverage leadership knowledge to make better software architecture decisions. Think deeply but implement slowly.   The overarching goal of software systems (hence, for software architecture) is to build systems that meet quality standards and that provide the highest return on investment (ROI) in the long run or within a defined period of time.   A great product requires a combination of technology, leadership, and product management (including UX). Leadership is primarily about managing uncertainty and making the right judgment. To build great products, technical leaders need to combine technology, leadership, and product management knowledge, and make the right decisions. Many technical mistakes come from the gap between knowledge about these three items and judgment.   In Software Architecture and Decision-Making, Srinath Perera explains principles and concepts that software architects must understand deeply and how to employ those principles to manage uncertainty. The questions and principles discussed in this book help manage uncertainty while building software architecture and provide a framework for making decisions. This book is for all technical leaders in the software industry who make holistic judgments about the systems they build and for future leaders learning the craft. Understand the importance of strong decision making with examples from great technical leaders such as the Wright brothers and Kelly Johnson Leverage five key questions and seven important principles to understand uncertainties during the design process and make strategic architectural decisions Approach the design systematically, first at the macro level and then the individual service level   This definitive guide explains principles and concepts--technical and non-technical alike--that software architects, senior software engineers, and technical leads must understand to manage the inevitable uncertainty involved in building software systems and to drive success of the products for which they are responsible.   Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Full Product Details

Author:   Srinath Perera
Publisher:   Pearson Education (US)
Imprint:   Addison Wesley
Dimensions:   Width: 18.80cm , Height: 1.10cm , Length: 23.20cm
Weight:   0.408kg
ISBN:  

9780138249731


ISBN 10:   0138249733
Pages:   208
Publication Date:   02 January 2024
Audience:   Professional and scholarly ,  Professional & Vocational
Format:   Paperback
Publisher's Status:   Active
Availability:   In stock   Availability explained
We have confirmation that this item is in stock with the supplier. It will be ordered in for you and dispatched immediately.

Table of Contents

Chapter 1: Introduction to Software Leadership   1 Role of Judgment   1 Goal of This Book   3 Part I: Introduction   6 Part II: Essential Background   7 Part III: System Design   7 Part IV: Putting Everything Together   8   Chapter 2: Understanding Systems, Design, and Architecture   9 What Is Software Architecture?    9 How to Design a System   11 Five Questions   12 Seven Principles: The Overarching Concepts   16 Designing for an Online Bookstore   24 Designing for the Cloud   27 Summary   29   Chapter 3: Mental Models for Understanding and Explaining System Performance   31 A Computer System   32 Models for Performance   33 Optimization Techniques   41 Intuitive Feel for Performance   46 Leadership Considerations   46 Summary   47   Chapter 4: Understanding User Experience (UX)    49 General UX Concepts for Architects   49 UX Design for Configurations   53 UX Design for APIs   54 UX Design for Extensions   56 Leadership Considerations   57 Summary   57   Chapter 5: Macro Architecture: Introduction   59 History of Macro Architecture   60 Modern Architectures   62 Macro Architectural Building Blocks   63 Leadership Considerations   66 Summary   68   Chapter 6: Macro Architecture: Coordination   69 Approach 1: Drive Flow from Client   69 Approach 2: Use Another Service   70 Approach 3: Use Centralized Middleware   71 Approach 4: Implement Choreography   71 Leadership Considerations   73 Summary   73   Chapter 7: Macro Architecture: Preserving Consistency of State   75 Why Transactions?    75 Why Do We Need to Go Beyond Transactions?    76 Going Beyond Transactions   77 Best Practices   80 Leadership Considerations   81 Summary   83   Chapter 8: Macro Architecture: Handling Security   85 User Management   86 Interaction Security   88 Storage, GDPR, and Other Regulations   96 Security Strategy and Advice   98 Leadership Considerations   101 Summary   103   Chapter 9: Macro Architecture: Handling High Availability and Scale   105 Adding High Availability   105 Understanding Scalability   109 Scaling for a Modern Architecture: Base Solution   110 Scaling: The Tools of Trade   111 Building Scalable Systems   113 Leadership Considerations   117 Summary   118   Chapter 10: Macro Architecture: Microservices Considerations   119 Decision 1: Handling Shared Database(s)    120 Decision 2: Securing Microservices   122 Decision 3: Coordinating Microservices    122 Decision 4: Avoiding Dependency Hell   122 Loosely Coupled, Repository-Based Teams as an Alternative to Microservices   125 Leadership Considerations   126 Summary   127   Chapter 11: Server Architectures   129 Writing a Service   129 Understanding Best Practices for Writing a Service   130 Understanding Advanced Techniques   132 Using These Techniques in Practice   143 Leadership Considerations   146 Summary   147   Chapter 12: Building Stable Systems   149 Why Do Systems Fail, and What Can We Do About Them?    149 How to Handle Known Errors   151 Common Bugs   159 How to Handle Unknown Errors   161 Graceful Degradation   163 Leadership Considerations   163 Summary   164   Chapter 13: Building and Evolving the Systems   165 Getting Your Hands Dirty   165 Communicating the Design   172 Evolving the System: How to Learn from Your Users and Improve the System   172 Leadership Considerations   175 Summary   176   Index   179

Reviews

Author Information

Srinath Perera has been an Apache open source developer for the last 20 years. He has played a major role in the architecture of Apache Axis2, Apache Airavata, WSO2 CEP (Siddhi), and WSO2 Choreo. He has designed two SOAP engines and helped build four. He is a committer (a developer who can commit to a code base) for Apache Axis, Axis2, Apache Geronimo, and Apache Airavata.   He joined WSO2 in 2009 after finishing his PhD. WSO2 products are used by many Fortune 500 companies such as airlines, banks, and governments. At WSO2, he has played an architecture review role for 10+ projects and 100+ releases. He reviewed hundreds of customer solution architectures and deployments and sat in on thousands of architecture reviews. He has published 40+ peer-reviewed research articles, which have been referenced by thousands of other research publications.

Tab Content 6

Author Website:  

Customer Reviews

Recent Reviews

No review item found!

Add your own review!

Countries Available

All regions
Latest Reading Guide

wl

Shopping Cart
Your cart is empty
Shopping cart
Mailing List