Effective Strategies for Planning the Design Process of Complex Products
Written on
Designing complex products presents unique challenges compared to simpler projects tackled during a design course or early in a career. After gaining a couple of years of experience as a product designer, the transition to tackling more intricate products can significantly enhance your skills.
Having worked on numerous complex products—sometimes enhancing existing features and at other times starting from scratch—I would like to share valuable insights into the design process I follow. My approach is particularly relevant for projects that require multiple phases and increased attention to detail.
What Defines Complex Products?
Complex products are characterized by a high level of design intricacy and interactivity. While these are often associated with B2B solutions, B2C products like Amazon and eBay also exemplify such complexity. The challenge lies not just in the product domain but in the various cases, workflows, and interactions involved. It's essential for designers to familiarize themselves with the domain; however, a lack of prior knowledge shouldn't deter the design process—rather, it necessitates dedicated research.
Challenges in Designing Complex Products
The primary hurdle in designing complex products is effectively breaking down the workload. It's crucial to manage the interaction designs and user flows without trying to address all aspects simultaneously. Attempting to tackle everything at once can be overwhelming, akin to trying to consume a large sandwich in a single bite.
Efficient Work Management for Complex Designs
To streamline the design process, organization is paramount. However, it's vital to acknowledge that complexity still exists even with a solid plan in place.
Establish a Limited Scope
Begin by defining the product's scope collaboratively with the product manager and developers. Focus on addressing the user's primary issues in the initial iteration. Utilizing a user story map can greatly aid in this process, as detailed in the book User Story Mapping by Jeff Patton and Peter Economy. This technique involves segmenting tasks, prioritizing them, and concentrating on the most critical elements.
Utilizing templates like those from Miro or FigJam during product design workshops can facilitate this process. Keep in mind that any unnecessary features introduced in the first iteration will complicate design, development, and testing.
It's a common misconception that more features equal a better product; I argue that a product with essential, well-functioning features is far more valuable than one burdened with unnecessary extras. For instance, while your email application may have many functions, its core purpose—sending and receiving emails—should be prioritized.
Break Work into Manageable Segments
Working closely with developers has taught me the importance of segmenting the design workload into smaller tasks. This method not only simplifies the development process but also enhances focus on each task. For example, the login process could be divided as follows:
- The user successfully logs in with the correct username and password.
- The user enters an incorrect password.
- The user inputs an incorrect email address.
- The user attempts to log in but has no existing account.
- The user forgets their password.
This breakdown allows for concentrated attention on each scenario, making the overall task more manageable.
Conduct Design Quality Assurance for Each Task
Each time a developer integrates a new feature into the development environment, it's crucial to test it thoroughly. This ensures that all user flows function as intended and that there are no visual discrepancies. Remember, the aim of design QA is to confirm that the implementation aligns with the design, not merely to identify bugs—though any bugs discovered should certainly be communicated to the developers.
Utilize a Design System from the Start
If you're working with an existing product, leveraging its design system is advantageous. If you're starting anew without one, creating a design system is essential. A design system encompasses more than just a UI kit; it includes code and components, necessitating collaboration with developers to determine the appropriate libraries.
Many UI libraries, like Ant or Material Design, can be utilized to avoid reinventing the wheel. For complex products, it’s more efficient to adapt existing components and focus on refining colors, typography, and other visual elements rather than starting from scratch.
Effective Component Usage in Figma
When designing high-fidelity screens in Figma, aim to use components extensively—ideally, 99% of your artboards should consist solely of components. This approach minimizes the potential for errors, making it easier to implement changes across multiple artboards.
Consistency Across the Application
Design the application with a coherent logic. For instance, if certain tasks are modals, it’s logical for similar tasks to follow suit. This consistency not only enhances user comprehension but also simplifies the developers' work, reducing the need for constant queries.
Collaborate with Developers on Implementation
Engage in discussions with developers regarding the implementation strategy. Since the app will not be developed in one go, collaboratively prioritize which components to tackle first, allowing for a clearer timeline and design delivery plan.
Document Your Decisions
Throughout the design process, particularly with complex products, documentation of design decisions is crucial. This practice ensures clarity and consistency within the team.
Test the Flow Again
Before presenting your design to the team or sending it for development, conduct thorough testing of the flows. This step allows for the identification of errors and missing scenarios.
Create Prototypes
Prototyping your flows can significantly enhance understanding and facilitate feedback from developers and product managers. Focus on smaller flows to ensure precision and clarity.
Organize Your Figma Files Effectively
Proper organization of design files is essential for team collaboration. Sometimes, it may be beneficial to divide designs into multiple files to enhance clarity and accessibility.
To learn more about organizing Figma files, refer to my articles on the subject.
To Conclude
This guide encapsulates my approach to designing complex products, emphasizing the importance of:
- Focusing on user pain points
- Prioritizing tasks effectively
- Segmenting design into smaller flows
- Collaborating with developers during design QA and system creation
- Conducting thorough testing
- Organizing and documenting design information
Thank you for reading! I hope this guide aids your understanding of planning for complex product design. Feel free to share it with your colleagues, and reach out with any questions.
If you enjoyed this article, consider following me for updates on future posts.