Design Review Checklist
This is an attempt to codify the things that I consider during a design review. This list is by no means prescriptive, but will hopefully act as a useful guide to someone. Or at the very least myself.
There are 3 key areas that should be considered when reviewing designs for new features:
- Customer Need
- The Big Picture
- Development Readiness
I’m going to go through each in turn, and highlight some of the questions that I like to ask myself.
Customer Need #
At the end of the day we are building functionality for people to use. So these people, our customers, should be at the forefront of our minds when reviewing designs.
- Is the core use case clear and obvious?
- Can the user easily achieve their desired outcomes?
- Are fields clearly marked?
- Is the copy good?
- Is the core use case as simple as it could be?
- Can the user self teach use of the functionality, or will they need some guidance?
- Depending on the feature and the sector you work in needing some guidance may not be a deal breaker
- Do we effectively help the user when things go wrong or they make a mistake?
The Big Picture #
Features don’t exist in isolation. They are generally going to slot in to an existing product. Therefore we should consider:
- Have we used existing design patterns or have we reinvented the wheel?
- Is the look and feel in keeping with the rest of the platform (app, website etc.)?
- Are the language and terms used in line with the app in general?
- Have you considered how a users will access this feature from the wider app, and to leave it when they have done their work?
- Sense check: do we actually need to build this? Is there a simpler option?
- Building something comes with the implicit promise that it will be maintained going forward. You should not enter into this lightly.
Ready to develop? #
The ideas and outputs of a designer don’t always map 1:1 with that of the person that will be building the feature. The developer. So it’s good to to think with your developer had on, and identify some of the things that they’ll need to know:
- What should the loading states look like?
- What should the error states look like?
- Are we going to be able to reuse existing components?
- It’s very easy to make superficial/unnecessary tweaks in design that could increase development time/effort for little benefit
It’s always helpful to get a developer in the mix as early as possible to help you consider some things as well. So they can help you interrogate:
- Data requirements
- Do we have the relevant data available to us?
- Are there already APIs that supply this data to the front end?
- Are there elements of the design that are “nice to have” but have the most onerous data requirements?
- Should probably descope - or consider for a v2
- Interactions
- Are there any cool new integrations that have been introduced that would be challenging to develop?
- Permissions
- Have we thought about which users can use this functionality?
- Does this have any bearing on the design?
That’s it for now. I may update at a later date if I change my process or want to add something.