Accelerating Business and IT Transformation

In our work with more than 200 organizations, we’ve found two groups of customers: Those who previously tried to create an Enterprise Architecture (EA) function but failed, and those who knew they needed a successful EA function to transform t…

Are you a Business Architect or a Business Analyst?

Enterprise Architecture domains include Business Architecture which is the first architecture domain within TOGAF 9. An Enterprise Architecture program that includes this domain, maps critical business processes to their application, information, and infrastructure components to provide a comprehensive view of the business and IT landscape that enables informed decision-making.

Business Architects are supposed to manage Business Architecture, but who are they, what are their skills? How are they different to a Business Analyst or even a Project Manager?

Business Analysts are on the way to becoming Business Architects. Sometimes called IT Business Analysts, they are not strictly business or IT specialists. They write business cases (with very few technical terms), identify business requirements and often are part of a Development Team.

Based on many job descriptions and my observation below, is a grid of standard skills and responsibilities related to the function of a Business Analyst. In the second column, are the responsibilities also applicable to a Business Architect and in the last column comments on how TOGAF 9 recommend the activities to be addressed.

Expected skills and activities Business Analyst Business Architect Comments related to TOGAF 9
Is an intermediary between IT and the business users, follows the implementation strategy with respect to getting stakeholder buy-in and support. x x Both roles require to be positioned between IT and business.
In particular business processes of a line of business. x The Business Architect considers the organization’s strategy and less focused in a specific line of business.
Acts as catalyst to implement strategic and tactical change for the business. x x The Business Architect will focus more on strategic changes.
Works with end-user groups to assist with aligning IT to the department’s business goals. Conduct feasibility studies to define the purpose, functions, and overall structure of business processes x x The Business Architect in TOGAF 9 will use Business Scenario techniques.
May be involved in Business Process Management (BPM). x x
Performs analysis and documents business processes leading to process change and/or system implementation. x x The Business Architect will model and process the business processes.
Operating as a more-or-less independent group that is focused on delivering BPM services x The Business Architect will be working at a strategic level and will be less focused on the delivery of BPM services.
Does not have an IT background, but had, instead, a background in quality control. x The Business Architect must have a perfect knowledge of the business.
Translates user requirements into software requirements that IT can then use to develop software x A Business Architect would not develop and review design specifications for software application. This would be the role of the Application Architect during Phase C.
Analyze and resolve software errors in a timely and accurate fashion x A Business Architect is not in charge of managing incidents linked to applications. IT operations may escalate this to the Development Team, or the vendor. Once a first level of diagnostic done, it will be transferred to one of the architects depending on the domain (technology, application).
Helps to develop and maintain software to support the business processes. Assist in developing system/application architecture. x The Business Architect does not contribute to software development. This is done by the Solution Architect.
Leads and validates enterprise system designs across multiple business applications. x The Business Architect does not lead Application Architecture. This will be done by the Application Architect and potentially the Solution Architect.
Creates and executes test plans to ensure that the functional and business requirements are met by the proposed solution x The Business Architect does not contribute to test plans. This is done probably by the Solution Architect.
Documents and defines processes, eliminating activities that don’t add value and straightening out the flow of the activities. x x In the TOGAF 9 Phase B we would do this by documenting the baseline and target architecture and do a gap analysis, identifying the various business architecture building blocks to be eliminated.
Determining how business policies are implemented in business rules. x x Business rules have to be identified and implemented when business processes documented in both baseline and target architecture. Can be done at both strategic and tactical level.
Analyses customer needs and the processes customers go through to interact with an organization are key skills that any business process practitioner needs to be effective. x x Business scenarios would be used to identify business requirements.
Creates, manages and maintains an optimum business architecture that includes informational, organizational, process, performance and systems architecture. x The Business Analyst focus more on projects delivery. The Business Architect is mostly focused on the delivery of the Business Architecture.
Defines, socializes and implements Business Architecture. Reviews roadmap projects for impact and compliance. x Business Architecture roadmaps will be delivered from the gap analysis.
Identifies and facilitates cross divisional continuous business improvement initiatives. x The Business Architect works at a strategic level and focus mostly on Strategic Architecture.
Member of the Architecture Board, composed of representative process owners who approve any cross organizational business process changes. x Business Architects should be part of the Architecture Board.
Identifies and maintains an up to date picture of opportunities and risks. x x Risks have to be identified during both the Architecture vision phase and the development of the solution.
Experienced in business/process architecture including broad skills in the area of strategy mapping, business analysis skills, conceptual data and process modeling/design, EA frameworks. x The Business Architect must have these skills. The Business Analyst may focus on process modeling only.
Strong work experience in Project and Change management. x x Both roles require these skills.
Proven track record for working effectively with technical and business functions. x The Business Architect must work with other domain’s architects.

