Monday, January 5, 2009

Great BA Fallacies #5 - Accidents

Anyone who breaks in to another person's house is a criminal. Fireman break in to people's houses therefore firemen are criminals. Well obviously that is wrong and any idiot can see that. Is it always so obvious?

Functional requirement: Only a customer can withdraw money from their accounts. Is this ok? What about if they die? Alright, change it then: Only the customer or the executor of a their will can withdraw money from a customer's account. But suppose the customer is a criminal using the account to launder money?

The fallacy of accident is the fallacy of making a generalisation that disregards exceptions - applying general rules that allow no exceptions to circumstances that need to cater for exceptions.

Given these exceptions, a Business Analyst might be tempted then to restate the functional requirement as "Anyone can withdraw money from any customer's account". What the BA has done is commit the reverse of the accident fallacy by making a general rule based on exceptions - in effect by reasoning that since anyone MIGHT need to withdraw money from a customer's account then everyone CAN withdraw money from a customer's account.

So how to avoid these fallacies? Specify what the requirements actually are as definitively as possible:
1. A customer must be able to withdraw money from their account.
2. The executor of a customer's will must be able to withdraw money from that customer's account.
3. Anyone who provides evidence of their legal right to withdraw money from a customer's account can withdraw money from that customer's account.

Hopefully you can start to see how the three process models that would implement these three functional requirements might start to look and how they would involve different validation procedures. Perhaps these requirements need further refinements (for example combining requirements 2 & 3?) - doing these requirements is detailed, tricky work where fallacies are always waiting to trip us up...accidents happen...

No comments: