Software Architecture & Decision Making: Leveraging Leadership Technology & Product Management to Build Great Products
Publisher,Addison-Wesley Professional
Publication Date,
Format, Paperback
Weight, 408 g
No. of Pages, 208
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.