My observations are:

Business Analysts are much closer to IT. They often are assigned to a specific Line of Business, which is close to the Development Team, and are implicated in software development. They may be part of the Development Team or the Project Management Office. The Business Architect reports to managers or senior managers who may be business or IT but are independent of any project. They have a global view on most business and will be responsible for modeling the business as a whole, then working top down to “architect” encompassing end to end business processes. Their role is more horizontal and is considered a neutral voice and because of that will make more critical decisions than a Business Analyst.

Business Analysts document requirements as defined by users during workshops. A Business Architect documents and may contribute to define a business strategy using requirements provided by the users if that strategy is not finalized. The Business Architect must have the ability to think in both a strategic and tactical manner whereas a Business Analyst is normally tactical.

The Business Analyst operates within the confines of a predetermined application and technology architecture. A Business Architect is a part of the decision making process to define the IT architecture (Data, Application and Technology). He will have a strong influence directing information technology to meet business needs, and assist in identifying business inefficiencies and opportunities.

Business Architect must be cognizant of enterprise strategies whereas a Business Analyst is normally concerned with specific projects independent of enterprise strategy.

Are you a Business Architect or a Business Analyst?

Enterprise Architecture domains include Business Architecture which is the first architecture domain within TOGAF 9. An Enterprise Architecture program that includes this domain, maps critical business processes to their application, information, and infrastructure components to provide a comprehensive view of the business and IT landscape that enables informed decision-making.

Business Architects are supposed to manage Business Architecture, but who are they, what are their skills? How are they different to a Business Analyst or even a Project Manager?

Business Analysts are on the way to becoming Business Architects. Sometimes called IT Business Analysts, they are not strictly business or IT specialists. They write business cases (with very few technical terms), identify business requirements and often are part of a Development Team.

Based on many job descriptions and my observation below, is a grid of standard skills and responsibilities related to the function of a Business Analyst. In the second column, are the responsibilities also applicable to a Business Architect and in the last column comments on how TOGAF 9 recommend the activities to be addressed.

Expected skills and activities Business Analyst Business Architect Comments related to TOGAF 9
Is an intermediary between IT and the business users, follows the implementation strategy with respect to getting stakeholder buy-in and support. x x Both roles require to be positioned between IT and business.
In particular business processes of a line of business. x The Business Architect considers the organization’s strategy and less focused in a specific line of business.
Acts as catalyst to implement strategic and tactical change for the business. x x The Business Architect will focus more on strategic changes.
Works with end-user groups to assist with aligning IT to the department’s business goals. Conduct feasibility studies to define the purpose, functions, and overall structure of business processes x x The Business Architect in TOGAF 9 will use Business Scenario techniques.
May be involved in Business Process Management (BPM). x x
Performs analysis and documents business processes leading to process change and/or system implementation. x x The Business Architect will model and process the business processes.
Operating as a more-or-less independent group that is focused on delivering BPM services x The Business Architect will be working at a strategic level and will be less focused on the delivery of BPM services.
Does not have an IT background, but had, instead, a background in quality control. x The Business Architect must have a perfect knowledge of the business.
Translates user requirements into software requirements that IT can then use to develop software x A Business Architect would not develop and review design specifications for software application. This would be the role of the Application Architect during Phase C.
Analyze and resolve software errors in a timely and accurate fashion x A Business Architect is not in charge of managing incidents linked to applications. IT operations may escalate this to the Development Team, or the vendor. Once a first level of diagnostic done, it will be transferred to one of the architects depending on the domain (technology, application).
Helps to develop and maintain software to support the business processes. Assist in developing system/application architecture. x The Business Architect does not contribute to software development. This is done by the Solution Architect.
Leads and validates enterprise system designs across multiple business applications. x The Business Architect does not lead Application Architecture. This will be done by the Application Architect and potentially the Solution Architect.
Creates and executes test plans to ensure that the functional and business requirements are met by the proposed solution x The Business Architect does not contribute to test plans. This is done probably by the Solution Architect.
Documents and defines processes, eliminating activities that don’t add value and straightening out the flow of the activities. x x In the TOGAF 9 Phase B we would do this by documenting the baseline and target architecture and do a gap analysis, identifying the various business architecture building blocks to be eliminated.
Determining how business policies are implemented in business rules. x x Business rules have to be identified and implemented when business processes documented in both baseline and target architecture. Can be done at both strategic and tactical level.
Analyses customer needs and the processes customers go through to interact with an organization are key skills that any business process practitioner needs to be effective. x x Business scenarios would be used to identify business requirements.
Creates, manages and maintains an optimum business architecture that includes informational, organizational, process, performance and systems architecture. x The Business Analyst focus more on projects delivery. The Business Architect is mostly focused on the delivery of the Business Architecture.
Defines, socializes and implements Business Architecture. Reviews roadmap projects for impact and compliance. x Business Architecture roadmaps will be delivered from the gap analysis.
Identifies and facilitates cross divisional continuous business improvement initiatives. x The Business Architect works at a strategic level and focus mostly on Strategic Architecture.
Member of the Architecture Board, composed of representative process owners who approve any cross organizational business process changes. x Business Architects should be part of the Architecture Board.
Identifies and maintains an up to date picture of opportunities and risks. x x Risks have to be identified during both the Architecture vision phase and the development of the solution.
Experienced in business/process architecture including broad skills in the area of strategy mapping, business analysis skills, conceptual data and process modeling/design, EA frameworks. x The Business Architect must have these skills. The Business Analyst may focus on process modeling only.
Strong work experience in Project and Change management. x x Both roles require these skills.
Proven track record for working effectively with technical and business functions. x The Business Architect must work with other domain’s architects.

