Table of Contents
Introduction xxiii 
Part 1 Software Architect Capability Model 1
 Chapter 1 Software Architect Capability Model 3
 Software Architect Capability Model: Benefits 4
 How Should Organizations Utilize the Software Architect Capability Model? 4
 Why Create a Personal Software Architect Capability Model? 5
 Rudimentary Guiding Principles 6
 Software Architect Capability Model Creation Process 6
 Requirements Drive Architecture Solutions 7
 Requirements Issued by Problem and Solution Domain Entities 7
 How Do the Problem and Solution Domains Collaborate? 7
 Important Facts to Remember 9
 Create a Software Architect Capability Model in Five Steps 9
 Step 1: Provide Requirements and Specifications 10
 Business Requirements 10
 Technical Specifications 11
 Ensure Clear Requirements 11
 Step 2: Identify Software Architecture Practices 12
 Establish Architecture Practices 12
 Step 3: Establish Software Architecture Disciplines 13
 Apply Architecture Disciplines to Architecture Practices 14
 Applying Disciplines to the Application Architecture Practice 14
 Applying Disciplines for the Data Architecture Practice 16
 Step 4: Add Software Architecture Deliverables 17
 About Software Architecture Deliverables 17
 Add the Deliverables Section 18
 Step 5: Quantify Skill Competencies 21
 Quantifying Architecture Skills 22
 Measuring the Application Architect Skill Levels 22
 Measuring Data Architect Skill Levels 24
 Skill Competency Patterns for Architects 25
 How Can Organizations Utilize the Skill Competency Pattern? 26
 How an Individual Can Utilize the Skill Competency Pattern 27
 Interview Questions 28
 Part 2 Software Architecture Career Planning 29
 Chapter 2 Types of Software Architects 31
 Business Needs for Technological Solutions 32
 Business Needs for Software Architecture: Strategic Collaboration 32
 How Does Software Architecture Respond to Business Needs? 33
 Business Needs for Software Architecture: Technological Mediation 33
 How Could Technological Mediation Efforts Be Utilized? 34
 Business Needs for Software Architecture: Technological Implementation 34
 How Does the Implementation of Software Products Meet Business Needs? 34
 Organizational Leading Software Architect Levels 35
 Ranking Leading Software Architects 35
 Collaboration Hierarchy of Leading Software Architects 36
 Level I: Enterprise Architect Responsibilities 38
 Enterprise Architect Summary of Responsibilities 38
 Enterprise Architect Responsibility Table 39
 Level II: Solution Architect Responsibilities 40
 Solution Architect Summary of Responsibilities 41
 Solution Architect Responsibility Table 42
 Level III: Application Architect Responsibilities 44
 Application Architect Summary of Responsibilities 44
 Application Architect Responsibilities Table 46
 Comparing Responsibilities of Leading Software Architects 48
 Types of Domain Software Architects 49
 Data Architect 49
 Data Architect Summary of Responsibilities 50
 Data Architect Responsibilities Table 51
 Cloud Architect 51
 Cloud Architect Summary of Responsibilities 54
 Cloud Architect Responsibilities Table 55
 Security Architect 57
 Security Architect Summary of Responsibilities 58
 Security Architect Responsibilities Table 60
 Business Architect 62
 Business Architect Summary of Responsibilities 62
 Business Architect Responsibilities Table 63
 Collaboration Between Leading Software Architects and Domain Software Architects 65
 Use Case I: Collaboration Between an Application Architect and a Data Architect 66
 Application Architect and Data Architect Collaboration Table 66
 Use Case II: Solution Architect and Security Architect 68
 Solution Architect and Security Architect Collaboration Table 68
 Use Case III: Business Architect and Enterprise Architect Collaboration 70
 Business Architect and Enterprise Architect Collaboration Table 70
 Chapter 3 Career Planning for Software Architects: A Winning Strategy 73
 Software Architecture Career Planning Process 74
 Career Planning Step 1: Conduct Self- Discovery 75
 Discovery of Technological and Social Talents 75
 Career Planning Self- Discovery Subjects 76
 Career Planning Step 2: Pursue Research 76
 Formal Education, Training, and Certification 77
 Employment Opportunities and Interviews 77
 Subjects of Research 77
 Career Planning Step 3: Devise an Approach 78
 Setting Software Architecture Career Goals 78
 Setting Software Architecture Career Milestones 80
 Decision- Making 81
 Action Planning 82
 Career Planning Step 4: Plan Career Execution 85
 Use Case I: A Software Architecture Career Execution Plan with Alternative Tasks 85
 Use Case II: Optimized Software Architecture Execution Plan 88
 Self- Discovery Process: The Six Ws 89
 The “Why” 90
 The “Who” 91
 The “What” 92
 Self- Discovery Questions for Software Architecture Candidates 93
 Self- Discovery Queries for Software Architects 93
 The “Where” 94
 The “When” 95
 The “How” 96
 “How” Self- Queries for Software Architecture Applicants 97
 “How” Self- Questions for Practicing Software Architects 97
 Carving a Software Architecture Career Path 98
 The 4D Software Architecture Career Perspectives 99
 Social- Driven Career Perspective 100
 Social- Driven Career Chart 100
 Carve Out a Social- Driven Career Chart 101
 Social- Driven Career Path 102
 Create a Social- Driven Career Path 102
 Technology- Driven Career Perspective 103
 Technology- Driven Career Chart 104
 Create a Technology- Driven Career Chart 105
 Technical- Driven Career Path 106
 Develop a Technical- Driven Career Path 106
 Leadership- Driven Career Perspective 107
 Leadership- Driven Career Chart 108
 Create a Leadership- Driven Career Chart 109
 Leadership- Driven Career Path 110
 Develop a Leadership- Driven Career Path 110
 Strategy- Driven Career Perspective 112
 Strategy- Driven Career Chart 112
 Create a Strategy- Driven Career Chart 114
 Strategy- Driven Career Path 114
 Develop a Strategy- Driven Career Path 115
 Chapter 4 Self- Assessment for Software Architects 117
 Social Intelligence 118
 Teamwork 118
 Partnership 119
 Self- consciousness 119
 Communication 120
 Networking 120
 Soft Skills 120
 Trust Building 121
 Learning from Others 121
 Negotiation 122
 Self- presentation 122
 Teleworking 123
 Fellowship 123
 Self- sufficiency 124
 Handling Customer Relationships 124
 Social Intelligence Skill Assessment 124
 Software Architecture Practice 126
 Software Architecture Strategy 126
 Software Architecture Vision 127
 Software Architecture Role 127
 System Integration 128
 Interoperability 128
 Software Reuse 129
 Distributed Architecture Model 129
 Federated Architecture Model 129
 Architecture Styles 130
 Architecture and Design Patterns 130
 Componentization 130
 Software Architecture Frameworks 131
 Software Development 131
 Software Architecture Practice Skill Assessment 132
 Leadership 133
 Managing Time 134
 Decision- Making 134
 Problem-solving 134
 Diversity, Equity, and Inclusion 135
 Responsibility and Accountability 135
 Hiring Preferences 136
 Creative Thinking 136
 Critical Thinking 136
 Being Proactive 137
 Establishment of Trust 137
 Administrative Duties 138
 Coaching and Training 138
 Team Building 139
 Resolving Conflicts 139
 Assessment of Leadership Competencies 140
 Strategy 141
 Software Architecture Strategy 142
 Strategic Thinking 142
 Problem Identification 142
 Problem-solving 143
 Abstraction 143
 Generalization 144
 Visualization 144
 Software Design Approaches 145
 Simplification 145
 Analytical Capabilities 145
 Influencing 146
 Promoting Culture 146
 Strategy Execution Plan 147
 Assessment of Strategic Competencies 147
 Part 3 Software Architecture Toolbox 149
 Chapter 5 Employing Innate Talents to Provide Potent Organizational Solutions 151
 Innate Skills Promote Software Architecture Effectiveness 152
 Remember: Survival, Survival, Survival 152
 Consequences of Failing to Invoke Innate Talents 153
 Employ Chief Innate Talents to Become an Effective Software Architect 154
 The Power of Creativity 154
 The Benefits of Unleashing Software Architecture Creativity 155
 Unleash the Power of Software Architecture Creativity 155
 The Potency of Imagination 157
 The Benefits of Harnessing Imagination 158
 Unleash the Power of Imagination 159
 Software Design Aesthetic 162
 Technical Proficiency and Aesthetic Talents Drive Software Design 162
 The Chief Contribution of Design Aesthetic Talents to Software Architecture 163
 Curiosity Attributes 167
 The Contribution of Curiosity to Software Architecture 167
 The Influencing Facets of Curiosity on Software Architecture Practices 168
 Chapter 6 Software Architecture Environment Construction 173
 Benefits of the Software Architecture Environment Construction Discipline 174
 Must Haves: Problem Statements and Requirements 174
 Never Start a Software Design Project Without Understanding the Problems 175
 Never Start a Software Design Project Without Requirements 176
 Software Architecture Structures 176
 Micro Level: Multidimensional Structures of Software Implementations 176
 Macro Level: 3D Software Architecture Environment Structure 177
 Software Architecture Environment: Driven by an Uncontrolled Quantum Landscape Behavior 178
 Software Architecture Environment: An Intelligent Topological Space 179
 Deformation Aspects of a Multidimensional Software Architecture Environment 181
 Entanglement Effects in a Software Architecture Environment 182
 Software Architecture Environment Forces Drive Software Behavior 183
 Probability Assessment of Software Operations and Behavior 184
 Software Architecture Environment Positive and Negative Forces 184
 Software Architecture Environment Gravitational Forces 185
 The Impetus for Granting Software Architecture Gravitational Powers to Software Implementations 186
 Software Architecture Gravitational Force Intensity 187
 The Cost of Unbalanced Software Architecture Environment Gravitational Forces 187
 Competing Software Architecture Environment Forces 188
 Software Architecture Environment: A Survival Game Space 188
 Maintaining a Pragmatic Balance Between Competing Software Architecture Forces 189
 Mitigating the Competing Forces Challenge 190
 Software Architecture Environment Harmonizing and Disharmonizing Forces 190
 Chief Properties of Harmonizing Forces in a Software Architecture Environment 191
 Chief Properties of Disharmonizing Forces in a Software Architecture Environment 193
 Genetic Encoding of a Software Architecture Environment 194
 Difficulties of Restructuring a Software Architecture Environment 194
 Encoding a Software Architecture Environment 195
 Influences on Social, Behavioral, and Business Goals 195
 Software Architecture Environment Construction Life Cycle 196
 Software Architecture Environment Construction Process 197
 Creating a Software Architecture Environment Construction Balance Table 197
 Software Architecture Environment Construction Design Activities 199
 Use Case I: Software Architecture Environment Composition and Decomposition Design Activities 201
 Design- Time vs. Runtime Environment Composition and Decomposition Design Activities 201
 Composition and Decomposition Design Methods 202
 Composition and Decomposition Process Outline 203
 Use Case II: Software Architecture Environment Integration and Disintegration Design Activities 204
 When to Apply Integration and Disintegration Design Activities 205
 Integration and Disintegration Design Methods 205
 Integration and Disintegration Process Outline 206
 Use Case III: Software Architecture Environment Centralization and Decentralization Design Activities 208
 When to Employ the Software Environment Centralization and Decentralization Design Activities 208
 Centralization and Decentralization Design Methods 209
 Software Architecture Environment Centralization and Decentralization Process Outline 210
 Use Case IV: Software Architecture Environment Elasticity and Inelasticity Design Activities 211
 Chapter 7 When to Employ Elasticity and Inelasticity Design Activities 212
 Elasticity and Inelasticity Design Methods 213
 Software Architecture Elasticity and Inelasticity Design Process Outline 214
 Use Case V: Software Architecture Environment Synchronization and Desynchronization Design Activities 215
 When to Employ Environment Synchronization and Desynchronization Design Activities 216
 Environment Synchronization and Desynchronization Design Methods 216
 Software Architecture Environment Synchronization and Desynchronization Design Process Outline 218
 Construction Laws of a Software Architecture Environment 219
 Best Practices for Software Architecture Environment Construction 220
 Structural Construction of Software Implementations in Multidimensional Environments 223
 Software Architecture Solids: Rudimentary Geometrical Design Structures 224
 Atomic Solid 225
 Composite Solid 227
 Monolithic Solid 228
 Interface Solid 229
 Pipe Solid 230
 Inclusive Utilization of Pipe Solids 231
 Exclusive Utilization of Pipe Solids 232
 Internal Utilization of Pipe Solids 233
 Data Solid 234
 Software Architecture Solids’ Attribute Summary 236
 Software Architecture Dimensional Model 237
 Software Architecture: Zero Dimension 238
 Software Architecture: One Dimension 239
 Software Architecture: Two Dimensions 240
 What Impacts the Length and Width Dimensions of a
 2D Software Structure? 241
 Software Architecture: Three Dimensions 242
 Volumes of 3D Software Structures 242
 Increase in Software Architecture Level of Specificity in a
 3D Computing World 243
 Software Population Sustainability in an Architecture Environment Space: A Capacity Planning Challenge 245
 Comparative Perspectives in a Software Architecture Space 246
 3D Software Structures in a Software Architecture Computing Space 247
 The Impetus for Establishing a 3D Software Architecture Space 247
 Chief Features of Software Architecture Computing Space 249
 Influences of Software Structures on Software Architecture Computing Space 250
 Relative Positions in a 3D Software Architecture Computing Space 250
 Coordinate Axes: Skeleton of a Software Architecture Computing Space 251
 Software Architecture Computing Space Logical Coordinate System 252
 Cardinal and Intercardinal Physical Directions in Software Architecture Computing Space 253
 Applying Cardinal and Intercardinal Directions to Software Architecture Computing Space 254
 Marrying a Logical Coordinate System with Cardinal and Intercardinal Physical Directions System 255
 Leveraging the Z- Axis to Create Floors in a Software Architecture Computing Space 256
 Distribution Styles of 3D Software Implementations in an Architecture Computing Space 257
 Federated Distribution Style 258
 Flooring Distribution Style 260
 Symmetrical and Asymmetrical Distribution Styles 261
 Symmetrical Distribution Style 261
 Asymmetrical Distribution Style 263
 Construction Life Cycle of Software Implementations 264
 Software Construction Process 265
 Creating a Software Construction Balance Table 265
 Software Construction Design Activities 266
 Use Case I: Thicken and Contract Design Activities 267
 When to Apply Thicken and Contract Design Activities 268
 Thicken and Contract Design Methods 269
 Software Structure Thickening and Contracting Process Outline 270
 Use Case II: Lengthen and Shorten Design Activities 272
 When to Apply the Lengthen and Shorten Design Activities 273
 Lengthen and Shorten Design Methods 273
 Software Structure Lengthening and Shortening Process Outline 275
 Use Case III: Layer and Delayer Design Activities 277
 When to Apply Layer and Delayer Design Activities 277
 Layer and Delayer Design Methods 278
 Layer and Delayer Process Outline 279
 Governing Laws for Software Construction in a 3D Computing World 281
 Best Practices for Constructing Software Implementations 282
 Part 4 Software Architecture Interview Preparations 285
 Chapter 8 Preparing for a Software Architecture Interview: A Winning Strategy 287
 Software Architecture Job Interview Strategy 288
 Preparing a Job Interview Defense Plan 288
 Preparing a Job Interview Attack Plan 289
 Software Architecture Job Interview Preparation Model 290
 Software Architecture Job Interview Defense Plan 291
 Study and Analyze the Job Description 291
 Start with Identifying the Scope of the Software Architecture Job Requirements 292
 Dive Deep into the Software Architect Job Description 293
 Start with Analyzing the Summary Portion of the Job Requirements 294
 Create a Findings Table Version I for the Job Description 295
 Next, Analyze the Responsibilities Portion of the Job Requirements 296
 Then, Update the Findings Table Version II of the Job Description 296
 Last, Analyze the Software Architect Skills Portion of the Job Requirements 297
 Do Not Forget to Update the Findings Table of the Job Description 298
 Create a Software Architect Skill Competency Model for the Job Description 299
 Skill Competency Model’s Requirements and Practices 300
 Skill Competency Model’s Disciplines 301
 Design Discipline’s Deliverables 301
 Cybersecurity Discipline Deliverables 301
 Products Selection and Evaluation Discipline’s Deliverables 302
 SDLC Discipline’s Deliverables 302
 The Competency Part of the Skill Competency Model 303
 Discover the Personal Knowledge Gap Before Attending a Job Interview 303
 Assess Whether the Next Software Architecture Job Is a Strategic Career Move 304
 Conduct a Software Architecture Mock Interview 305
 Prepare a Software Architecture Interview Cheat Sheet 306
 Prepare for Possible Software Architecture Interview Questions 307
 Software Architecture Job Interview Attack Plan 308
 Study the Hiring Organization’s Business 309
 Start by Finding Information About the Hiring Organization 309
 Chapter 9 Leveraging Business Knowledge During an Interview 311
 Understand the Business Model 312
 Get Familiar with the Hiring Company’s Culture 314
 Conduct a Quick SWOT Analysis 315
 Understand the Hiring Organization’s Technology 316
 Technological Information Sources 316
 Discover the Environment’s Technology Stack 318
 Learn About the Development Technology Stack 319
 Study the Applications 320
 Identify Specific IT Projects 321
 Demonstrate Enterprise Architecture Knowledge of the Hiring Organization 321
 Adopt Software Architecture Lingo 323
 Use Design Patterns Vocabulary 323
 Use the Software Architecture Guidelines Lingo to Communicate Solutions 324
 Remember Software Architecture Tools 328
 Classification of Software Architecture Tools 329
 Especially Prepare for Architecture Visualization Tools Questions 332
 Get Familiar with Software Architecture Analysis and Evaluation Methods 333
 Be Aware of Early Architecture Evaluation Methods 334
 Be Aware of Late Architecture Evaluation Methods 335
 Talk About Software Architecture Analysis Standards 335
 An Outline for Software Architecture Job Interview Questions 337
 Behavioral Questions 338
 Communication 339
 Interpersonal Relationships 340
 Software Architecture Leadership 340
 Skill Assessment Questions 341
 Software Architecture Attributes Questions 342
 Software Architecture LifeCycle Questions 343
 Software Architecture Concepts Questions 346
 Design Building Blocks Concepts 347
 Employ Design Building Blocks Concepts to Depict Solutions 347
 Prepare for the “How to Design” Interview Questions 348
 Software Architecture Environment Concepts 349
 Business Concepts 351
 Consumer Concepts 352
 Architecture Style, Architecture Pattern, and Design Pattern Questions 353
 Architecture Patterns vs. Design Patterns 353
 Understand Architecture Styles 355
 Remember Contextual Hierarchy of Patterns 355
 Why Interviewers Ask Architecture and Design Pattern Questions 356
 Prepare for Architecture and Design Pattern Questions 357
 Problem-solving and decision- making Questions 358
 Embrace the Software Architecture Problem- Solving and Decision- Making Process 358
 Identifying Business Problems 358
 Attend to the Problem- Solving and Decision- Making Process 359
 Prepare for Problem- Solving and Decision- Making Questions 360
 Data- Related Questions 360
 Focus on Data Aspects Related to Software Architecture 361
 More Data- Related Interview Questions 361
 Production Environment Questions 362
 Characteristics of Software Architecture Environment Hosted in Production 363
 Production Environment-Related Questions 364
 Software Architecture Framework Questions 365
 Focus on Array of Framework Contributions 365
 Software Architecture Framework Questions 367
 Index 369