Following Erno’s post of the bank story about technical decisions with a functional side effect I remembered a nice requirement about a birthdate in a system based on message communication. It is defined as following:
- A birthdate may not be in the future.
- A birthdate may not be more than 120 years in the past.
- If a birthdate is unknown the message should contain the default value ‘1-1-1900’.
- If you receive a value of ‘1-1-1900’ it should be interpreted as ‘unknown’.
Do you see the catch? What a pity for those (elderly) clients that are successfully registered in the system but keep getting messages about an ‘unknown birthdate’!