My observations are:

Business Analysts are much closer to IT. They often are assigned to a specific Line of Business, which is close to the Development Team, and are implicated in software development. They may be part of the Development Team or the Project Management Office. The Business Architect reports to managers or senior managers who may be business or IT but are independent of any project. They have a global view on most business and will be responsible for modeling the business as a whole, then working top down to “architect” encompassing end to end business processes. Their role is more horizontal and is considered a neutral voice and because of that will make more critical decisions than a Business Analyst.

Business Analysts document requirements as defined by users during workshops. A Business Architect documents and may contribute to define a business strategy using requirements provided by the users if that strategy is not finalized. The Business Architect must have the ability to think in both a strategic and tactical manner whereas a Business Analyst is normally tactical.

The Business Analyst operates within the confines of a predetermined application and technology architecture. A Business Architect is a part of the decision making process to define the IT architecture (Data, Application and Technology). He will have a strong influence directing information technology to meet business needs, and assist in identifying business inefficiencies and opportunities.

Business Architect must be cognizant of enterprise strategies whereas a Business Analyst is normally concerned with specific projects independent of enterprise strategy.

Business Software Platforms are not Strategic

I want to share an idea that occurred to me and some of my colleagues, Dave Langer in particular, that was triggered during the work in building our business system architecture to enable our S+S corporate strategy, which is that reusable Business Software Platforms are not Strategic. In fact, if anything they are the opposite of Strategic.

Note: Before you read further, I recommend glancing at the Glossary of Terms at the end of this post to brief yourself on the definitions of Business Strategy, Business Process and Software Platform.

Essentially, the idea is a simple 3-step process which starts with Business Strategy and ends with candidate logical descriptions of Business Software Platform that, interestingly, are deliberately not directly enabling Business Strategy. Here’s the process:

image

Step 1. Identify the Business Strategy

A business must identify what its Business Strategy is. With methods like Michael Porter’s “Five Forces Concept” and/or Jim Collins’ Hedgehog Analysis, a business can identify its Business Strategy.

 

One output from this activity is a set of Business Strategy Statements where each Business Strategy Statement includes Objective, Scope and Competitive Advantage elements. Here’s a link to HBS article describing this in detail.

Step 2. Identify Context Business Processes

Using Business Processes, often in the format of a Business Process Categorization model, identify Business Processes that do not directly enable Business Strategy. There are many methods out there to help do this such as Geoffrey Moore’s Core versus Context, and your common Enterprise Architecture mapping Business Process to Business Strategy activity.

In the Core versus Context method, I refer to the “Core versus Context” concept developed by Geoffrey Moore. In Moore’s book ‘Living on the Fault Line’, Moore described a method for identifying Core and Context Business Processes and Business Process Activities, “For core activities, the goal is to differentiate as much as possible on any variable that impacts customers’ purchase decisions and to assign one’s best resources to that challenge. By contrast, every other activity in the corporation is not core, it is context. And the winning approach to context tasks is not to differentiate but rather to execute them effectively and efficiently in as standardized a manner as possible.”

