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.
MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDF The popular standard, used most often with the free Adobe® 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.
Successfully managing the relationship between business and technology is a daunting task faced by all companies in the twenty-first century. Beyond Software Architecture is a practical guide to properly managing this mission-critical relationship. In our modern economy, every software decision can have a significant impact on business; conversely, most business decisions will influence a software application's viability. This book contains keen insights and useful lessons about creating winning software solutions in the context of a real-world business.
Software should be designed to deliver value to an organization, but all too often it brings turmoil instead. Powerful applications are available in the marketplace, but purchasing or licensing these technologies does not guarantee success. Winning solutions must be properly integrated into an organization's infrastructure.
Software expert Luke Hohmann teaches you the business ramifications of software-architecture decisions, and further instructs you on how to understand and embrace the business issues that must be resolved to achieve software success. Using this book as a roadmap, business managers and development teams can safely navigate the minefield of important decisions that they face on a regular basis. The resulting synergy between business and technology will allow you to create winning technology solutions, and ensure your organization's success--now and in the future.
Foreword by Martin Fowler.
Foreword by Guy Kawasaki.
1. Software Architecture.
Defining Software Architecture.
Alternative Thoughts on Software Architecture.
Subsystems Are Designed to Manage Dependencies.
Subsystems Are Designed According to Human Motivations and Desires.
Give in to Great Architectures.
Beauty Is in the Eye of the Beholder!
Why Software Architecture Matters.
Degree and Nature of Change
Sustainable, Unfair Advantage.
Creating an Architecture.
Patterns and Architecture.
Architectural Evolution and Maturation: Features versus Capabilities.
Architectural Care and Feeding.
Principles First, Second, and Third.
Creating Architectural Understanding.
What Is Product Management?
Why Product Management Matters.
Product Development Processes: Creating Release 1.0.
Product Proposal/Business Plan.
Final Quality Assurance.
It Isn't Like That.
It Is a Waterfall Process and Those Don't Work.
It Presents All Stages as If They Were of Equal Importance.
It Doesn't Detail Any Time.
Where Is the Iteration?
It Doesn't Prescribe a Development Process.
It Doesn't Identify the Level of Collaboration Between Groups within Stages.
The Business Plan.
Product Development Processes: Creating Release n.n.n.
Augmenting the Product Development Process.
Change Management Protocols.
Crucial Product Management Concepts.
The Four Ps of Marketing.
Total Available Market, Total Addressable Market, and Market @BHEADS = Segmentation.
The S-Shaped Curve of Adoption.
The Whole Product.
Technical versus Market Superiority.
Position and Positioning.
The Main Message.
Who Is Responsible for What?
Early Forces in Solution Development.
Creating Results in the Short Run while Working in the Long Run.
Projecting the Future.
Working in Unison.
Making Data Available.
Context Diagrams and Target Products.
Common Software Business Models.
Time-Based Access or Usage.
Revenue Obtained/Costs Saved.
Rights Associated with Business Models.
Tarchitectural Support for the Business Model.
Time-Based Access or Usage.
Enforcing Licensing Models.
The Honor System.
Home-Grown License Managers.
Third-Party or Professional License Managers.
Market Maturity Influences on the Business Model.
Choosing a Business Model.
Contracts—Where the Action Is.
When Business Models Collide, Negotiations Ensue.
Honoring License Agreements.
Managing In-Licensed Technology.
The Perceived Advantages of Portability.
The Business Case for Portability.
Creating Portable Applications.
Use an Interpreted Language.
Use Standards-Based Persistent Storage.
Make Business Logic Portable.
Closer to the User Means Less Portability.
Use XML for Standardized, Interoperable Communications between Subsystems.
Avoid Hiding The Power of a Specific Platform in the Name of Portability.
The Matrix of Pain.
Step 1: Remove Configurations.
Step 2: Rank-Order Configurations.
Step 3: Make the Final Cut.
Beware the Promises You Make.
Application Service Provider.
Managed Service Provider.
Transactional (Web Service).
Customer Influences on Deployment Architectures.
Control and Integration.
Data Security/Privacy and Peak Loads.
Costs and Vendor Confidence.
Customer Skills and Experiences and Geographic Distribution.
Corporate Influences on Deployment Architecture.
Service, Not Price.
Choosing a Software Deployment Architecture.
Deployment Architectures and the Distribution of Work.
The Information Appliance.
Deployment Choice Influences on Software Architecture.
Flexible, Parameterized, or No Integration Options.
Data Protection and Access.
The Future of Consumer Software.
Customer Control—The Driving Force.
Motivations for Integration/Extension.
Layered Business Architectures: Logical Structures.
The User Interface Layer.
The Services Layer.
The Domain Model Layer.
The Persistent Data Layer.
Variations on a Theme.
Creating Layered Business Architectures.
Integration and Extension at the Business Logic Layers.
Technologies and Locus of Control.
Integration through APIs.
Extension through Registration.
Integration and Extension of Persistent Data.
Spreadsheet Pivot Tables.
Extract, Transform, and Load Scripts.
Tell Them What's Going On.
Managing APIs Over Multiple Releases.
Graphics, Slogans, and Other Brand Elements.
When to Use the Trademark (™) Symbol.
Managing In-License Brands.
Brand Element Customizations.
Changing Brand Elements.
Product Areas to Change.
QA and Change.
Usability Is about Money.
Mental Models, Metaphors, and Usability.
Tarchitectural Influences on User Interface Design.
Areas of Influence.
The Need for Speed.
Let's Be Clear on What We're Talking About.
What a Marketect Really Wants with Respect to Performance.
Responding to the User.
Performance And Tarchitectural Impact.
The Out of Box Experience.
Ouch! That Might Hurt.
Installation and Architecture.
Forces and Choices.
How to Install.
Installation Data Collection and Precondition Verification.
They Don't Read the Manual.
Test the Install and Uninstall.
Like Installation, Only Worse.
Making Upgrades Less Painful.
Choices for Painless Upgrades.
Market Maturity and Upgrades.
Configurability—An Element of Usability.
The System Context.
Initialization versus Execution.
Setting the Value.
Setting the Right Value.
Configuration Parameter Heuristics.
I Want to Know What's Happening.
Not Just the Facts.
Log Format and Management.
Logging Standards and Libraries.
Postprocessing Log Data.
Yes, You Really Need This.
Establishing a Baseline.
What You're Releasing.
Who You're Targeting.
Why They Want It.
Full or Complete Releases
SKUs and Serial Numbers.
Serial Numbers, Registration, and Activation.
Release Management Influences on Tarchitecture.
Viruses, Hackers, and Pirates.
See No Evil, Speak No Evil.
Digital Identity Management.
Authorization—Defining Who Can Do What.
Authentication—Proof of Identity.
Auditability—Proof of Activity.
Integrity—Preventing Tampering and Alteration of Data.
Confidentiality—Keeping Data Away from Those Not Entitled to It.
Accountability—Holding People Responsible for Their Actions.
Software Security Techniques.
Software Security Costs/Benefits.
Secret Algorithms or Secret Keys?
Security and Marketecture.
Areas of Interaction.
Applying The Patterns.
Capturing the Result.
Market Events/Market Rhythms.
The Tarchitecture Roadmap.