<I just asked over on bsky:> I'm morbidly fascinat...
# thinking-together
g
I just asked over on bsky: > I'm morbidly fascinated by Business Process Modeling. On some level it's exactly what I want: end user programming. > But then the only people I heard speak positively about it are vendors, which is very much not what I want > > It's also a non-topic in the alt programming circles I frequent. Any takes? I guess I could've just put it here. Curious if anyone has thoughts on it
t
I quite like it for just a drawing tool to capture a process. A BPM engine is excellent for long running stuff (e.g. multiple weeks) which is pretty hard to do from scratch. Even AWS step functions max out at 1 year, whereas a BPM process can run something like a yearly review cycle no problem (which has a little setup and post-processing so is a bit over a year), plus it has out of the box monitoring and intervention.
its better IMHO that UML, coz the diagrams are executable and reversible
g
Cool to hear that someone from the in-group is using it! What is THE BPM engine for you? Or do you use different ones for different tasks?
t
For collaborating on a diagram https://camunda.com/download/modeler/ And I have used Camunda twice for a process orchestrator as a consultant, and currently I build a decision system which is somewhat analogous to BPMN/DMN in a fintech startup (taktile), but thats not a standard thing
f
Interesting stuff, thanks for sharing!
k
I'd never heard of this area. Fascinating! First reaction: perhaps the big difference is in the code vs law angle we've discussed off and on here. Code is legalist: once you write and deploy the code, what it says goes. This feels like one of the soft processes where the reality lies out there, and the BPM diagram tries to capture what's out there. But where there's a disconnect the real people win. So the opposite of legalism and an improvement in many ways. Am I right? Tell me if I'm wrong.
t
well its still a bit inflexible, but it is coding through a configuration language which has a visual representation with embedded expression language. The state of a process is in a DB, so you can fix it via changing the value, which is easier that changing the memory of a running program, and a big part of BPMN modelling is that some of the "tasks" which are like message processors are that they can be human-in-the-loop. Human powered tasks are for clerks to fill in a webform after reviewing the documents or sending or receiving an actual letter or email or something. Think the step that happen after you apply and are granted a life insurance policy. They might ask for your medical history, get an actuary to check the number, give you an offer, then you accept, then they record that, send you an invoice every XXX, then you cancel etc. etc. maybe they rerun the numbers every year. So manual steps are very much 1st class citizens which is why its for modelling business processes, and also why its quite useful for diagramming an actual process because you clearly state whether its a person doing something on the flow of data or a computer.. BPMNs field of view is wider than something programming specific.
d
I found BPM useful when figuring out what's going on (and what I don't know), but not useful for getting feedback from the people in the process (usually I'm not automating the existing process but designing a new process that leverages automation appropriately, usually parallelizing things) For that I'd write webcomic like "scenarios", give them meaningful names, assign some priority (usually not optimal, but useful), then have focused conversations starting with the highest priority
What isn't apparent from looking at a BPM are the constraints, areas of expertise/experience/knowledge, guarantees/invariants, relative importance, and most common errors/workarounds. So, like code, the BPM encodes the what but usually not the whys.
I've been playing around with designing a language that generates workflows/apps based on invariants, sources of truth, and "decision power"
t
Oh interesting, what kind of invariants can be expressed. What is decision power?
d
Invariants right now are number of actors that need to agree (by role), min/max time between specific events, and certain information must (|not) be accessible to certain roles "decision power" is a workaround for humans where a role may have the power to make a decision regardless of information awareness
f
So manual steps are very much 1st class citizens
I think this is the crux of it.
j
I played with Camunda a bit while working for the Singapore centre for computational law. My impressions were that a) it is fundamentally encoding a process, not the rules to which the process must adhere, or from which the process is derived, so it didn't meet the brief, and b) it was designed for a very flat data structure, which seldom matches how laws are written. You can get it to handle anything, but you lose the benefits of the visual language and interface, which can really only handle tables and the like. There are people out there in the computational law space who swear decision tables are all you need. I'm firmly not in that camp. It was cool, but awkward for my use case.
p
You can get it to handle anything, but you lose the benefits of the visual language and interface, which can really only handle tables and the like.
I found similar things when playing with this. Which then made me wonder why are there not textual languages with very good libraries or DSL's for building BPM style systems in regular coding languages.
j
I suspect it's two things. First, I think the model used in BPM is constrained by the need to be able visualize it, so it is not very attractive if you aren't visualizing. Second, the amount of effort you need to save people in a DSL that is text based has to be considerably higher to be worth adopting, because most people who will use text languages already have a tool in hand that can work.
g
@Russell Leggett shared a lot of their experience over here: https://futureofcoding.slack.com/archives/CC2JRGVLK/p1740174745699749?thread_ts=1739940638.291049&amp;cid=CC2JRGVLK Reposting it here for the thread-subscribers who might be interested
j
Man, it's nice to hear that someone's hard-earned experience matches with your intuitions. Thanks for this.
"when standardisation moves from “standardise what already exists” to “standardise things that we think would be good but don’t yet exist” it enters dangerous territory." So much this.
r
Yeah, that was the exact sentiment I was trying to point to when I linked the article.