In the Business Process to Business Strategy Analysis method, one analyzes the Business Strategy Statements and associates Business Processes that directly relate to Business Strategy Statements. I add a little twist here and assert that Business Processes that do not directly enable Business Strategy are considered Context Business Processes.

The assumption at this point is that Business Processes that are strategic should expect change. Those that are not strategic, therefore Context Business Processes, should expect less change. In fact, according to Moore, Context Business Processes should be standardized.

Step 3. Identify Candidate Platforms

We now need to identify Business Software Platforms. There are number of methods out there to help logically group Functions by Information entities to identify candidate Software Platforms. Methods such as Affinity Analysis, Yourdon and Constantine’s Functional Cohesion, and Coplien’s Scope, Commonality, Variability Analysis. All three have a common goal when using Business Process and Data as factors to be analyzed which is to mathematically identify logical groupings of processes based on their relationship to data.

The only addition I make to these methods is to only focus on Context Business Processes in the analysis. The assumption I make is that Software Platforms, by their very nature provide reusable/shared automation of business processes and data, represent standardized processes and data. By focusing on Context Business Processes, we simply realize these as Business Software Platforms as a result of the analysis.

Core Business Processes are left to be supported/automated by the more agile Applications because Applications are not specifically designed to be shared or reused. Applications provide time-to-market agility to the business.

Summary – Nothing new just putting together known concepts

This is an interesting post for me because I haven’t introduced any new concepts to suggest this new process idea for maturing the Enterprise Architecture discipline. Instead, I pulled together known concepts from business and software engineering domain experts to form a simple 3-step process for identifying Business Software Platforms.

I’m an Enterprise Architect so I also wonder if this idea can be broadened beyond S+S to across the Microsoft’s enterprise and, potentially, for any enterprise so I thought I’d publish this idea and share it. Thoughts?

By the way, I realize that this simple process is far from easy as there are lots of prerequisites to complete it such as; Defined Business Strategies exist, an inventory of business processes, an inventory of Business Data, and a mapping from Business Process to Business Data. Sorry if I’ve presented it in a way that appears way too easy. 🙂

 

Glossary of Terms:

Term Definition Source
Competitive Business Strategy (aka Business strategy) Business Strategy refers to how a company competes in a particular business (note: overall strategy for diversified firms is referred to as corporate strategy). Competitive strategy is concerned with how a company can gain a competitive advantage through a distinctive way of competing. Competitive Business Strategy refers to the aggregated strategies of single business firm or a business unit that incorporates either cost leadership, differentiation or focus in order to achieve a sustainable competitive advantage and long-term success in its chosen arenas or industries. The essence of strategy is choosing a unique and valuable position rooted in systems of activities that are much more difficult to match. Michael Porter, Harvard Business School
Business Process A business process is a collection of related, structured activities or tasks that produce a specific service or product (serve a particular goal) for a particular customer or customers. It often can be visualized with a flowchart as a sequence of activities. Harvard Business School
  A business process is a series of interrelated activities that convert inputs into results (outputs); processes consume resources and require standards for repeatable performance; processes respond to control systems that direct the quality, rate, and cost of performance. APQC
Business Process Categorization A reference framework for categorizing all the business activities used by an enterprise involved in delivering products and services. This is done through the definition of each area of business activity, in the form of process components or Process Elements that can be decomposed to expose progressive detail. These process elements can then be positioned within a model to show organizational, functional and other relationships, and can be combined within process flows that trace activity paths through the business. Business Process Categorization can serve as the blueprint for standardizing and categorizing business activities (or process elements) that will help set direction. TMForum.org
Business Software Platform Standardized business software engineered for reuse. Often Business Software Platforms are responsible for mechanizing standard business processes and managing standard data.

Note: I couldn’t easily find a non-bias definition so I researched and aggregated definitions from several credible sources, then simplified to avoid too much criticism while maintaining the sources intent.

Gabriel Morgan 🙂

Categories Uncategorized

Modeling the MDM Blueprint – Part VI

In this series we have discussed developing the MDM blueprint by developing the Common Information (part II), Canonical (part III) , and Operating (part IV)  models in our work. In Part V  I introduced the Reference Architecture model into the mix to apply the technical infrastructure or patterns we plan on using. The blueprint has […]

Modeling the MDM Blueprint – Part V

