I noticed the other day that my phone, which used to have a relatively sophisticated (if horribly complicated) “do not disturb” approach had reverted to only allowing a simple version. Online, many users complain that now they can’t really use it because it’s too “dumb” regarding when it rings and when it doesn’t. How did it come to this? Why did the feature get removed? Because business rules broke it.
The old approach let you specify business rules. You started by specifying rules about being asleep or in meetings and then you started adding exceptions. But this gets complicated quickly. How does a phone do all the things real people need it to do?
For example, don’t ring:
- When I am in meeting, unless the caller is my significant other and it’s the second time they have called in the last 5 minutes
- Unless it’s one my kids and this the third time they have called, unless I am driving because then I can’t switch to the incoming call from the dial in anyway
- When I am at home, unless it’s someone that I call regularly or a favorite, unless I am asleep
- If I am driving and on my headset
- Unless I’m not in a meeting; but if someone important calls, answer, but otherwise don’t
- Unless it’s my emergency contact calling for the third time in five minutes, then ring even if I am not using my headset
You get the picture. Too hard to do effectively manage in a phone interface. Trying to use rules to solve this problem broke the feature.
But what if you thought about decisions instead of rules? Check out this decision model I came up with:
- The phone needs to decide what to do (ring or not)
- To do that it needs to decide where you are, what’s happening, who’s calling and how persistently are they calling
- It can do all of these by itself using things it knows (sensors), basic settings (sleep hours, calendars), contact info that you already have and the call log
- All you would have to do is specify a simple decision table to say given the set of conditions you wanted it to ring or not ring

Of course there’s some UI design to see how best to capture this decision logic (a table, reasons to mute then reasons to ring or what) but the logic would be simple because of the sub-decisions.