Similarities Factorio and Business Process Modeling ( BPM)

Post all other topics which do not belong to any other category.
Post Reply
plotti
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Mar 29, 2020 11:40 am
Contact:

Similarities Factorio and Business Process Modeling ( BPM)

Post by plotti »

I've been thinking about this thought for a while....

To me it seems to that factorio is like a next level tool for business process modeling (BPM - For an example of a BMP graphic see https://foryouandyourcustomers.com/wp-c ... tomers.png). Why?

Well - In a classic BPM you model the process and then you make a powerpoint of it, show it to your boss and store it in a wiki. Aka the minute you have created it its outdated and no one uses it? Why?
- Because its complicated to model in the tools we have,
- Because users needs expert knowledge,
- Because the result is not connected to real operations
- Because it lacks data (we don't measure the stuff that goes through the system)
- ....

Now in factorio we constantly model processes and see the outcome of the modeling instantly, this allows us to quickly change things and optimize them. This leads to efficient processes. Everybody with 30min of training can understand what is going on and take action. Aka things are piling up on a belt, or lack of resources, or alarms getting triggered. Additionally the process modeling is done on the real system so its never out of sync and it is actively used.

I was wondering could we create a new game like BPM system for the business world? Does such a thing exist? Can we even mod factorio in such way?

Looking forward to hear your opinions on it.

Cheers
Plotti

Amarula
Filter Inserter
Filter Inserter
Posts: 511
Joined: Fri Apr 27, 2018 1:29 pm
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by Amarula »

I agree it would be very cool to have a tool like Factorio for real-time data-driven business process modelling.

I would think that mods would be able to handle many if not all elements. For example, add a new item called money. Customers would send money into the system, and you could use the existing circuit system to trigger release of purchased products when enough money has arrived. The money would travel through the financial operations part of the process, to go to pay suppliers. This could be used to drive standard reporting like cash on hand and return on investment.

While it would be very straight forward for a mod to model what inputs are needed for a given product, and how long it takes to make, it would be more challenging to model the transport chain elements - how many items you can put on a belt, and how long it takes for the belt to deliver the items, but it should be doable.

Sounds like fun!
My own personal Factorio super-power - running out of power.

plotti
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Mar 29, 2020 11:40 am
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by plotti »

Here is a demo of ProM / Disco a Tool that visualises processes based on Eventlogs. It looks nice but very shitty in comparison to a Factorio world.
https://imgur.com/a/9Q621oV

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by ssilk »

From my perspective this will never reflect you the reality. Only for really simple systems, like if you have a machine, that needs x liters of gas per hour to work.

And system is the right word: system-therory says, that you are part of a system and so not being able to understand how it really works.

I try to explain and I hope I don’t mix up too many things, because it is awhile ago that I’ve learned about it.

A system are the connections between the entities. In Factorio for example the electric system, it does not consists out of the producers and consumers but out of the connections between them, which are spanned by a network of power poles. That’s is really simple, because it just connects everything with everything.

In reality the wires have a resistance. And we can generally say, two entities are less connected, the more far away they are, but how connected depends on the power usage of all the other entities at that time.

From outside you might have a chance to understand this. You can measure the voltage between some entities and so you can get an idea of what’s going on. But that’s all. You will not find out why the system behaves like so.

If you are inside of the system you cannot do such things, because you are just an entitie of the system and if you want to install voltage meters you change the system - just by saying that you want to do that.

Example from reality: we have a stock of bureau materials in our office and everyone can take what he needs without asking. So that is a very small and simple system. But still a system. But if we now want to measure how much everybody needs and why, we need to change that. And when now everybody needs to write himself into a book (who, when, what and why), they will find ways to go around that process. “I need to get some new pens for me, does anybody need also pens? I can get some more with me.”
The people adapt to the new system and change their behavior (they learned) and what you will measure now is bullshit.

Or other example: someone’s job is to order everyday enough coal to keep the engines working. To reduce cost he is allowed only to order double of the amount the engines uses per day in average. But he does this job very long and is now quite skilled. So today he makes a call: “Hi Billy! ... fine, fine, and you? ... nice. Billy I call for a reason: do you remember when we lost power a year ago? ... right, we didn’t had enough coal. And that could happen tomorrow again. ... because they might need so much power tomorrow: no wind, no sun, you know? ... so I want to ask if you can deliver 4 times more coal than average and ... I know, I know, but we can fake the order like we did two months ago. ... nice, thank you, bye bye”

As said, the system will find ways to go around problems that cannot be measured.

Similar thoughts are valid for any other system. And you can of course simplify the system to a tailoristic process by forbidding everything, that is not defined in a process. But then it’s not a system anymore; it will not learn, it’s static and any change from outside has the possibility to kill the whole process.

P.S. And in times like now, what kind of system do you want: a self-learning system, that can adapt to most changes by itself or a perfectly balanced process, that can operate only in a window of allowed changes? :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

dyce
Burner Inserter
Burner Inserter
Posts: 16
Joined: Mon Jul 08, 2019 9:13 am
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by dyce »

ssilk wrote:
Sat Apr 04, 2020 4:28 am
Very interesting read, thank you!

plotti
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sun Mar 29, 2020 11:40 am
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by plotti »

You are raising interesting points but are missing the point a bit i think... let me try to explain:

When I think of a business process modeling system, I basically mean it can be three things:

a) a system that models how things COULD be without having a clue how they are. Think of a blueprint or a simulation.
b) a system that captures how things ARE without influencing the processes. Think of a big log of events captured everywhere and being visualized.
c) a system that captures how things ARE and is used to CHANGE how things COULD be. Here is where I imagine factorios place.