In this series we have discussed developing the MDM blueprint by creating Common Information (part II), Canonical (part III), and Operating (part IV) models in our work streams. We have introduced the Operating Model into the mix to communicate how the solution will be adopted and used to realize the benefits we expect with the […]

Modeling the MDM Blueprint – Part IV

In part II and III of this series we discussed the Common Information and Canonical Models. Because MDM is a business project we need to establish of a common set of models that can be referenced independent of the technical infrastructure or patterns we plan on using. Now it is time to introduce the Operating […]

Modeling the MDM Blueprint – Part III

In part II of this series we discussed the Common Information Model. Because MDM is a business project we need to establish of a common set of models that can be referenced independent of the technical infrastructure or patterns we plan on using. The essential elements should include: – Common Information Model – Canonical Model […]

Modeling the MDM Blueprint – Part II

In part I of this series we discussed what essential elements should be included in a MDM blueprint. The important thing to remember is the MDM is a business project that requires establishing of a common set of models that can be referenced independent of the technical infrastructure or patterns you plan on using. The blueprint […]

Achieving Model Traceability: Finding the Traceability Critical Path

We all agree now that Adoption is key for Enterprise Architects. And the trick to adoption is resonating with those that make change and influence them to make the change that is best for the enterprise. In a previous blog post, I introduced the Solution Model concept. In this post, I want to talk about the concept of the Traceability Critical Path, which is the portion of the Solution Model necessary to trace from Strategy to Code.

Support for Solution Architects is good

As Solution Architects, we have the ability to understand a business problem and be able to derive a software solution to meet the business problem. We have lots of process tools to help us such as software development lifecycles like Microsoft Solutions Framework (MSF), Extreme Programming (XP), Rational Unified Process (RUP) to describe who does what and when. We have methods such as Object-oriented Design (OOD) and Attribute-based Design (ADD) to help use design software components. We have vibrant software engineering organizations and user groups like IEEE, OASIS and Software Engineering Institute (SEI) to leverage. We have knowledge bases to leverage such as the Software Engineering Book of Knowledge (SWEBOK). We have system design tools such as Visual Studio to design, develop and deploy software. Pretty good.

Support for Enterprise Architects is good

As Enterprise Architects, we have the ability to understand all of our business organizations and derive IT architecture for the entire enterprise. We have lots of tools to help us such as Enterprise Architecture Frameworks (EAF) like Gartner’s EAF, TOGAF, Federal Enterprise Architecture (FEAF). We have industry organizations and user groups to leverage such as ISACA/COBiT, ITIL and TMForum. We have methods to identify and focus on individual business pain points like MSBA’s Business Capability Analysis and Six Sigma/Lean to avoid analysis paralysis. We have tools to help manage enterprise information such as business processes, project and application portfolios from Microsoft, Troux, MetaStorm and Sparx Systems.

We need a way to connect Enterprise Architecture to Solution Architecture

So, here’s the problem, the outputs of all the tools and methods need to be connected so that we can trace from “strategy to code”. You may have heard other catch phrases trying to say the same thing such as “connect planning and implementation”, “deliver to the plan” or the phrase “help an organization determine the right things to do and ensure that project teams do them right”. Isn’t it funny how there are so many catch phrases out there trying to describe the concept of Model Traceability?

Model Traceability connects Enterprise Architecture and Solution Architecture

My team thinks that Model Traceability is very important and we have invested in this area to help us make sense of all the tools and methods out there in an effort to streamline what’s important so that we can honestly and justifiably say we know what are the right things to do and we can trace them to project teams and show how they are doing them right. During this effort, we have discovered some very interesting things.

We evaluate the tools and methods and identify what concepts they produce or mange. We then evaluate these concepts and determine what value they bring to their stakeholders; concepts such as Business Strategy, Business Capability, Use Case, Business Process Activity, Application Interface, System, Code, Test Case. We then determine how they are associated to each other. For example, A Business Process composes Business Process Activities. Automated Business Process Activities use Applications.

Without the metamodel, we might have a mess like the diagram below illustrates.

MetamodelMess

Disclaimer Note: The diagram above is not representative of my team’s metamodel in order protect Microsoft IP. I deliberately used inappropriate elements, removed several elements, removed all associations between the elements, and spatially organized the elements somewhat randomly.

There are lots of concepts involved, we need the Traceability Critical Path to understand the explicit connection

Our goal is to get to what we are calling the Traceability Critical Path. The Traceability Critical Path (TCP) is the set of lowest-level elements in the metamodel that have an explicit association with each other that are necessary to trace from Strategy to Code. [I know, bad acronym choice. We might later rename it to avoid confusion.] Identifying the TCP elements and how they relate is the goal of this work. Then, connecting the rest of the elements to the TCP elements to understand how they relate.

