I’d like to talk about another idea I have for improving system architecture which is growing Solution Architects. I believe that one of the primary value propositions of an architect is to mentor and transfer knowledge from their architecture experience to the less experienced. I’ve observed that self-proclaimed architects tend to pull from their background such as software/hardware/mechanical engineering, business analysis, packaged software implementers/configurators, even project management! Not too surprisingly there is a significant bias to what these individuals feel are required skills for Solution Architect. I’m not all that confident that there is a right and wrong skills set for the generic Solution Architect, but I wonder if there is a set of core skills that an architect should obtain before acquiring the title Solution Architect to mitigate poor solutions as well as confusion from those around him/her.


I admit, what has triggered this entry is a result of trying to quantify what a Solution Architects is as a result of meeting countless imposters and witnessing their countless system design blunders. It appears that there is no accepted, industry-wide standard skill set that a Solution Architect must have and I see this as a need that must be filled…so I’ll invent one. Here is an approach a fellow colleague and I have come up with which I’d like to throw out to see if it might be interesting to the Architect Community.


The Approach: I used to perform skills assessments while a technical consultant to measure an individual’s skills for a particular project. The result of the skills assessment was a gap analysis which I would use to contribute to a Readiness Plan that would be used to ramp up the technical team for a large project. This approach has worked well for me and mitigated poor system design and solution delivery risks early in the project lifecycle. I’ve taken this concept and applied to produce a development plan for those wanting to become a Solution Architect. The high-level process we’ve come up with to date goes something like this:


1.       Build Skills List for a Solution Architect


2.       Have an experienced Solution Architect assign the maturity an individual would require for each skill such as:


a.       Value    Description


b.      0              0 Non Existent. This skill does not currently exist.


c.       1              1 Weak. This skill exists but not able to work independently without assistance


d.      2              2 Moderate. Good skills exist but requires periodic assistance.


e.      3              3 Strong. Highly capable, this person is often sought after to assist others.


3.       Have an experienced Solution Architect interview a candidate and assign a value based on the same value table above to as accurately as possible determine the candidates ability for each skill in the Skills List


4.       Calculate the skills gap for each skill of the candidate


5.       Stack rank the sills based on the skills gap in descending order


6.       For each skill that requires maturing, have the experienced Solution Architect list prescriptive recommended guidance describing what the candidate should consider for improving that skill


7.       Have the candidate then assign a priority for each skill requiring maturing based on skill gap and the estimated effort to mature the skill


8.       Build the candidate’s development plan using the guidance from the experienced Solution Architect.


I’ve run this approach past a few colleagues and it seems to be intriguing…at least in theory. I think that the trick is identifying the specific skills and their maturity value. Like I noted above, I don’t know if there is a right or wrong skill set but wonder if the skill set should be maintained by a community of architects. I’ve started such a list based on information from the Microsoft Solution Framework, industry research and my experience. Below is a brief outline of the actual skill assessment document and I are building. We have more on this so if you’re interested please let me know. Also, note that the skills are grouped by MSF team role because we think a Solution Architect must have strong skills in every project team role but is an expert in Solution Architecture.


Program/Project Management 


                Scope Management                      


                Requirements Gathering                             


                Acceptance Criteria                        


                Roles and Responsibilities                           


                Communications Management                


                Team Model                     


                Estimating                          


                Inter-team processes                   


                Trade-off Strategy                          


                Commercials                     


                Risk management                           


                Progress Tracking                            


                Project Planning                              


Solution Architecture                                                    


                Design Documentation                                 


                                Entity Relationship Diagrams                      


                                Object Oriented Design Patterns                             


                Workflow                                           


                Design Skills                                       


                                Design and Develop for Performance                    


                                Design and Develop for Security                              


                                Design for SOA                 


                                Patterns                              


                                Building Blocks                 


                                Artifacts                              


                                Methodologies and Techniques                               


                Quality Attribute Skills                                  


                Business to Technology Strategy                                              


                                Alignment and Investment Strategy                       


                                Valuation                            


                                Industry Concerns                          


                                Business Fundamentals                               


                                                Business Community Organizational Aspects      


                IT Environment                                


                                Organizing                          


                                Engineering                       


                                Operations                        


                                Governance                      


                                Project Management Capabilities                            


                Human Dynamics                                            


                                Communication                               


                                Situational Awareness                  


                                Leadership                         


Product Management                                                  


                Business Analysis                                            


                                Business Process Analysis                           


                                Business Process Execution                        


Development                                                   


                Design Documentation                                 


                                Unified Modeling Language                       


                                Entity Relationship Diagrams                      


                                Object Oriented Design Patterns                             


Testing                                                


                Test Planning                                    


                Defect Management                                     


                Reporting                                           


                Resource Planning                                          


                Daily Test Process                                           


                Testing Environment                                     


                Function Testing                                              


                Security Testing                                               


                Usability Testing                                              


                Regression Testing                                         


                Performance Testing                                     


                System/Integration Testing                                        


                Build Management                                        


                Unit Testing                                       


                Automation Testing                                       


User Experience                                                              


                Usage Scenarios                                              


                Sequence Modeling                                      


                Business Process Modeling                                        


                Unified Modeling Language                                       


                                Activity Diagrams                            


                                Sequence Diagrams                       


                                Use Case Diagrams                         


                Business Process Analysis and Design                                    


                User Interface Design                                   


Release Management                                                  


                Deployment                                      


                Network Architecture                                   


                Operations Manuals                                      


                Installation Instructions                                


                Pilots