Beyond Software Architecture Creating and Sustaining Winning Solutions

by
Edition: 1st
Format: Paperback
Pub. Date: 2003-01-30
Publisher(s): Addison-Wesley Professional
List Price: $59.99

Rent Book

Select for Price
There was a problem. Please try again later.

New Book

We're Sorry
Sold Out

Used Book

We're Sorry
Sold Out

eBook

We're Sorry
Not Available

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Praise for "Beyond Software Architecture "Luke Hohmann is that rare software technologist who views software development from the viewpoint of the end user. He passionately believes that one hour spent with an end user is worth many hours making software architectural choices or days documenting perceived user requirements. Most of what is written about software development focuses on methods used to design and develop robust software. Luke's latest effort, "Beyond Software Architecture, illuminates the more mundane aspects of creating true business solutions by supporting the user throughout the lifecycle of the software product. By concerning himself with creating business value, Luke tightens the connection between a software application and the business function it performs." Bruce Bourbon General Partner, Telos Venture Partners "There are two kinds of people that read the Dilbert comic strip: folks that take a moment to marvel at how accurately it reflects life at their company before moving on to the next comic strip, and folks that think Dilbert is an amusing reminder that high tech companies can and should be better than Dilbert's world. Anyone in the first group should stick to reading comics. This book is for people in the latter group." --Tony Navarrete Vice President, Diamondhead Ventures "Luke brings a proven methodology to the challenge of software development. In "Beyond Software Architecture, Luke provides practical and proven techniques that all development executives can employ to improve the productivity of their software organization." --G. Bradford Solso CEO, Taviz Technology ""Beyond Software Architecture is the first book I have readwhich contains an insider's perspective of both the business and technical facets of software architecture. This is a great book to get marketers and software managers on the same page!" Damon Schechter CEO, LOC G

Author Biography

Luke Hohmann is an independent consultant

Table of Contents