Along the journey of defining the TCP, we discovered some interesting characteristics of the metamodel elements. We found it useful to differentiate between element types. Here are some examples:

  • Traceability Critical Path elements. Elements that have a direct or concrete relationship from planning activities
  • Enabling elements. Elements are really only methods or tools to derive critical elements.
  • Temporal elements. Elements that act as placeholders for required elements but are needed at a later time in a process.
  • Discipline-specific elements. Elements that are useful only to certain disciplines but are somewhat meaningless to others.
  • Associations elements. Elements that describe how elements are related/associated with each other.

We had some interesting observations made along the way worth sharing

Along our journey we made a few interesting observations that maybe, at some point, I’ll dig into later because each could take a while to explain. But for now, I’ll just jot them down to share:

1. Complimentary Information Model. In addition to the metamodel, we created an information model to describe the concepts the elements represent because there are times when identifying individual elements, the resulting element’s names don’t easily resemble the original concept being evaluated and causes a bit of confusion. We required an information model to describe aggregations, compositions, generalizations and subtypes to keep the metamodel meaningful by the different audiences.

2. Enabling and Temporal Elements and Abstraction relationship. We observed during the exercise of building our metamodel that the relationship between the Enabling Elements and degree of abstraction. We noticed that many of the Enabling and the majority of the Temporal elements tend to exist at higher abstractions and the TCP elements tend to fall in the lower abstraction. This trend is illustrated in the graph below.

MetamodelTrendType

3. Gaps in enterprise planning concepts. When analyzing the trend data, we found gaps in our scatter graph. We are wondering how to explain this and what to do with this observation, but we are leaning to spend a bit of time to apply some engineering rigor and define enterprise planning concepts in more detail. The types of concepts are those that describe Business Strategy and Business Model as examples.

MetamodelTrend

Summary – The TCP brings very interesting benefits

Having the metamodel and clear identification of the TCP within it, we get a lot of benefits such as:

  1. Objectivity. Ability to put the tools, methods and concepts from several disciplines into perspective and help us get to the crux of their value proposition to enabling elements in the TCP.
  2. Impact Analysis. Ability to traverse the model and do Impact Analysis from any element of concern. For example, one can identify which applications are involved to enable Scenarios. Or, one could identify which System Features impact Customers or Business Partner and so on.
  3. Role Clarity. Ability to understand the disciplines and roles that typically create elements fit into the planning and implementation activities.

I would like to share our metamodel, complete with the TCP, as well as the process used to build it. But, to be fair, this is a team effort and I want to give credit where credit is due as well as respect the fact that this is the property of Microsoft that I don’t have approval to publish yet. If you’d like to see our metamodel, let me know and I’ll bring your request to my team.

Categories Uncategorized

Valuing the Undervalued Solution Model

Modeling helps improve the success of delivering a high-quality solution

A primary responsibility of a Solution Architect is the integrity of a given project’s software solution. There are many aspects to a solution’s integrity such as System Quality as well as Traceability to ensure the software actually meets the business needs. There is another that is the topic of this blog post and is a Solution Model. Of course, a model by itself won’t guarantee a high quality solution or traceability. However, if done right, it could and it could help you get there faster.

Keep it simple – Use modeling to describe the problem, the solution and how they relate

Let’s sync on the term Solution Model. It’s actually quite simple. I’m referring to the concepts or artifacts a project team manage that:

  1. Describe the business problem. For example, concepts such as Business Process, Customer Scenarios and Requirements.
  2. Describe the solution. For example, concepts such as System Features, User Interfaces, System Interfaces, Data and Source Code.
  3. Describe how they are tied together. This bit is really important. This is where you define how the concepts are associated for Traceability. For those familiar with Software Factories, this is similar to the concept of a Software Factory Schema.

Getting modeling adopted is hard

