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:
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.