As an engineer, projecting design strategies and analysis methods onto non-technical, real world situations is an occupational hazard. On the job, we’re constantly collecting data, filtering information and trying to delete redundant inputs. After work, are we supposed to flip a switch and turn off the analytical engine between our ears? Thinking like this is not all bad. How else should we make decisions? By guessing, drifting with the political winds or pandering to our selfish personal desires?
One of my quirks is analyzing business decisions as if they came from a state machine. I’ll be honest, I love state machines because they give you the ability to narrow inputs to a given state and simplify and harden the resulting logic. It’s simply easier to design a robust system with a state machine, regardless of whether the end implementation is hardware, HDL or software.
Do we all remember how a finite state machine works? There are two basic types, the Moore (where the output depends only on the current state) and Mealy (where the output depends on both the current state and the combination of inputs). The current state represents the result of a sequential, historic, trail of states. For a state machine, the next state is determined by the current state and the history of states. The output is partly determined by the history of inputs.
Projecting this design strategy into real life is interesting. For example, how you react to a situation depends on history. And, if your personality represents an infinite impulse response style, then the pertinent history might be ancient—where you carry grudges and experiences around forever.
To expand this silly model to the corporation, we’re always trying to achieve more efficient operations. How fast can change be implemented? It depends on the magnitude of the change and the “gain” of the system. We all know, for stability, negative feedback is your friend, but it slows the output slew rate. If you want to move fast, operate the system in an open-loop mode, but this is unstable and since it rejects all the lessons of history, can be illogical and destructive. There should be an optimal control loop for corporations desiring change, a control loop that optimizes transient response without compromising stability.
In summary? To change an output quickly, operate an open loop system based only on the current state of inputs with no restraint on the output. Things will change in a hurry, but the output will be out of control and all over the place. That’s the risk.
To avoid disasters and get a well-controlled, safe and predictable output, then use lots of negative feedback and start from a state where a long history took you, but don’t expect rapid change. Gain versus stability. Slew rate versus control. Propagation delay versus bandwidth. It’s physics, my friends. Observe the world and think about state machines. Am I deranged or does this create a useful mental construct? Argue your case in the comment section below.
Do you have tales to tell about observing dysfunctional corporate state machines in action? Tell it to me straight in the comment section with prose, snippets of code or a flow chart.
This post is dedicated to Gary Sadamori (1952-2015), most recently a marketing manager at Fairchild Semiconductor. He was a good man and he will be missed.