1. Guides
  2. Understanding Processes

Guides

Understanding Processes

How to think about building in the Stubber Framework

Overview

When first encountering the Stubber Framework, it can be difficult to understand how to build a process with just states and actions.
This guide will help you grasp the concepts needed to create efficient, high-level processes within the Stubber Framework.

What is a Process?

In the Stubber Framework, a process is much more high level that in traditional workflow and automation engines.
You need to think of a process as the high level end-to-end flow of a desired goal in an organization.
The Stubber Framework is designed to track processes that run over a long period of time, with lots of communication and interactions happening between the system and the user.

Where to start?

When building a process in the Stubber Framework, you should start by identifying the start and end points of the process.

For example, consider a vehicle service process. The process begins when a customer books their vehicle for a service and ends when the vehicle is collected. Your job is to outline the journey from booking to collection, considering all major steps in between.

Break it down

Once you have identified the start and end points of the process, you can start to break it down into smaller phases.
It's important that each phase is a large group of time between 5 minutes and months in a typical process.
So in our vehicle service example, we could break the process down into the following phases:

  • booking in the vehicle
  • waiting for the vehicle to be brought in
  • checking in the vehicle
  • waiting for the vehicle to be serviced
  • the actual service
  • waiting for the vehicle to be collected
  • collecting the vehicle

States

Once you have broken the process down into phases, you can start to identify the states that the process will go through.
A state is a period of time that summarizes the higher level phase the process is in.
It helps to think of states as future or present tense, as they are describing what the process is doing at that time.
In our vehicle service example, we could have the following states:

  • awaiting-booking
  • awaiting-vehicle
  • service-pending
  • service-in-progress
  • awaiting-collection

So from the break down you can see that the states are the parts where we're either waiting for something to happen, or something is happening.

Actions

Once you have identified the states, you can start to identify the actions that will move the process from one state to another.
An action is a task that needs to be completed to move the process from one state to another.
In our vehicle service example, we could have the following actions:

  • make_booking
  • check_in_vehicle
  • start_service
  • complete_service
  • collect_vehicle

So from the states you can see that the actions are the points in time where we're doing something to move the process along.

What to avoid

When building a process in the Stubber Framework, it's important to avoid any architectural or system implementation details.
These details will form part of the tasks inside the action.
It's a really common mistake that people coming from a traditional workflow background make.
The Stubber Framework is designed to be high level and abstract, so you can focus on the process and not the implementation.

Practice

It takes practice to get good at building processes in the Stubber Framework.
The more you build, the better you will get at identifying the states and actions that make up a process.

Right Sizing

It's important to right size your states. If the state is too small it becomes too specific and doesn't allows for freedom in the process. If the state is too large it becomes too general and doesn't allow for enough detail. It's important to find the right balance between the two.