As designers, we focus on the core interaction and forget the bits and pieces around it. The stuff that some people refer to as ‘polish’.
Here is a brain dump of my top easy to forget
but important design stuff.
- defining which events should be tracked
- did we consider loading states, especially for users on slow connections?
- how about error handling for total connection loss?
- are we handling component-level failure states to prevent the whole UI from breaking?
- does this change have some cascading impact on another part of the product?
- does this action need a toast message to give user feedback?
- do we need a tooltip to guide users? If so, what should the copy be?
- should this action have a keyboard shortcut? If so, which one makes sense (and is it available across OS and browser combos?)
- should the shortcut be included in the tooltip (refer to the previous point)
- is the UX copy clear enough for everyone to understand?
- did we consider the most extreme case e.g.
- in a file upload flow a user who tries to upload 1k files at a time
- in a text input field someone who writes 1 character and someone who writes 100k characters
- if we are working with APIs did we consider what happens if we hit the rate limit?
- what happens with wrapping and truncating text? (some users will have browser-level translations leading to longer than expected text span)
How do we avoid forgetting this stuff?
My current approach is to create a Linear template for every design issue. It ain’t much, but it’s a start.