Sorry, this entry is only available in Русский.
Process Pattern: “Internal Order”
As mentioned at “End-to-End Process Orchestration anti-pattern“, business doesn’t work like “one-two-three”: shop floors don’t switch on/off by every client’s order even at produce-to-order scenario; material purchases are arranged for a production program rather than for a single finished product. Hence an end-to-end business process is modelled not by a sequence of activities within a single process (so called process orchestration) but by several processes executed independently and exchanging data and/or messages.
In BPMN each process is modelled by a separate pool. A process chain “Order to Cash” - “Manufacturing” - “Material Supply” for example may look as follows:
“Order to Cash” process is initiated by an incoming message - an order submitted by a client. “Manufacturing” is triggered by a timer, e.g. at the end of each working day, and handle queued orders within a cycle. If necessary materials are not available then “Manufacturing” waits for a signal from “Material Supply” that they are delivered. “Material Supply” is scheduled by a timer too and arranges purchasing for materials having the projected stock balance below the limit. (The internal orders chaing may have more links than in this example, e.g. a metallurgical plant may have inter-shop orders.)
Such asyncronous inter-process communication implies buffers between them. The buffers accumulate orders passed from process-requestor to process-provider. In the example above these are “Manufacturing Orders” and “Planned Stock Balance”. Technically such buffers may be implemented by a number of ways: message queue, database records, ERP objects at some specific state. Of course the buffer internals better to hide by wrapping them with services like “insert”, “traverse”, “extract”.
Modern BPM Suites are able to model and execute diagrams like above and this is the major BPMS advantage over traditional workflow systems. However such diagrams turned out to be difficult for analysts as Bruce Silver noted at “BPMN to Requester: Get Outta My Pool“. The major issue isn’t the notation but “asynchronous thinking”. One should develop an ability to extract separate asynchronous process from what business present to you as a single process. The answers to following questions should help: 1) what business object corresponds to a business process instance; 2) which events correspond to process instance start and stop.
For example, even in the relatively simple process of hiring an employee we can find a set of business objects: 1) a headcount item; 2) manager to HR request to fill the item; 3) a vacancy passed to a specific recruiting channel; 4) a candidate; 5) hired employee. They do not correspond to each other as 1:1 and their lifecycles aren’t synchronous. E.g. a candidate may submit his resume not caring about whether we have a vacancy for him - it’s HR task to assess which vacancy (or vacancies) it’s worth to consider for him. So a single process will hardly suffice; it depends on your business how much process there will be at the end of the day.
Worth to note that employee hiring is a classic business process example that BPM vendors love to use for their products demonstration. Yet they try to do it with a single process! Obviously such demos are made by developers, not consultants.
Final warning: please don’t consider the above as a call-up to breed too many asynchronous processes. In fact, the choice between synchronousness and asynchronousness is a non-trivial managerial decision but we’ll talk about it next time.
(Русский) Семинар по бизнес-процессам для аудитории Школы Своего Бизнеса
Sorry, this entry is only available in Русский.
(Русский) Тим Лири и другие служители карго-культа
Sorry, this entry is only available in Русский.
Processes are fun
To be more precise, it was a big fun back in 90-s; modern process disciplines are not as funny as reengineering and ISO 9000. Look at the selection of Dilbert strips on the matter. » read the rest
Connection refused: from Toshiba laptop to HTC via Bluetooth
On third attept I trained my Toshiba laptop to browse Internet through HTC 3300 connected via Bluetooth. Laptop OS: Vista, PDA OS: Windows Mobile 6.
Following standard instructions results with “connection refused” message on the laptop. Forum users give various advices, including replacing Bluetooth stack on Toshiba. Nothing helped.
Finally I found the right document at Toshiba Bluetooth Information Center: Internet via Bluetooth (TOSHIBA PC — WM6_phone — Internet). Toshiba deserves the highest mark for the document and a low mark for their sites accessability and support site search in particular. I have found this Bluetooth site some random way and it took half an hour to find the same document once again.
But it’s not the end of the story. The document instructs to launch Internet Sharing from PDA’s Comm Manager. Yet HTC Comm Manager doesn’t have such icon. Solution: file explorer - “Windows” folder - “IntShrUI”. Copy then paste the shortcut into Windows/Start Menu folder. You may rename the shortcut to e.g. “Internet Sharing”. That’s it - now follow the Toshiba instruction to connect:
- Launch Internet Sharing from PDA Start menu and tap “Connect” (assuming that GPRS is already set up on the PDA).
- Add Bluetooth connection to PDA on the laptop (done only once) and connect.
Very Stylish Presentation
Is it possible to fit 100 slides into 10-minutes presentation? Check out this:http://blog.gardeviance.org/2008/10/gang-up-now-before-aas-cloud-gets-you.html
The presentation is about relatively new concepts - SaaS and Cloud Computing - but you’ll enjoy it even if you don’t care about these matters. I love when serious topics are delivered with artistic style. Wish to be able making presentation this way: perfect language, creative video row and at the same time sharp logic and usefull information.
What else can IT do?
There are actually not too many IT things that changed our life considerably:
- Mobile phones - no doubt. How did we arrange meetings without them? Especially at some unknown place.
- Internet: web, mail, social networks, e-learning etc. (Or should internet be on the first place?)
- CAD/CAM and automated manufacturing. Does somebody still draw blueprints manually?
- Accounting software - the amount of work that they do people probably won’t be able to make manually.
- Computer games. They changed minds of more than one generation, should be counted indeed.
- Pocket navigator. Well it’s more a satellite thing than IT.
- Various databases, storing important as well as junk data and documents? Sometimes I feel that we could live without them.
- Global transactions, exchanges etc. Not sure. OK, it’s faster than a telegraph, but is it that important?
- Automatic translation. It’s basically already here. We can read chineese or french sites and understand most of the content.
- Weaponry. It’s amazing but army didn’t take much from IT. Automatic targeting, cryptography, “echelon”… anything else?
We don’t have an artificial intelligence, even expert systems didn’t meet expectations. My favorite business processes and business applications altogether are minor things from this perspective. Tomography is a big thing in medicine but is there anything comparable?
Now, what can we expect to be done in next 10-20 years? (Not interesting to look closer and doesn’t make sence to guess farther.) Quantum computers? AI? Virtual reality? Micro-robots for medicine and war? Somehow I can’t imagine all that clearly. So here is my forecast:
1. Time machine
OK, one-way only. Look: if storage devices will continue to progress at same pace, we’ll have petabyte hard disks in 15 years. Now, video cameras watch you at every corner: at the streets, offices and homes. It’s a matter of wiring them up into a network and developing a software able to track any object in time and space.
This is already done yet occasionally and mostly manually. If done right, it’ll make a big progress in preventing crimes. Besides, it could be commercialized: one could watch a movie e.g. “me walking Paris last summer”.
I can imagine a volunteer watching say a car thief. Once again, something like that already exist: in US people was suggested to become virtual rangers and watch the mexican border right from home computer. Much better than watching your neighbors through the window anyway.
2. Total identification
RFID is getting into our life and I can imagine every piece of clothes on me and every stuff on my desk being able to answer “it’s me!”. Now imagine it’s connected to global networks, databases and one-way time machine - this is how the matrix will have us!
Silly spy things like marking a car will go away: everybody will carry hundreds of markers. Threads in our clothes will become these markers.
It’s amazing that RFID aren’t built into banknotes yet. I guess it’s close. This is how the last island of freedom - cash money - will fall. Probably certain powerfull men would not like it but anyway it’s a matter of time.
3. Speach recognition
A usefull thing, realy, and seem to be close. It’s easy to record but hearing a record is a pain, not to mention deciphering. Back at the unversity the same man who wrote the textbook on mathemathics gave us the classes - following the book word-to-word. Why going to classes then? I figured out that I’m able to read 5 times faster.
And now I’m pressing the keyboard acquiring arthrosis. I’d better sit at the massage chair speaking and then make a few edits.
Of course a side effect would be a geneneration not only preferring audiobooks but also unable to write. But who cares! In fact, I’m unable to write too, only to type. But people will learn rhetorics again!
4. Death of chess
I’m waiting for a chess program being able to solve this task: 32 pieces are aligned at the initial positions, whites begin and win. Or blacks make even.
It’d be less important than above but another page of manhood culture will be turned over and we’ll know the name of the last chess champion. But stay calm: online multiuser games will be a good replacement, and there are champions too.
Anti-pattern: “End-to-End Process Orchestration”
Definition:
- “Enterprise Process” (equivalent term “End-to-End Process”) is a business process connected to external customer at both ends and going through more than one top-level company’s departments.
Axiom:
- A BPM initiative would pay for itself only if you target end-to-end processes.
Otherwise you’ll be guilty of suboptimization sin according to Lean methodology or will “shoot sparrows with a cannon” according to Russian proverb. Yet it doesn’t mean you must begin with such a process - you may use something else for training but you won’t win a medal for training only.
Typical errors:
- BPM vendors love to illustrate their products by supporting processes like “Employee Onboarding” or “Expenses Report” thus provoking prospects to do the same. It’s OK for training but there is simply not enough money beghind these processes to justify enterprise-wide project which what BPM project is by definition.
- Many prospect wish to go for “Negotiating a Contract” process. There are money behind it but is this a process really? For me it’s rather a fragment of end-to-end process “Sales of Goods or Services”. Customer’s concern being the end result - i.e. performance of the process as a whole - it may happen that the bottleneck wouldn’t be this particular fragment. Narrowing a scope leads to suboptimization.
- And here is the worst case: “We have a process here, well-studied and alredy automated, now let’s implement it in BPM for comparison”. In other words, let’s make a race between good and better. For your project to be acknowledged by the management you must not only implement some process in BPM but also significantly improve it. You’d hardly make it with a process that was well worked on already.
OK, let’s assume that we do everything right and consider “Order to Cash”, a classic example of end-to-end process. (Good questions would be: “Why exactly this process?” or “How to pick up the best one from many company’s processes?” These deserve detailed answers however so let’s leave them for the next time.)
“Order to Cash” process in “produce-to-order” business scenario may consist of prepayment, manufacturing, delivery and closure subprocesses:
What’s wrong with the above diagram? It assumes (since we have only one pool) that manufacturing works synchronously with sales: no order - manufacturing is idle, order arrives - manufacturing starts working on it. If we got deeper into manufacturing subprocess, we would probably found materials and/or parts purchasing subprocess, sychronized with manufacturing in turn.
But businesses just don’t work like “one-two-three”!
Manufacturing does not switch on/off by every client’s order even if we produce to order. Clients’ orders are accumulated and picked up on regular basis, say daily by production scheduling process. Similarly, purchasing is not triggered by a single order usually but rather runs regularily or is triggered by stock level going below a limit.
Technically such work is implemented in BPM not by a singe sychronous process like shown on the diagram above but by several asynchronously executed processes that communcate with each other by data and/or messages. Such scheme can be drawn with BPMN and executed by BPMS - which, from my point of view, is a big advantage of BPMS over workflow. But let’s consider the correct diagram next time - what I’m going to say here is that asychronous execution is a core feature not only of this particular but of every end-to-end process.
Definitions:
- “Process Orchestration” means tasks execution sequence and logic within a single process frame.
- “Process Choreography” means the logic of several processes asynchronous execution coordinated by data/message flows.
Theorem:
- End-to-end process should be modeled by the choreography, not by the orchestration.
It was confirmed by practice and could be proved by the following consideration: since end-to-end process by definition goes through several top-level departments, you’ll have to take into account the working rhytm of each one of them, which means - modeling asynchronous execution.
An attempt to model it by pure orchestration is nothing else but following an anti-pattern which I will call “End-to-End Process Archistration”.