I use contact lenses. A pair will last me a month, then should be chucked away and replaced by a fresh pair. I buy them in six-month packs. From time to time I have eye difficulties and may wear my glasses for a few weeks. Sometimes I forget to replace the lenses after a month and use them for six weeks.
The company where I ordered the first set of lenses will call me, some 5 months after collecting a pack of lenses, that my new lenses have arrived. I am supposed to come and collect them – and pay handsomely. I never asked for this automatic reordering, but they do it anyway and so far I have retrieved them – in the end.
Since they typically are ahead of me, I will ignore their first notification. After two weeks they call again – or send a note. After four such messages, them getting crankier every time it seems, I will finally get round to going to the store and getting those lenses.
5 months later, the phone starts ringing again. Note: that’s not 5 months after they received the lenses – it’s 5 months after I collected them.
I was wondering how their internal process is organized. How do they keep track of all their contact lens buyers and the schedules they are on. How do they know when to order and when to send me those notifications. And to what extent has that process been automated?
Being involved with BPEL quite a lot, my solution for this nail challenge is obvious: the great shiny BPEL hammer. So I sat down and scribbled the business process. Later on I will try to find time to turn it into a nice little BPEL demo.
But hey, when do I find time?
Note: after sending the notification, is waiting for two weeks until the next notification the main process and are event handlers on that event the best way of reacting to either the customer collecting the lenses or cancelling the order? Or should I use a Pick that either waits for two weeks and returns to the notifcation step or receives a cancellation and terminates or has the customer collect the lenses, wait for 4.5 months and return to ordering the lenses?