Which Approach Is Best When Developing Apps and Processes?
By Jim Sinur
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. But 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 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 of 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 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 represent the sequences of decisions, actions toward 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 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.
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 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 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.
Editor’s Note: This blog was originally posted at jimsinur.blogspot.com.