The concept of “zero code” is the wish-fulfillment myth of the BPM industry. Many advertisements will claim that the processes can be designed without any coding. This complete hog-wash. There is, however, a possibility for a zero-code system, but let’s imagine how that would have to work.
People desire systems that automatically do thing for them. They tried it, and found that they had to tell the computer what to do in what situation — this is coding.
Marketing the Illusion
Then a clever trick was played: the idea of typing a bunch of text in an unfamiliar syntax was associated with the idea of coding. People thought that the hard part about getting the computer to do what you want is the typing part. If we can eliminate typing, we can eliminate coding. That is, if we can make a system where you tell the computer what to do without typing, and only by using a mouse to drag and drop shapes, then you won’t have to do any coding, right? But you still have to learn what a bunch of obscure symbols mean, and what their interaction might be. It turns out that the “typing” is not the hard part about the coding.
Dragging and dropping symbols on a map to tell the system exactly what to do is still coding, and it is just as hard as typing the code in text, because the hard part is figuring out what should be done in what situation. You have not eliminated coding, you just disguised it.
Zero-Code Systems Today
There are some examples of no-coding systems if we look for them, we can talk about two that stand out:
1) Google Page Rank: When Yahoo was the top of the search world it employed a bunch of people to code up an index to the web. That is, they looked at a page, and decided where it should fit. Google invented Page Rank which gleaned associations just from the links between existing pages. No person had to decide that “giraffe” was associated with “african animals” instead that emerged from the data set without human involvement, that is, without coding. The algorithm can be tricked by purposefully constructing misleading links, but this is not programming in any traditional sense.
2) Google Translate: Every phrase translated gives you the option to see both the original and the translated version, and then you can improve the translation. Nobody has to sit down and program the translator by defining rules for it to follow under certain situations. Instead from the examples, it works out the rules by itself.
Actually, these are both a little more complicated than I describe here, bootstrapped by some initial coding, however it is fair to say that they improve without explicitly being told what to do. Two properties are common of these: (a) they learn by example, and not by being given explicit rules, and (b) nobody is in control nor has to take responsibility for the results.
Zero Code BPM Systems
There is then a possibility for a BPM system that learns by example. Here is what it would look like:
- When installed, there would be no rules around what a person does. No process diagram.
- There would be a basic set of capabilities around recording information and communicating this to others.
- People would identify people they work with, and make lists of colleagues very much like “friends” in Facebook, or “links” in LinkedIn.
- Workers would simply start writing and sending documents to others.
- After enough cases exist, the system would mine the history and show workers what the work patterns look like.
- The system would use these patterns to suggest a course of action by recognizing similarity with earlier cases. Similarity would consider instance data values, as well as timing and previous actions.
- The emergent patterns of work could be used for predictive simulation of how a particular instance might go, letting people know when it might reach a certain stage or be finished.
- The patterns could be used to distinguish different classes of people, essentially discerning their role without having to explicitly state it.
- The pattern from one person (or set of people) could be compared with another set to try and determine which one has better outcomes, or achieves these more efficiently.
- Simulations could be run using the pattern from one set of people, with the data from another set of people, to see if the other pattern might have done a better job. Such results are never conclusive, but still might be idea provoking.
At no point in this scenario did we say that anyone drew up a process diagram. Nobody specified what work was to be done, nor how to do it. Nobody was in control of assuring the efficiency of the organization, except in the normal way by training people and giving them performance reviews. This is a zero coding system. The system itself is adaptive and learns, not because people can program it really fast and easily, but because no programming is needed. Instead, it learns by example, and nobody is in control.
Back to the Real World
I am not trying to say that a zero-code system is better than a custom coded system. Instead, the purpose of this exercise to show a clear example of what a zero-code BPM system would look like, so that when someone claims that their system requires no coding, you will know what to compare them to. Or to be more concise: a process diagram is simply another form of coding — don’t be fooled.
My example does not include integration with other existing information systems. In my experience coding is required for any level of system integration. Anyone claiming to do integration without coding is hoping the listener is very dim indeed.
Zero-code systems are all around us: email does not need programming before use; an office suite does not need to be programmed before use. But these systems do not claim to support business processes in any significant way.
Nobody yet in the industry is ready for a BPM system that can not be controlled. There is a deep set management belief that workers must be controlled and that if you let workers do whatever they want, they will behave chaotically. There is a belief in the separation of brains and brawn: one set of exclusive people will figure out what to do, code it into the system, so that another set can do it without thinking. This market believes that command and control is needed to coordinate action.
Which is one reason why I showed a flock of murmurating starlings in my BPMNext talk. Clearly organization emerges without needed any single individual in control, and without telling other exactly what to do. But, of course, that is just a bunch of birds flying — the idea doesn’t apply to a human organization with thousands of individuals working and interacting with other individuals. Or does it?
In conclusion, the industry is clearly not ready for a BPM system which exerts no control over the participants in the process. Exerting control is what programming is all about, and therefor you will never see a zero-code BPM system sold as a BPM system.
Ah this is a fun blog post. Chaos could result from a loss of control – or from a loss of leadership. Interesting philosophical question. They’re not the same thing, of course.
Keith, thanks for a good basis for discussion. There are a few additional things to consider. I will eventually write a post to explain in detail but let me add-on to your post for completeness.
Obviously a lot of the confusion has to do with what zero-code means in the marketing. Clearly most consider zero-code to mean zero-programming. But yes, a flow diagram and writing rules is a form of programming and so is decision tables and any form of telling the computer what to do explicitly as it involves logic. There are many opinions as to what is acceptable to business users and what not. But there is one more issue and that is at time the programming is needed. Programming might be needed during setup of the system, during setup of the data interfaes or during creation of process templates. I propose that only the last is really relevant. But zero-code is a technical perspective that is really irrelevant. This is about business knowledge.
A zero programming solution that learns from past cases will produce as many good predictions as bad predictions. My main complaint is that process mining is also not a zero-programming solution, because data or process mining or most forms of knowledge systems require very educated AND experienced AI experts alongside business experts to do anything sensible.
Your suggested zero-programming solution will not work either. Two core things are missing. Mining knowledge from a past case/process is a fools errand. There is not enough information available. The main problem is that you can’t collect the relevant data from existing systems and from static logs. More data means mor static. You need less but relevant data. You can’t also do continuous improvement this way. Data collection as well as process optimization and continuous improvement have to happen in real-time. Which means that current BPM and Case Management Systems will never be able to implement it as they are missing the real-tiume access to such information.
The second element is that the machine-learning component (I call mine an agent) has to be able to categorize, segment and reuse knowledge. It can never learn the WHY but it can learn the WHAT-FOR. This means that goals, outcmes and handovers have to be defined by the business. These are needed so that the performers can decide what to. Over time the agent can learn to recommend actions that are goal-achieving by observing user actions in context with time and case structure.
As you know this what we offer today and it was a key element in our rating in the ACM report by Forrester. http://isismjpucher.wordpress.com/2014/04/12/making-sense-of-analyst-reports/
Max, you often make such black-and-white judgments without qualification surmising that something “can not work.” Process mining and data mining is clearly not a “fools errand” as you put it. You might as easily say “reading history books is a fool’s errand” because the future is never the same as the past. Yet we read history books and learn a great deal.
Presenting good analytics about how well people have performed, is not a “fools errand”. Feedback on performance is the best way to get people to repeat their good work. To say that only a fool gives people feedback on their performance is lunacy. Process mining is simply a picture of past performance. Good information on how well a person has been doing is EXACTLY what they need to improve their own performance.
The “fool’s errand” if there is one, is to assume that the people using this system would completely turn off their brains, ignore their own expertise, and blindly follow each suggestion as if it was a law. I never said or implied this. A “suggestion” is just that, something that a person may or may not use. Really just a reminder of what they did last time.
My goal here was to present what a “zero-code” system might actually be, and not to say that a zero-code system is better than coded systems. Yet to say that such a system “will not work” is as ridiculous as denying that the 18th century existed. Clearly people were able to get workplaces to “work” before there were machines to instruct their every move. There may or may not be better, more efficient ways of working, but the black-and-white statement “will never work” makes the rest of what you say less credible.
Pingback: The ‘Zero-Code BPM’ White Lie | Welcome to the Real (IT) World!
Pingback: Zero Code BPM - Wishful Thinking? | Thinknique Pty Ltd.
Pingback: Prototyping executable process models | Effektif
Pingback: Zero-code BPM is not a Myth | TMail21
Pingback: Rethinking BPM based on Lean Principles | TMail21
Pingback: Business Process Management ohne Code: Nur ein Mythos? – frox.ch