During training conducted by Greg Young, about which I wrote here, we were given very important advice. If you want to get to know the business process well, ask how it would be done using paper. The word ‘computer’ should be forbidden. It has a strange influence on business experts. They start to focus only on how they think it should be done using a computer. They don’t think about process at all and you end up, in the best case, with CRUD. If you ask about paper version, a new way of thinking is started and more accurate results are acquired. A few days ago this advice was the key to success.
A bug and a new requirement
Last week new bug arrived. There was an inaccuracy in behaviour of our application. Care diagnosis, which is one of the business objects in our module could be deleted, even if some planning was made based on it in other module. I wasn’t sure how it should behave but I supposed that such planning should be cancelled. I was surprised when our business analyst decided that we should not cancel planning but prevent deletion of care diagnosis. I had only one word in my mind: noooo! I don’t have to say that reacting for changes in other module (that doesn’t produce events) just to set some flag or querying other module each time when “delete” button appears, to check its availability was not what Tiggers really like best. That was the first crump.
More or less in the same time new requirement was introduced. If new care diagnosis is added by scholar nurse it has to be validated by nurse. Then I knew that something is wrong with current definition of care diagnosis life cycle. There had to be something like a draft before an actual care diagnosis. I decided that this case is perfect to test the “paper approach”.
How it would be done using paper
After a short meeting with our business analyst everything was clear. So how it works using paper? Every care diagnosis is a piece of paper on which nurse (or scholar nurse) writes. If new diagnosis is created by nurse it is put into a patient’s file locked in a nurses’ desk. If a new diagnosis is created by a scholar nurse it ends on the desk. Then a head nurse takes all papers from the desk and checks them. If everything is OK she puts such diagnosis into the file but if something is wrong she can change it or even just throw the whole diagnosis away. She can do that because whole planning is done ONLY based on papers inside patient’s file. But can a diagnosis inside the file be thrown away? No, this can’t be done, because everything inside patient’s file is a care documentation. So what if we add such diagnosis by mistake? We should officially end such diagnose, just like we would end it after healing. All planned tasks (if there were any) that were already done are still done and next won’t be added.
In the new process everything is simpler. We have a draft that can be changed in any way or can be entirely deleted. We don’t have to check anything inside planning module because nothing was planned from a draft. After changing a draft into a new care diagnosis nothing can be deleted (and one more time we don’t have to check anything in other modules). If we want to remove, or rather end, diagnosis we’re doing it just as we would end healed one – by closing it and informing other modules so that they could e.g. cancelled not already done tasks.
The “paper approach” is a really brilliant idea. It will simplify your application and will bring it closer to the real life. The right question asked and suddenly it appears that e.g. deleting, which would be one “simple” click in the computer version, is not and should not be so simple in real life, where we would have to break into a nurse’s desk and remove piece of the official care documentation.
So next time, if you will have to model a business process, just ask how it would be done using paper.