Edge Cases

In tools like Outlook, there are an impossible number of ways users can interact with the tool. This creates lots of 'edge cases' that don't get tested or developed for.

Here is one:
  1. Use the default setting that does not have the BCC line shown.
  2. Send an email with BCCs by clicking on the To: button and adding entries to the BCC line in the dialog box.
  3. Send the message
  4. Realize you want to reuse the body in a new message.
  5. Open the sent message and click resend.
  6. Type in a new To: address
  7. Send it to everyone you previously BCC'ed because Outlook doesn't show you the BCC line, even though it has entries.
Oops.

This is an edge case where adding a user to the BCC line causes it to be displayed, but opening/resending an email with users in the BCC line DOES NOT cause it to be displayed. The trigger logic is flawed, but you don't realize it is flawed unless you are aware of other ways that a specific state can occur. In this case, the logic to display the BCC line should be triggered by the 'state' of having entries in the BCC line, not the event of adding an address to the BCC line.