Pre-conditions

I have found that people, from business SMEs to software developers, often confuse triggers and pre-conditions.

Whether you are producing a business activity model, a process model (business use case) or a software use case, both concepts are relevant and the distinction is important. It is also important to be able to explain the difference, so here we go. I’ll start with an example of a common misunderstanding.

Think of a scenario for logging on to a system. Many people assume that a pre-condition to that  scenario is that the Actor already exists in the system as a user. That assumption would be wrong, however. If you are not sure why it would be wrong, or if you disagree, pause and think about it for a moment before you read on.

Systems that require log-on typically invite you to enter a user id and a password. You can try to log on even if you do not exist in the system. It is not until after you submit your user id and password that the system bothers to check whether there is a user which matches those credentials. In other words, there is no way of knowing whether the Actor already exists in the system as a user until after the scenario has already started.

A simple way to check whether something really is a pre-condition is to ask yourself: “Can the scenario begin without the candidate pre-condition being true?” If the answer is “yes”, then it is not really a pre-condition.

A pre-condition is something that must be true, or in place, before the scenario can even begin.

Business SMEs often confuse pre-conditions with triggers. When investigating a particular business process, let’s call it “Process Y”, you will ask what causes the process to start. The SME might answer that Process X has finished, or such-and-such has been been done. An inexperienced analyst will note that and move on. An experienced analyst will ask: “How do you know that such-and-such has been done?”

The answer will often be along the lines of: “I get an e-mail which tells me.”

So what really causes Process Y to start, the trigger, is the receipt of that e-mail. The fact that such-and-such has been done is a pre-condition, in other words the triggering event cannot happen without the pre-condition already being true.

The following analogy can be useful in explaining triggers and pre-conditions:

Imagine you have a process for getting ready for work in the morning. The process starts when your alarm clock sounds. The trigger is the sound of the alarm clock.  A pre-condition is that you set the alarm before you went to sleep.

More on triggers to come.

Kind regards.

Declan Chellar

Related posts:

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>