Interface should behave consistently
It is important for UX but also removes the need to think about them during implementation.
There will be ranges, and rich text boxes, and image uploads. All will be the same type of interface.
You might use slightly different approaches for interface elements that are the same. For instance, in one model the start and end dates might be exclusive but inclusive in another.
This type of inconsistency, while not tragic, adds some friction both for users and for developers.
For users, it’s a mismatch with established expectations. It makes it less intuitive to use new features.
For developers, it means having to think about which approach to use.
I first noticed this on start and end dates. Sales start and end dates were always inclusive. But in another instance, without really considering it, I made the dates exclusive. Because the users were already familiar with the sales dates, I started receiving feedback for the second feature that it wasn’t working correctly. It was obvious that users were expecting the dates to be inclusive. From then on, I implemented all date ranges as inclusive.
All range entries should be consistent, for instance, maximum and minimum order values, or postcodes.
In the same vein, if 0 means no limit, it should always mean that.
Or if setting the end date to nil means forever, all other end date fields should function that way.
You can keep a Google Sheet that lists the expected behavior. Writing it down helps you remember, you’ll have somewhere to refer to yourself, and it can be used for new team members as well.
Previous Generate more data than you think you'll need
Suggest an improvement to this page (firstname.lastname@example.org)