Monday, May 9, 2016

To Model or Not to Model?; That is the Question

Today there are many options to develop processes and applications. There is great debate in and around modeling representation and even 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, APIs and 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 as quickly, they certainly help to code the right solution to meet the needs. There are three great reasons to create a visual model, in my mind, and five kinds of helpful models for developing processes and application components. Image of a sample goal model below:

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 the 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 participants 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 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 reminding 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 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 if 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 imagine what customers want. Customer journey models, if used with customer interaction, will create better processes and applications that actually deliver outcomes desirable by customers.

Process Models:

Process models represent the sequences of decisions, actions towards goal fulfillment and dashboard results and are helpful creating processes, application components and tasks . While great for happy path processes with limited exceptions, they can be constructed for limited emerging conditions. A plus of a process model is that it also identify resources involved with business outcomes.

Decision Models:

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 often complex logic is needed to get to results. This means that decision models are quite helpful in describing processes and applications.

Goal Models: 

Specifying goals and their relationships to contributing sub-goals are essential to processes and applications that are either emergent or agile in nature. In this case the sequence is less important than the actual outcomes. In volatile contexts, goal driven processes and applications dominate.

Data Models:

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.

Net; Net:

Modeling can be helpful for creating target process and application specifications as long as "analysis paralysis" is avoided. Models can be created at various level of detail and linked to more detail for 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.