Forewordp. xxi
Forewordp. xxiii
Prefacep. xxv
Software Architecturep. 1
Defining Software Architecturep. 1
Alternative Thoughts on Software Architecturep. 2
Subsystems Are Designed to Manage Dependenciesp. 2
Subsystems Are Designed According to Human Motivations and Desiresp. 2
Give in to Great Architecturesp. 3
Beauty Is in the Eye of the Beholder!p. 4
Why Software Architecture Mattersp. 4
Longevityp. 4
Stabilityp. 4
Degree and Nature of Changep. 5
Profitabilityp. 5
Social Structurep. 5
Boundaries Definedp. 7
Sustainable, Unfair Advantagep. 7
Creating an Architecturep. 7
Patterns and Architecturep. 9
Architectural Evolution and Maturation: Features versus Capabilitiesp. 9
Architectural Care and Feedingp. 16
Technological Currencyp. 16
Technological Debtp. 16
Known Bugsp. 17
License Compliancep. 17
Principles First, Second, and Thirdp. 17
Encapsulationp. 18
Interfacesp. 18
Loose Couplingp. 18
Appropriate Granularityp. 19
High Cohesionp. 19
Parameterizationp. 19
Deferralp. 19
Creating Architectural Understandingp. 20
The Teamp. 21
Chapter Summaryp. 22
Check Thisp. 23
Try Thisp. 23
Product Development Primerp. 25
What Is Product Management?p. 25
Why Product Management Mattersp. 26
Product Development Processes: Creating Release 1.0p. 26
Concept Proposalp. 28
Product Proposal/Business Planp. 28
Development Planp. 28
Developmentp. 30
Final Quality Assurancep. 30
Prelaunchp. 32
Launchp. 33
It Isn't Like Thatp. 33
It Is a Waterfall Process and Those Don't Workp. 33
It Presents All Stages as If They Were of Equal Importancep. 33
It Doesn't Detail Any Timep. 34
Where Is the Iteration?p. 34
It Doesn't Prescribe a Development Processp. 35
It Doesn't Identify the Level of Collaboration Between Groups within Stagesp. 35
The Business Planp. 35
Product Development Processes: Creating Release n.n.np. 37
Augmenting the Product Development Processp. 37
Successive Freezingp. 38
Change Management Protocolsp. 38
Recycle Binp. 40
Crucial Product Management Conceptsp. 40
The Four Ps of Marketingp. 40
Total Available Market, Total Addressable Market, and Market Segmentationp. 41
The S-Shaped Curve of Adoptionp. 42
The Whole Productp. 44
Technical versus Market Superiorityp. 45
Position and Positioningp. 45
Brandp. 47
The Main Messagep. 47
Chapter Summaryp. 48
Check Thisp. 49
Try Thisp. 49
The Difference between Marketecture and Tarchitecturep. 51
Who Is Responsible for What?p. 51
Early Forces in Solution Developmentp. 53
Creating Results in the Short Run while Working in the Long Runp. 57
Projecting the Futurep. 58
Harnessing Feedbackp. 59
Generating Clarityp. 60
Working in Unisonp. 62
Reaching Agreementsp. 63
Making Data Availablep. 63
Context Diagrams and Target Productsp. 64
Chapter Summaryp. 65
Check Thisp. 65
Try Thisp. 66
Business and License Model Symbiosisp. 67
Common Software Business Modelsp. 69
Time-Based Access or Usagep. 71
Transactionp. 74
Meteringp. 76
Hardwarep. 78
Servicesp. 79
Revenue Obtained/Costs Savedp. 79
Rights Associated with Business Modelsp. 81
Tarchitectural Support for the Business Modelp. 82
General Issuesp. 83
Time-Based Access or Usagep. 84
Transactionp. 85
Meteringp. 86
Hardwarep. 87
Enforcing Licensing Modelsp. 87
The Honor Systemp. 88
Home-Grown License Managersp. 88
Third-Party or Professional License Managersp. 89
The Clientp. 89
Market Maturity Influences on the Business Modelp. 93
Choosing a Business Modelp. 93
Chapter Summaryp. 94
Check Thisp. 95
Try Thisp. 95
Technology In-Licensingp. 97
Licensing Risks/Rewardsp. 98
Contracts--Where the Action Isp. 101
Contract Basicsp. 101
License Termsp. 102
When Business Models Collide, Negotiations Ensuep. 106
Honoring License Agreementsp. 107
Managing In-Licensed Technologyp. 108
Open-Source Licensingp. 108
License Feesp. 109
Licensing Economicsp. 111
Chapter Summaryp. 112
Check Thisp. 113
Try Thisp. 113
Portabilityp. 115
The Perceived Advantages of Portabilityp. 115
The Business Case for Portabilityp. 116
Creating Portable Applicationsp. 119
Use an Interpreted Languagep. 119
Use Standards-Based Persistent Storagep. 120
Make Business Logic Portablep. 120
Closer to the User Means Less Portabilityp. 120
Use XML for Standardized, Interoperable Communications between Subsystemsp. 120
Avoid Hiding The Power of a Specific Platform in the Name of Portabilityp. 121
The Matrix of Painp. 121
Remove Configurationsp. 122
Rank-Order Configurationsp. 123
Make the Final Cutp. 123
Beware the Promises You Makep. 126
Chapter Summaryp. 126
Check Thisp. 127
Try Thisp. 127
Deployment Architecturep. 129
Deployment Choicesp. 130
Customer Sitep. 130
Application Service Providerp. 130
Managed Service Providerp. 130
Transactional (Web Service)p. 131
Customer Influences on Deployment Architecturesp. 132
Control and Integrationp. 132
Data Security/Privacy and Peak Loadsp. 133
Costs and Vendor Confidencep. 133
Customer Skills and Experiences and Geographic Distributionp. 134
Corporate Influences on Deployment Architecturep. 136
Sales Cyclep. 136
Infrastructure Investmentp. 136
Cash Flowp. 137
Flexibilityp. 137
Geographic Distributionp. 137
Service, Not Pricep. 138
Choosing a Software Deployment Architecturep. 138
Deployment Architectures and the Distribution of Workp. 138
The Information Appliancep. 140
Deployment Choice Influences on Software Architecturep. 140
Flexible, Parameterized, or No Integration Optionsp. 141
Upgrade Policiesp. 141
Data Protection and Accessp. 141
Migration Optionsp. 141
The Future of Consumer Softwarep. 142
Chapter Summaryp. 142
Check Thisp. 143
Try Thisp. 143
Integration and Extensionp. 145
Customer Control--The Driving Forcep. 145
Motivations for Integration/Extensionp. 145
Layered Business Architectures: Logical Structuresp. 147
The User Interface Layerp. 147
The Services Layerp. 149
The Domain Model Layerp. 149
The Persistent Data Layerp. 150
Variations on a Themep. 151
Creating Layered Business Architecturesp. 151
Integration and Extension at the Business Logic Layersp. 154
Technologies and Locus of Controlp. 155
Integration through APIsp. 155
Extension through Registrationp. 158
Integration and Extension of Persistent Datap. 159
Viewsp. 159
User Fieldsp. 160
Hook Tablesp. 161
Spreadsheet Pivot Tablesp. 162
Extract, Transform, and Load Scriptsp. 162
Tell Them What's Going Onp. 163
Business Ramificationsp. 163
Professional Servicesp. 164
Training Programsp. 165
Certificationp. 166
User Communityp. 167
License Agreementsp. 168
Managing APIs Over Multiple Releasesp. 169
Techniquesp. 170
Chapter Summaryp. 170
Check Thisp. 171
Try Thisp. 172
Brand and Brand Elementsp. 173
Brand Elementsp. 173
Namesp. 173
Graphics, Slogans, and Other Brand Elementsp. 177
When to Use the Trademark Symbolp. 177
Managing In-License Brandsp. 178
Brand Element Customizationsp. 179
Changing Brand Elementsp. 179
Product Areas to Changep. 180
QA and Changep. 181
Chapter Summaryp. 181
Check Thisp. 181
Try Thisp. 182
Usabilityp. 183
Usability Is about Moneyp. 183
Mental Models, Metaphors, and Usabilityp. 185
Tarchitectural Influences on User Interface Designp. 187
Areas of Influencep. 187
The Need for Speedp. 193
Let's Be Clear on What We're Talking Aboutp. 193
What a Marketect Really Wants with Respect to Performancep. 195
Responding to the Userp. 197
Performance And Tarchitectural Impactp. 198
Chapter Summaryp. 201
Check Thisp. 201
Try Thisp. 202
Installationp. 203
The Out of Box Experiencep. 203
Ouch! That Might Hurtp. 205
Customer Fearsp. 205
Installation and Architecturep. 206
Forces and Choicesp. 206
How to Installp. 209
Installation Data Collection and Precondition Verificationp. 209
Installationp. 210
Postinstallation Confirmationp. 212
Finishing Touchesp. 212
They Don't Read the Manualp. 212
Test the Install and Uninstallp. 213
Chapter Summaryp. 214
Check Thisp. 214
Try Thisp. 215
Upgradep. 217
Like Installation, Only Worsep. 217
Upgrade Fearsp. 217
Making Upgrades Less Painfulp. 221
Choices for Painless Upgradesp. 221
Market Maturity and Upgradesp. 224
Chapter Summaryp. 225
Check Thisp. 225
Try Thisp. 225
Configurationp. 227
Configurability--An Element of Usabilityp. 227
The System Contextp. 228
Contextual Informationp. 228
Initialization versus Executionp. 230
Setting the Valuep. 230
Setting the Right Valuep. 231
Configuration Parameter Heuristicsp. 232
Chapter Summaryp. 233
Check Thisp. 234
Try Thisp. 234
Logsp. 235
I Want to Know What's Happeningp. 236
Not Just the Factsp. 237
Log Format and Managementp. 239
Log Formatp. 239
Log Managementp. 241
Logging Standards and Librariesp. 242
Postprocessing Log Datap. 243
Logging Servicesp. 243
Chapter Summaryp. 244
Check Thisp. 245
Try Thisp. 245
Release Managementp. 247
Yes, You Really Need Thisp. 247
Establishing a Baselinep. 248
Release Managementp. 249
What You're Releasingp. 249
Who You're Targetingp. 250
Why They Want Itp. 250
Release Identificationp. 251
Full or Complete Releasesp. 251
Partial Releasesp. 252
Patch Releasesp. 253
Variationsp. 255
SKUs and Serial Numbersp. 256
SKU Managementp. 256
Serial Numbers, Registration, and Activationp. 258
Release Management Influences on Tarchitecturep. 259
Chapter Summaryp. 261
Check Thisp. 261
Try Thisp. 262
Securityp. 263
Viruses, Hackers, and Piratesp. 264
Managing Riskp. 265
See No Evil, Speak No Evilp. 265
Digital Identity Managementp. 266
Authorization--Defining Who Can Do Whatp. 266
Authentication--Proof of Identityp. 266
Transaction Securityp. 269
Auditability--Proof of Activityp. 269
Integrity--Preventing Tampering and Alteration of Datap. 269
Confidentiality--Keeping Data Away from Those Not Entitled to Itp. 270
Accountability--Holding People Responsible for Their Actionsp. 270
Software Securityp. 271
Software Security Techniquesp. 271
Software Security Costs/Benefitsp. 273
Information Securityp. 273
Secret Algorithms or Secret Keys?p. 274
Back Doorsp. 275
Security and Marketecturep. 276
Areas of Interactionp. 276
Chapter Summaryp. 278
Check Thisp. 279
Try Thisp. 280
Release Checklistp. 281
A Pattern Language for Strategic Product Managementp. 285
Applying The Patternsp. 286
Capturing the Resultp. 287
Market Mapp. 288
Market Events/Market Rhythmsp. 289
Feature/Benefit Mapp. 291
The Tarchitecture Roadmapp. 292
Referencesp. 295
Bibliographyp. 297
About the Authorp. 301
Indexp. 303
Table of Contents provided by Syndetics. All Rights Reserved.

