My name is Olga Abramova; in this article, I will share valuable insights and practical tips acquired through my extensive 7+ years of experience in the world of UX/UI design, including my experience in designing browser-based cloud 3D software, which, in turn, represents a highly complex and professional-grade software endeavor.
Firstly, let me elaborate on what should be considered under the umbrella of complex software from a UX/UI perspective. Complex software refers to sophisticated applications meticulously crafted to execute specific and often intricate tasks. Such applications find common usage in scientific research, data analysis, simulations, 3D modeling, and various specialized domains, primarily catering to professional needs. Embracing advanced functionalities, these software solutions are well-equipped to tackle complex algorithms and challenging operations. On the other hand, we have simple software applications and websites, falling under the category of basic IT products that have limited functionalities and scope, designed for common tasks, providing a more straightforward user experience that is easy to navigate and comprehend.
So, which characteristics are most common in complex software?
Taking into account the complexity of the aspects I mentioned, which the UX/UI designer needs to consider when approaching this challenging task, I have prepared certain guidance to help optimize the workflow and achieve the best possible outcome. Furthermore, one study has revealed that UX implementation can effectively reduce wasted development time by 50% initially and a further
This is quite obvious, but you have to have experience in the software you are working on. So, before diving into the design process, you should acquire a thorough understanding of the software or similar types of software you are going to deal with. While every project has its unique aspects, there are often existing user experience patterns within the industry that you should be aware of. Research and explore previous versions or similar software in the market to identify common patterns and industry norms. You will have to become a user yourself to dig into the peculiarities of the tasks regular users face in their work process. Becoming a user yourself will give you valuable insights and ensure your designs align with user expectations.
Consider the varying levels of expertise among your users. Some may be newcomers to your software or even novices in this field, while others may be advanced users seeking to leverage the full potential of your software. To cater to both categories, you can incorporate features like Autopilots, Presets of Actions, clear onboarding processes, and comprehensive Help and Learning sections. Additionally, providing advanced users with precise settings and hotkeys will enhance their efficiency.
Take into account users who may be migrating from other software or previous versions of the software you're designing. For users transitioning from other programs, consider incorporating preset hotkeys that align with popular software they are familiar with. For users upgrading from a previous version, ensure that the Help section provides information about the changes and new features to facilitate a smooth transition.
When designing software for multi-user environments, determining the appropriate roles and access levels is essential. Consider the different needs and permissions required for roles such as Owners, Editors, and Viewers. Additionally, address sharing and security aspects to ensure seamless collaboration while safeguarding data integrity.
Collect and analyze available statistics, user data, and business requirements. This data is crucial in understanding user behavior and aligning your design decisions with the desired outcomes. Relying on assumptions alone can lead to surprises, so leverage the available information to rely on real data. For example, sometimes you can be provided by the assumptions the company has about its audience, but the reality might appear different after proper research and will surprise everyone.
Over time, users have developed familiarity with common digital patterns such as search functionality, project page layouts, or accessing help. While introducing new ideas is valuable, it is generally advisable to adhere to well-known patterns for major actions while incorporating innovation in smaller details. This balance ensures a sense of familiarity and reduces the learning curve for users. Nevertheless, sometimes, these patterns can be neglected to teach users new, bold, and useful ways of using familiar things.
Developers can be valuable allies in the design process. They possess technical expertise that can help you overcome prototyping challenges, particularly in complex areas such as 3D software. Collaborate closely with developers, listen to their ideas and thoughts, and actively participate in their work-tracking platforms like Jira. This collaboration will enhance the efficiency and effectiveness of your designs while minimizing design bugs. A
Unlike websites or apps, where loaded interfaces can be divided into several steps, screen sequences, or partly hidden on a backend side to make the user journey easier to perceive, complex software interfaces often require fitting multiple functional elements within a single screen. Carefully evaluate all the necessary functions and ensure they can coexist harmoniously without overlaying. Thoughtful planning and organization of the interface will contribute to a seamless user experience.
Software can involve heavy processing, especially in cloud-based environments. It is crucial to build up a system responsiveness to ensure a comfortable user experience. Some procedures can take hours to complete. Your users can run several tasks at a time. Their computer can lose its network. The object they are using can be too heavy and need time to get visible on a screen. These and many other situations need system response solutions. So, account for situations where processes may take extended periods or run concurrently, the network can be lost and think of others. Consider implementing loading indicators, optimizing network performance, and providing visual cues to manage user expectations during resource-intensive tasks.
The cursor is a subtle but crucial aspect of the user experience. Consider different cursor states beyond the default arrow and hand, as they can serve as intuitive indicators or enhance specific interactions. For instance, Figma changes the cursor to a bubble when users switch to the Comments section, providing visual cues for the intended action.
Providing a designated space within the software for users to provide feedback is essential. Feedback channels can help you gather insights, identify areas for improvement, and establish a user-centered design process. Actively encourage users to share their thoughts and ideas to drive continuous improvement.
In software with dynamic backgrounds, ensure that font colors, sizes, outline colors, and weights are tested for optimal visibility in all situations. This consideration becomes especially critical when working with editors or interfaces where the background may change dynamically.
When extensive color usage is required, such as in user profile pictures or layer differentiation, consider developing a generative color system in collaboration with your development team. A generative color system can automate the process of generating visually pleasing color combinations, ensuring consistency and scalability.
Complex software requires a flexible and comprehensible design system. This implies the ability to accommodate various layouts and details while remaining easily adaptable and understandable for both designers and developers. How do you make your design system useful?
Seamless integration of design elements into the final software is possible and useful. This can involve directly transferring colors, fonts, icons, and sections of finished layouts from Figma directly into the product. Sometimes, developers create bespoke plugins for this, but your team can also search for ready-made solutions. By streamlining this integration process, you can enhance efficiency and minimize potential inconsistencies between design and development.
Designing complex software presents a challenge for a UX/UI designer. Firstly, familiarity with the software and its target users is crucial. Researching existing usability patterns and user behaviors, understanding varying levels of user expertise, and accommodating transitions from other software or previous versions are essential to creating a quality user experience. Collaborating closely with developers throughout the design process enables efficient prototyping and minimizes design bugs, particularly in complex areas like 3D software. Careful planning for screen space and optimizing system responsiveness are essential to ensure an efficient and user-friendly experience.
Moreover, creating a design system that is comprehensive, clear, and adaptable is crucial for effective design and development processes. Generative color systems can enhance visual appeal and save time while directly integrating design elements into the final product streamlines the development process, reduces potential inconsistencies, and saves resources. Encouraging user feedback and providing designated channels for communication can drive continuous improvement and keep the software aligned with user needs.
By incorporating these tips into their workflow, UX/UI professionals can optimize the design process, enhance the user experience, and contribute to the success of complex software projects in various professional domains.
Text by Olga Abramova
Cover Illustration by macrovector on Freepik