Imagine if we only were able to capture what is going on in the company by creating logs on every event and instead of putting these logs into an excel sheet only to be analyzed by experts we turn this into a live game like factorio. Once the game is working we see bottlenecks etc.. in a very intuitive way. Now if we change something in the game, this would propagate into the real world. e.g. Think of the ticket that normally gets set to developer X now gets first send to UX architect y to be reviewed and then sent to dev X. We run this changed scenario and see how it goes. There are two ways here:

We SIMULATE it in the game and see if the change would have an effect on the overall system. --> Very quick iteration.
Or we simply execute the change in the REAL world and wait for the data to come in, then we see the actual results. --> Rather slow iteration.

Or we do one after the other aka. we simulate the changes in the game and if the outcome looks good we do the real-life experiment and if it works great. If it doesn't we also learn something.

What are your thoughts on this?

In regard on the system theory points you are right, you'll find most of the material very nicely laid out by Luhman https://en.wikipedia.org/wiki/Niklas_Luhmann . In a sense the idea of finding a balance between a tayloristic pov of the world vs. an agile one where we "just" iterate because the process is to complex to be modeled is an interesting idea. I think that currently the pendelum is swung mostly into the agile world, while there are a lot of interesting ideas to revist the process oriented tayloristic view on the world and marriage it with an agile approach (aka. being able to see how things are in a splitsecond and iterate on this)
ssilk wrote:
Sat Apr 04, 2020 4:28 am
From my perspective this will never reflect you the reality. Only for really simple systems, like if you have a machine, that needs x liters of gas per hour to work.

And system is the right word: system-therory says, that you are part of a system and so not being able to understand how it really works.

I try to explain and I hope I don’t mix up too many things, because it is awhile ago that I’ve learned about it.

A system are the connections between the entities. In Factorio for example the electric system, it does not consists out of the producers and consumers but out of the connections between them, which are spanned by a network of power poles. That’s is really simple, because it just connects everything with everything.

In reality the wires have a resistance. And we can generally say, two entities are less connected, the more far away they are, but how connected depends on the power usage of all the other entities at that time.

From outside you might have a chance to understand this. You can measure the voltage between some entities and so you can get an idea of what’s going on. But that’s all. You will not find out why the system behaves like so.