Project team members naturally think myopically and avoid contemplating the needs of other team members or groups that depend on their information. Because modeling a Solution Model requires tying all the concepts together across the project team, you can imagine the many challenges to get it adopted by the project team. For example, here are few challenges a project team might face during efforts of gaining adoption:

  1. Proving the model’s value to the business stakeholder’s to get buy-in isn’t easy. Without business sponsorship, getting modeling adopted by the entire project team will be a tough hill to climb.
  2. Proving the model’s value to the project team to do the actual modeling. Ideally, everyone will build their portion of the model as part of their responsibility of solution delivery. The challenge is to get the team to do it, and proactively.
  3. Determining the role of the model in a project. This is really important, many modeling philosophies out there assume a model-driven approach. I don’t agree with this assumption. Modeling has several dependencies that dictate the value modeling brings to a project. For example, models can be use to kickstart the architecture (think MDA) and then it could be, and appropriately so, discarded. Or, it could be used to drive the development (think MDD) with roundtripping, therefore living throughout the lifecycle of the project. Or, it could be used for reflecting what’s already in place for maintenance activities post release of the solution.
  4. Determining the right level of model maturity for each model. This is about understanding how much rigor will be spent on the models to establish expectations of what the models will accomplish without compromising the model integrity. This is a project-by-project decision, heck, even a model-by-model decision when you get down to it. The important point to remember is to make sure the level of maturity isn’t too stringent while at the some time the level isn’t too low that it doesn’t compromise the integrity of the Solution Model.
  5. Having modeling skills and modeling tools available to the project team to do the actual modeling. It seems simple but the reality is this can be a big challenge. I suggest short simple modeling activities as a start to benchmark the team’s modeling skills and work from there. Once the initial kinks are worked out, look to automate the modeling process with a modeling tool. Oh, there always seems to be the need for a modeling SME – someone to the hold modeler’s hands, manage the model repository and do brownbag training sessions. It’s good to keep this in mind and allocate resources just in case during project estimation and team readiness activities for a dedicated modeling SME.
  6. The right number of modeling tools. There will also be multiple tools in play. For example, business representatives will prefer business requirements requirement management tools like Visual Studio Team System or Compuware. Business process people will prefer specific process modeling tools like Provision and Corporate Modeler. Information Architects will prefer Erwin or Enterprise Architect. System Architects will prefer Visual Studio Architecture Edition or Enterprise Architect. Tools are a personal choice to most people. My advice to you is to allow people to choose their own modeling tool AS LONG AS:
    • The tool supports XMI import and export and
    • it is an actual modeling tool, therefore, no word editors, spreadsheets, slide decks, etc.
    • there is a single proper modeling tool which the Solution Architect can use to collect (via XMI import) the other models into a single tool and associate model elements for traceability

It’s not about modeling philosophy – focus on the aspects of modeling that bring value to the team

This blog post is not a stroll down theory lane. Although theoretical Modeling concepts, scientific modeling philosophy or modeling methods and paradigms such as MDA, MDD, UML and DSM are interesting, they are about how to model. That is, modeling methods, modeling diagrams and modeling notation. Instead, this blog is about understanding the value of modeling to a project team and is focused on helping Solution Architects gain a practical understanding of the value of modeling to, in turn, help explain its value to the project team for adoption. Because, in the end, without adoption theory is pointless in our efforts to improve system quality and optimize the business investment.

Sidebar: A Model is not the same as a Diagram. There always seems to be a bit of confusion around this, so I thought I’d make this note. A diagram is merely a View or picture. A Model ensures that the model elements on a diagram have specific meaning in both what they represent and how they relate to other model elements. There could be diagrams of a model but if the diagram doesn’t have an underlying model to ensure integrity of the model elements, it is only a picture. Although a diagram is useful, it can be misleading because it is probably inaccurate and only represents a point in time.

Models provide tons of value – the trick is describing it to the project team

