Why to Store Descriptions of Workflows and Not Just Guides
Plus, a high-level view of how Methodable stores descriptions of workflows and their relationships to people.
Part of a series of articles about Methodable, the human-programming tool. Each article focuses on one section of the Meet Methodable interactive guide and provides additional discussion.
Guides are Expressions of Workflows
People need ways to transfer workflows (ways of doing things) to other people asynchronously and at scale. Ideally, we could transfer our understandings of how to do things directly from one brain to another, like so:
But there’s no way to do that (yet)! So, we choose some medium through which to distribute representations of the workflow, and that’s why we make guides.
For example, this guide here is one person’s (actually several people’s) attempt to transfer the ability to open jars to others. The knowledge of how to open jars was compressed into a set of instructions inside the creator’s brain, then adapted into a visual how-to guide on the creator’s computer, and then distributed as a visual how-to guide to all kinds of folks who need to open jars, as depicted below:
The problem is, once a guide has been created, the ideas behind the workflow are locked into one particular medium. In the diagram above, the workflow description inside the creator’s brain is prematurely adapted to a single guide medium before being distributed.
Workflow Descriptions as Data Are More Adaptable Than Guides
What if we could more directly write down our workflow descriptions as data, then distribute that data and adapt it to whatever kind of guide media is best suited to each user?
The ability to interface with workflow descriptions as data is the core of my vision for better human-programming tools. In a tool that models and understands the actual constituents of a workflow — instructions, relationships, conditions, reasons, variables, and things like that — that workflow becomes much more adaptable and can help users in more personalized ways.
Human-Programming Tools Should Model Human Relationships to Workflows
Even better, if the workflow model underlying our human-programming tool is tightly couple with a model of each user and their relationship to workflows — steps they’ve completed, issue’s they are having, other goals they’re currently working through — Then each user’s experience with a particular program can be even more effortlessly personal.
Methodable’s Data Model
So how does Methodable actually store descriptions of workflows and their relationships to people?
Workflow Data is Stored in a Giant Network of Blocks
Each block in Methodable has a type indicating its role in a workflow, some text to describe itself, and a set of relationships to other blocks. For example, the image below shows the block relationships for a Methodable program called “Make a decision”. The blue blocks below are things to do, the black ones are workspaces.
This data model (a directed, edge-ordered graph) allows programs to be edited fluidly using an outliner, as shown below:
Methodable’s Data Model Represents the Actions Underlying a Workflow Rather Than the Visual Structure of a Guide
The block-type system is still under development, but so far the block types are all serve to encode human actions or other aspects of workflows like goals, choices, and workspaces.
Methodable blocks do not encode things like location and size of elements in a guide. Instead, that information is derived from workflow descriptions: For example, the guide page below was derived from the program whose data is shown in the images above.
So far Methodable has a single guide client, but since different kinds of guides can be derived from the same workflow description, in the future a single Methodable program could produce many different highly personalized guided experiences.
How Methodable Stores Relationships Between People and Workflows
Methodable is currently limited in its ability to store relationships between users and workflows, so I’ll describe the current abilities of the tool and then describe the near-term vision:
Current State of Methodable User Relationships
In today’s version of Methodable, progress in a workflow is encoded by URL: when you click “continue”, you are directed to a new webpage which is fully aware of how you arrived at that page, including what overarching goals you are following and what choices you’ve made to arrive at the current task.
The Vision for User Relationships
My goal is for Methodable to create personal records for every action that you start and finish. These records, more than just being useful for keeping track of progress between multiple work sessions, will also allow you to customize workflows that were originally created by other people, or to provide yourself with context on why you started a workflow and what you hope to get out of it.
The data model for Methodable was set up to allow for the records described above, but so far using the tool does not automatically create records. I plan to enable automatic record creation, as well as online program storage, in the next major update to Methodable.
To Summarize:
We need a good way to externalize workflows and transfer them to other people (or to ourselves in the future).
Ideally we can store descriptions of workflows and not guides, because descriptions of workflows can be adapted to different guide media.
Modeling relationships between workflows and their users allows for a much more personal, focused and helpful guide experience.
Methodable models workflows using a network of blocks, and eventually will store user-workflow relationships using personalized records that are generated as users interact with workflows.
If you’d like to see how Methodable takes workflow data and adapts it to multiple views/interfaces, click below:
And subscribe to this newsletter if you’d like to keep up with the project.