If you are inside of the system you cannot do such things, because you are just an entitie of the system and if you want to install voltage meters you change the system - just by saying that you want to do that.

Example from reality: we have a stock of bureau materials in our office and everyone can take what he needs without asking. So that is a very small and simple system. But still a system. But if we now want to measure how much everybody needs and why, we need to change that. And when now everybody needs to write himself into a book (who, when, what and why), they will find ways to go around that process. “I need to get some new pens for me, does anybody need also pens? I can get some more with me.”
The people adapt to the new system and change their behavior (they learned) and what you will measure now is bullshit.

Or other example: someone’s job is to order everyday enough coal to keep the engines working. To reduce cost he is allowed only to order double of the amount the engines uses per day in average. But he does this job very long and is now quite skilled. So today he makes a call: “Hi Billy! ... fine, fine, and you? ... nice. Billy I call for a reason: do you remember when we lost power a year ago? ... right, we didn’t had enough coal. And that could happen tomorrow again. ... because they might need so much power tomorrow: no wind, no sun, you know? ... so I want to ask if you can deliver 4 times more coal than average and ... I know, I know, but we can fake the order like we did two months ago. ... nice, thank you, bye bye”

As said, the system will find ways to go around problems that cannot be measured.

Similar thoughts are valid for any other system. And you can of course simplify the system to a tailoristic process by forbidding everything, that is not defined in a process. But then it’s not a system anymore; it will not learn, it’s static and any change from outside has the possibility to kill the whole process.

P.S. And in times like now, what kind of system do you want: a self-learning system, that can adapt to most changes by itself or a perfectly balanced process, that can operate only in a window of allowed changes? :)

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Similarities Factorio and Business Process Modeling ( BPM)

Post by ssilk »

plotti wrote:
Sat Apr 04, 2020 7:09 pm
When I think of a business process modeling system, I basically mean it can be three things:

a) a system that models how things COULD be without having a clue how they are. Think of a blueprint or a simulation.
b) a system that captures how things ARE without influencing the processes. Think of a big log of events captured everywhere and being visualized.
c) a system that captures how things ARE and is used to CHANGE how things COULD be. Here is where I imagine factorios place.
TL;DR: I think a) and b) is partly possible if we are talking about bulk materials in a very strict process - with your mentioned log events or a very strict timing. And then of course c) is also a possibility. But that is still a very complex modeling. E.g. if you need to transport items from one process step to the next you might use belts with very, very different speeds. And I list more reasons against it in the post.



So for me it looks like you are tapping into the trap. :)
While a) is surely possible and makes sense, b) will fail (when system theory is right), because if you try to visualize what’s going on you need to know what’s driving it.

This current situation is a perfect example: now, we sit at home because of corona and if we want to work at home, we need information to be able to work. So, when in the company this needed information was hided behind thick fences till now, this will be revealed. Because otherwise the people cannot work. And so - for a short time - the mechanics in the system will be visible.

But in normal state of a system this kind of information will not be visible to anybody. Because it was hidden for reasons or just because nobody thinks about it. And if you try to reveal such things, but it’s viable for the system to survive that this was hidden, then you change that system (or destroy it). Ok, that’s a bit hard.

Yes, it is possible to visualize parts of a company (a system). Those parts, that has been designed from outside. Let’s say a potato chip production (a tailoristic process). The oil needs to be 170 degrees Celsius, the slices exactly, 1.34 millimeters, they need to swim exactly 67 seconds in the oil and after 3 minutes shake the spices on it.

But when it goes to marketing of the chips nothing will be like that. Well we can try it: the boss of the chip company comes into the marketing bureau.
“Hi, boss, what’s going on?”
“I looked at the numbers. You guys make a very good job, but it is not reliable enough.”
“? Ahmmm?”
“In July you had seven cool marketing ideas. But in August only one!”
“And what...?”
“I want you to make one marketing idea per week. That’s the average of July and August.”
“What?! But ... but ... but ideas are not planable. They come and go.”
“Why? What’s so complicated on having an idea? I mean we have this potato machine, the most complicated thing I know...”
“Ahmmm, well boss: the production of potato chips is complicated, but having good ideas is complex.”