So, what’s the value of the solution model? Below is a list of value statements to try and answer that question and is the main purpose of this blog post.

  1. Consistent Terminology bringing clarity and team scalability. Models provide a consistent language for describing the business problem and how the solution will address it bringing clarity to the entire project team. When resources talk about concepts like Business Process, Scenario, System Interface, etc the entire project team is crystal clear what those are and how they relate to other concepts. This also makes it far simpler to get additional resources ramped up as the project team grows.
  2. Team Focus. Improve the focus of the delivery team to solving the business problem and not get sidetracked or distracted. If the business problem is modeled well, the development team is more likely to understand the challenge at hand and avoid misinterpretation of what the business wants. This is unbelievably useful to ensure that the project team build what they need and not superfluous concepts not in the Solution Model or, at least, minimizing additional effort not already clearly described by the Solution Model. Essentially, each model element become work items and higher priority than concepts not useful by other team members.
  3. Improves the chances for a highly Functioning Team. Similar to #2 above, with a well-defined Solution Model, a team begins to partition what concepts each team role is responsible for and which concepts they depend on from other roles in the team. Therefore, team members are avoid miscommunication with their work products and avoid unintended duplication of effort.
  4. Enhanced Requirements Management through Traceability. This has to do with the ability to easily navigate how pieces of the business problem are being addressed by the solution design. With a Solution Model of the business problem and traceability to concepts that describe the solution, business stakeholders can readily see what bits are being developed that relate to the specific areas of the business problem…and which bits do not. It also enables engineering teams to understand explicitly which portions of the business problem are affected by system design or enabling technologies. This is particularly useful in the inevitable situation when technology limitations are discovered and engineers wish to know which business representatives to go speak to.
  5. Reuse resulting in accuracy. Having a model of the concepts the team manage can effectively reuse concepts where appropriate. This is super important. Take the example of a business entity. If you have a data model of the logical information entities, the team can associate processes, business rules, application interfaces, etc to the information entity, therefore, modeling reuse of that information entity. The value is clarity in the information and avoidance of duplicate information entities resulting in information accuracy. This is just an example using a model of information entities in the solution model. The same could be said for application interfaces, business process activities or any other concept.
  6. Early warning system. Ability to perform litmus tests if the solution meets the upstream business strategic goals. Assuming an agile development approach, the solution model implicitly contains traceability from business goals to the solution allowing visibility of the solution bits to be tested and proven effective on the business goals early in the project lifecycle.
  7. Reduce Risk of Scope Creep. Requirements are less likely to sneak into the project scope unnoticed. Including requirements as part of the solution model requires that they be associated to other concepts. Where there is no association, automated model integrity checks would easily identify rogue Requirements.
  8. Reduce Risk of Project Slippage through the ability to keep the team focused on specific artifacts. A byproduct of having a Solution Model is a clear understanding of what the various concepts a project team will manage and what needs to be done with them and when. This helps reduce unknowns or ‘learning as you go’ that can happen ultimately helping keep the team on track and focused on the specific concepts throughout the delivery lifecycle.
  9. Description of the entire business problem. A Solution Model provides a complete description of the business requirements. I’ve bold-italicized requirement because I want to stress that a requirement is simply a generalized description of the problem. It can take the form of process, use case, scenario, CRC or your traditional functional requirement, or something else. The point is that the model describes explicitly which of these will be included giving the model, once filled-in, a complete picture of the all-up business problem to solve.
  10. Enhances Requirements Management. The Solution Model allows Product Managers to manage a finite set of requirements for requirement change control activities. A Solution Model also quickly identifies which portions of the solution are affected by new requirements or changes to an existing requirement.
  11. Description of the All-up Solution Architecture. Obviously, with a model of the business problem and the solution all tied together, you have a complete model of the solution architecture and can create useful views/diagrams that show the all-up business problem, system model, data model, user experience, interaction models, integration model, etc. A well-organized model also allows for views that show how design patterns are implemented to justify and prove system quality. This is a very powerful value proposition. Consider each project team role and from their perspective being able to traverse the solution model in any direction to get a complete understanding of how other areas relate to concepts of your concern. For example, the Test Team may wish to link Test Cases to Source Code, Use Cases, User Experience Processes and Functional Requirements concepts. A Solution Model inherently provides this. Now, when Test Cases pass, the entire team will know what source code passed and what business requirements and user experiences are now enabled.

You might be wondering about where Project Documents fit into this story. A Project Document, in my opinion, is nothing more than an artifact created for sign-off. I don’t think that there are Project Documents that must be created for every project. Identifying which Project Documents to create and their purpose is a decision by the project team directly. There is no hard rule which to use for all projects. Now, what goes in them, I care deeply about. The content of any Project Document should reflect that model. Therefore, a Project Document composes model elements via Views that are designed for a specific set of Stakeholders and their Concerns. Ideally, Project Documents are built/populated from the Solution Model to ensure that the content is accurate.

Here’s a simple diagram illustrating how Model Elements, in this case a Requirement, Use Case and Process Activity related to a Project Document using UML notation.

image 

In Summary – a Solution Model is highly valuable. It is worth the effort to get it adopted by the project team.

I covered a lot of ground in this blog post and am talking about an area of modeling not well addressed in the industry. There is tons of information about modeling but little to no information about the business value of modeling nor how to get it adopted by a project team to help a Solution Architect be successful ensuring that a high-quality solution with integrity is delivered. Remember, there are lots of challenges to get a Solution Model adopted. But I hope that through the list of value statements, you will be able to convince your audience to adopt the Solution Model.

Categories Uncategorized