To Model or Not to Model? — That is the Question
Today there are many options for developing processes and applications. There is great debate in and around modeling representation and even about the need to model. Before we get into the representation issues, let's think about the reasons to model in the first place.
We know there is great pressure to get to code quickly to show results. There are better ways to compose code and APIs, and to leverage low-code approaches that might lead one away from models. After all, models generally don't execute directly … or do they? Though models might not seem to get to code quickly, they certainly help to code the right solution to meet the needs.
In my mind, there are three great reasons to create a visual model and five kinds of helpful models for developing processes and application components. Figure 1 provides an image of a sample goal model.
Figure 1. A Sample Goal Model.
Top Reasons to Model
Visualize the Connections Between Resources
Often, management, customers, partners, and employees think they understand the operational efforts needed to complete work, but in reality they don't. Certainly there is not a common understanding of operational processes and applications in all of the contexts and views held by the collective participants. Creating an agreed-upon visual representation gives a solid construct for explanation to all managers and participants. By combining the different views and perspectives into a whole model, common understanding is the likely outcome. The model identifies all the participant roles, decisions, actions, and results.
Gain a Common Understanding of the Current Situation
Quite often there are dark events, processes, data, events, and patterns to each of the participants in an application or process that may have been created by their organizational position, role, or specialty. By better understanding the moving parts and how they contribute to business outcomes we can make existing processes and applications work better — even without making any change in the base process or application. If changes are being considered, the current state models can either enable better approaches or remind developers or participants of crucial constraints.
Create a Consensus on a Future Solution
Gaining consensus on a set of target processes and applications is essential in all transformations — but especially so in digital transformations. Creating a group of participants to define a new way forward — and enabling them with models — allows for faster progress. Models can be used to verify that the new solution is correct from a number of perspectives outside the core design group. Also, it allows management to understand the sticking points in big change and engage participants early in the change process.
Top Development Models
Customer Journey Models
Often organizations are blinded by the strengths and limits of their products, services, and organizations, and they imagine what customers want. Customer journey models, if used with customer interaction, will create better processes and applications that actually deliver outcomes desired by customers.
Process models represent the sequences of decisions and actions towards goal fulfillment and dashboard results. They are helpful creating processes, application components, and tasks. While great for happy-path processes with limited exceptions, they can be limited when constructed for emerging conditions. A plus of a process model is that it can also identify resources involved with business outcomes.
Decision models represent the logic behind a decision and all the logical paths of complex decision combinations. For simple decisions, models can be skipped, but complex logic is often needed to get to results. This means that decision models are quite helpful in describing processes and applications.
Specifying goals and their relationships to contributing sub-goals is essential to processes and applications that are either emergent or agile in nature. In such cases the sequence is less important than the actual outcomes. In volatile contexts, goal-driven processes and applications dominate.
Data that is operational and static in nature can benefit from having models that show described entities and relationships. Even in emerging data environments there are helpful models that represent a growing ontology or other data patterns.
Modeling can be helpful for creating target process and application specifications, as long as "analysis paralysis" is avoided. Models can be created at various levels of detail and linked to more detail to provide complete specifications for development. Keep in mind there are many more business models that are equally helpful as those needed to develop processes and applications for broader contexts. These include business value, revenue, market channels, customer segments, organizational, knowledge, architectural models, etc.
# # #