When Designing Workflows, Think Like a Programmer
By Integrify Posted August 19, 2014
We are Only Human
Business processes exist to serve very humanistic purposes. After all, businesses are created by people, for people, and are kept alive and nurtured through the effort of its people. Despite that, processes are best optimized by utilizing best practices drawn from very inhuman sources: technology, computers, and machines. There is a distinct dichotomy between humans and technology, and finding the right mix of both sides is the key. The same goes for building Integrify workflows that drive our internal business processes. Our human designs can be improved by incorporating best practices from computer design.
People can undoubtedly make decisions that machines never could, based on a rich and nuanced set of contextual information. Yet we often design things in a certain way for no real logical reason. We are creatures of habits...bad habits. We can improve greatly by understanding the broad strokes of computer design and applying its best principles to workflow design.
The Unix Philosophy
In an earlier age, when computer programmers were outcasts of society - pale-faced, thick-glassed, and often holed up in research labs with unkempt graybeards - the 'Unix philosophy' was born. As described by Wikipedia:
"The Unix philosophy emphasizes building short, simple, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators."
This philosophy has proven to be a great way to build strong distributed systems because it adapts well to the increasing pace of change in the modern world. It makes systems easier to comprehend, communicate to others, and edit because it aligns with our brain's instinctual desire for simplicity. We can only handle so much analytical information. Despite our ingenious knack for problem-solving based on context, experience, and prediction, we are limited by our ability to only juggle a handful of concepts at one time.
When designing workflows in Integrify, keep the Unix Philosophy in the back of your mind. Make workflows as simple as possible. Make them easier to change in the future. Make their interface clear and understandable for future users, no matter how complex the internal parts may be behind the curtains. These are winning strategies for long-term ROI in your business systems. The time savings up front are no match for the long-term benefits.
The Curse of Deadlines
Of course, this just isn't always realistic in our business climate, because we are constantly presented with a series of tradeoffs, restrictions, and human errors. Sometimes it is more profitable to keep a workflow large and unwieldy due to time or budget constraints. Sometimes short term gains are a better approach than long-term gains. But holistically, this needs to be the exception and not the norm.
Computer programmers find themselves in the same position when designing new software features. There may be times when a large and complex piece of logic simply can't be broken into more digestible pieces due to time limitations. Only through repeated iteration, brainstorming, and creativity can the complexity be whittled down into a more evolved design that can stand the test of time. Sometimes that time just isn't there. When the time is there, we must take advantage of it.
Defeat Complexity in the Long-Term
If you are finding your workflow hard to analyze and debug as it grows larger, that can be a warning sign that it needs a redesign. When your large monolithic workflow resembles a spider web, you may be best served by taking a step back to iterate further on the design and break it down into a series of smaller workflows. In time, that will prove to be the most profitable approach. The simplicity will allow other people to use the workflow for other purposes when it has to change, increasing collaboration and helping new ideas spark. The modularity will decrease errors, broken requests, and debugging time. It leaves something there that can be built upon in the future and composed into other flexible systems using the same components.
Over time, your profits will reward your forward-thinking commitment to simple design. More importantly, your brain will reward you with clarity, ideas, and innovation that no computer could ever provide.