That the point: when something is only complicated you are able to understand how it works and you can do such things and make a model from that (in Factorio).

I think that others can follow I add here a picture:
Image
That comes from the https://en.m.wikipedia.org/wiki/Cynefin_framework

So what you need is to isolate the complicated things from the complex stuff.
But if this complicated thing is part of a complicated system and you create a model from it, it will influence the complex part of the system.

So b) alone is not possible. It will always be more like c).

An example: lets say you have a fully automated high rack warehouse, robots store things in it or bring things. It’s completely tailoristic. Now you create this model. And the service personnel for the robots get interviewed: how much fails do the robots have per month. But the service technician thinks, this model might cost his job. So his answered with absolut wrong numbers. And based on that numbers you create a wrong model. And because the model is wrong (or let’s say it is not completely right), but you base now your workflow on it, it changes the whole system. For example the wrong numbers from the technician let you come to the conclusion that we need to stop the warehouse for an hour everyday, to repair things etc. Because the warehouse is not accessible during that time, other colleagues make a pause in that time, too. Which leads to less sells in that time, or other effects.

Well, I said it makes sense to model parts of a company. Especially those, which are strict procedures, where it is viable that the process is documented, e.g. legal restraints. Or that nobody can change it, e.g. a cake recipe. Or that you can copy it to another location.

And Factorio itself is also limited in that way: you can model only complicated things with it, because Factorio is also only a complicated model.

And, yes, you can model things like the above mentioned warehouse: very simplified of course. Put an item into an active provider chest and a robot will come and bring it into the storage chest. Then request that item with a provider chest.

That works, and you can base a business model on that (or better a workflow model) but it is complicated to bring in the timing component. I try to explain: lets say we have a process, that takes not always the same time. Like you get an order in, and depending on how many people you have in your delivery department and how many order come before and how long it takes to work an a order, it can take a while, until one can access the order. And what you need here with Factorio is, that you have devices (assemblies) that need some kind of signal how long they should work for this item.

Well you can simulate that time with programming the inserters. An “order”-item comes in. Now the inserter is triggered from external source. Some log-analyzer translate the message “order in progress” to a signal for an inserter.

The item is moved into the assemblies and out comes a “processed order”. But the output inserter will wait to output that, until the mentioned log-analyzer filters “order processed”.

And so on. I think you can visualize some simple process parts like so.

But think to this problem: if you make the model like so, you can create only maximal 4 workers that can work in parallel. Because you can place maximal 4 assemblies around one tile in a way, that all four can be feed by inserters. If you place the assemblies in an array you might not simulate it correctly, because it can take some time until an item comes back to a spot where an inserter can grab it.

Hmmmmmm. :)

It might be possible to model a business workflow with Factorio. But it is hard, compared with existing software solutions, really hard, because
- it seems to be very complicated to model parallel processes with more workers than 4 without heavy modding. (E.g. add some very big chests, 20x20 tiles so you have 24 assemblies in parallel)
- items are atomar and normally don’t have additional information on it. So you cannot be sure, if the output items are in the end in the same order as in reality.

And a lot more of such issues, like for example problems with material consistency (like when you add water and transport it through pipes), or that material can change during transport (think about bread), ... I will not explain all here, because the post is already too long. :)

But well, if you have bulk of materials in a very straight process and order doesn’t matter, why not? I think for example to a cement factory: stone comes in, and each 100 kilo of material will be represented as one item. That is broken through several process lines and you know when it is finished and how much tons goes to the next process line. And so on.

Yes, that might be useful. And you can replace the default graphics with a mod for simplified graphics. (I know there is a mod which does that, but didn’t found it)
So the summary
yes, Factorio can be used for that, but only in very, very limited areas, which reflect what Factorio as game already does.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

Post Reply

Return to “General discussion”