Excerpts

Many excellent books have been written on software architecture. These books, which, among other things, define, classify, and describe software architectures, define notations for representing and communicating architectural choices, and provide guidance on making good architectural decisions, have enduring value. Unfortunately, while these books may help you build a successful architecture, they fall short of the goal of helping you create a winning solution. To create a winning solution, you need to move beyond subsystems and interfaces, beyond architectural patterns such as Front Controller or Pipes and Filters, and beyond creating third-normal-form relational databases. You need to move beyond software architecture and move toward understanding and embracing the business issues that must be resolved in order to create a winning solution. An example of one such business issue concerns technical support. It is inevitable that some of your customers are going to have a problem with your software. The choices you''ve made long ago in such areas as log file design, how the system is integrated with other systems, how the system is configured, or how the system is upgraded will determine how well you can solve their problems. Beyond Software Architecturehelps you move beyond software architecture and toward creating winning solutions by discussing a wide range of business issues and their interrelationship with architectural choices. This book presents a unique perspective that is motivated and informed by my experiences in creating single-user programs costing less than $50; software systems used in academic research; utilities to diagnose and fix problems associated with internally developed systems; and distributed, enterprise-class platforms costing millions of dollars. Along the way, I''ve played a variety of roles. I''ve been an individual contributor, a direct manager, and a senior member of the corporate executive staff. At various times I''ve either worked in or led engineering, product marketing and management, quality assurance, technical publications, and first- and second-line support organizations. I''ve managed teams and projects across multiple cities and continents. The common thread tying all of this software together is that it was created to provide value to some person. Research software, for example, serves the needs of the researchers who are trying to understand some phenomena. Enterprise application software, dealing with everything from customers to supply-chain management, is designed to serve the needs of a well-defined set of users and the businesses that license it in a sustainably profitable manner. Similar comments apply to every other kind of software, from games to personal contact managers, inventory management systems to graphic design tools. The issues identified and discussed in this book affect every kind of software. Their presentation and discussion occur most often in the context of enterprise application software, where I have spent most of my professional career. While they have no universally accepted definition, enterprise applications typically meet one or more of the following characteristics: They are designed to support the needs of a business, at either a departmental or larger organizational unit. They are relatively expensive to build or license ($50,000-$5,000,000 and up). They have complex deployment and operational requirements. They can be operated independently, but the needs of the business are often best served when they are integrated with other enterprise applications. Even if you''re not creating an enterprise application, you will find this book useful. Creating sustainable software solutions--meeting customer needs over a long period of time through multiple releases--is a challenging, enjoyable, and rewarding endeavor, certainly not limited to the domain of enterprise applications! Although I will often refer to software architecture and discuss technical matters, my discussions won''t focus on such things as the best ways to diagram or document your architecture or the deeper design principles associated with creating robust, distributed Web-based component systems. As I said earlier, there are plenty of books that address these topics--in fact, almost too many, with the unfortunate side-effect that many people become so focused on technical details that they lose sight of the business value they''re trying to provide. Instead of concentrating on purely technical choices, Beyond Software Architecturehelps you create and sustain truly winning solutions by focusing on the practical, nuts-and-bolts choices that must be made by the development team in a wide variety of areas. I have found that focusing on practical matters, such as how you should identify a release or integrate branding elements into your solution, reduces the often artificial barriers that can exist between developers and the business and marketing people with whom they work. These barriers prevent both groups from creating winning solutions. I cringe when engineers take only a technology view without due consideration of business issues, or when marketing people make "get-me-this-feature" demands without due consideration of their underlying technical ramifications. When either side takes a position without due consideration of its impact, the likelihood of creating and sustaining a winning solution drops dramatically. What is especially troubling is that these arguments seem to be made in support of the idea that technical issues can somehow be separated from business issues, or that business issues can somehow be separated from technical issues. At best this is simply wrong; at worst it can be a recipe for disaster. Developers are routinely asked to endure the hardships of design extremes, such as a low-memory footprint, in order to reduce total system cost. Entire companies are started to compete in existing markets because investors are convinced that one or more technological breakthroughs will provide the competitive advantage necessary for success. Not surprisingly, investors are even more eager to invest when the technological breakthrough is accompanied by a similar breakthrough in the business model being offered to customers. Managing the interrelationship between technology and business will be a recurring theme throughout this book. Handle only the former and you might have an interesting technology or, perhaps, an elegant system,--but one that ultimately withers because no one is using it. Handle only the latter and you''ll have a paper solution that excites lots of people and may even get you funding--but one that doesn''t deliver any sustainable value. Handle both and you''ll have a winning solution. While creating new technologies or elegant systems can be fun, and designing sophisticated new software applications or business models can be exciting, both pale in comparison to the deep satisfaction that comes from creating winning solutions and sustaining them. 0201775948P01212003

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.