I am a sometimes-designer: a full-time software developer that dabbles in design and focuses on user-centric software experiences. As a full-time developer and a sometimes-designer, these are my non-negotiables when designing an experience.
1. Let people be lazy
If I need to think about how to use a product, I classify it as a bad product. This includes everything from not being able to find the checkout cart link on a shopping site to not understanding if I should select a yes or no checkbox. Products should be designed for stubborn, lazy people like me.
Don’t ever force your users to think; don’t ask them to remember things; don’t ask them to select the next step; don’t leave them prompt-less; don’t make them guess the meaning of something. Users should understand how to use your product within a few seconds, ideally with little instruction. Let people be lazy! If your designs don’t have the ability to seamlessly carry your user from point A to B, your designs have failed.
2. Know your technology
One of my biggest pet-peeves as an engineer is designers who don’t have any experience with/refuse to explore the technology they are designing for. If you are designing a banking app, understand common banking tools; if you’re creating a bike-based service, learn how to ride a bike; if you’re going to outsource production of your final device design, understand the factory processes you’ll be working with.
By gaining a slight understanding of the full-stack process you will be designing for, you will not only be able to design more knowledgeably for your target audience, but also align better with other stakeholders, such as the engineers implementing your design. This can also better loop you into the production process in a way that can prevent your design from being twisted and updated in unexpected ways. The production line for your design does not need to be a black box once your design leaves your studio!
3. Design for the ends of the bell curve
Within the target audience for your design, a bell curve of user skills is apparent, with some users able to navigate your experience in their sleep and others requiring ample time and assistance to work through the experience. But most target users fall in the middle of this bell curve, with skill sets ranging between the two users listed above. However, rather than target these “average” users in the middle of the bell curve, design for the “edge case” users at the ends of the bell curve.
By designing for the ends of the bell curve, these users first and foremost are no longer considered “edge cases” and are less likely to be forgotten in the design process. Secondly, catering a design to both these groups of users will guarantee the “average” users’ skills will be accounted for. Finally, this will ensure that concepts such as accessibility and superusers are designed for from the beginning and throughout the design process rather than as an afterthought.
4. Don’t design in a vacuum
In a perfect world, as a designer, you will have full autonomy, endless technology, and infinite money and resources to create the perfect product or experience. Unfortunately, this magical design-vacuum does not exist in the real world. In a large organization, you must design products that can be built quickly by engineers, promoted by the marketing team, and otherwise fit into the portfolio of the company. In a startup position, your designs must be both innovative but also profitable to both the company and its investors. Even by designing in your free time, you’re sacrificing time on one potential design to create another!
When designing, always bring your A-game and give your project 110% of your energy — but be conscientious of external factors that could determine the end-state of your designs. As a designer, you are responsible for breaking out of the vacuum: don’t be afraid to reach out to partners who will be evaluating your deliverables (such as project managers or lead engineers) and consider researching how your designs can fit into the bigger picture of the organization.
5. Think globally
As you begin to pin down your target audience for a new experience, if your experience will be hosted on the Internet, you’ll likely encounter many unexpected users outside your target audience. For example, you may have visitors from extremely low-bandwidth networks like parts of India, visitors for whom Internet is expensively prohibitive such as parts of Africa, visitors with government-restricted Internet access such as China, or visitors who don’t read or speak English.
When designing for the web, realize that your experience will be accessible to the whole world. To cater to these visitors, consider designing non-network intensive experiences for users on slower networks; use clear iconography to assist non-native speakers; limit the use of text-as-images to assist with both translators and screen readers; and avoid designing region-specific content such as requiring a user to input a US ZIP code to view content.
6. Address problems as a passion
Bring your passion for design into your work, but don’t design solely for your passions. Instead, have a passion for finding and solving user problems. The phrase “if you build it, they will come” is often used to discuss creating great passion products. However, problems and gaps in experiences are all around us — instead of (re)designing on top of existing content as a passion project, design to fill these gaps instead. In this way, you won’t need your users to come to something you’ve built — they will already be there waiting for you!