Integrating Developer Mindsets into Design for Scalable and Efficient Products

Orolade Olawale
4 min readJun 21, 2024

--

Over the past few years of my design career, I’ve had the privilege of working with top-tier software engineers, building complex products and features from the ground up. This journey has been a masterclass in understanding how to create scalable, efficient and robust systems. This experience has been a profound exploration into the intersection of design and development, where I’ve often found myself surrounded by a lot of engineers which has significantly shaped my approach.

In my social circle, while some designers discussed the impact of AI & machine learning on design, design asset management & organization strategies, using analytics data to inform design decisions, my conversations were more into APIs, system architecture, data models and scalability. Even during casual Friday evening gatherings, these technical discussions remain lively and engaging.

Amidst these interactions, my engineer friends have humorously suggested that I might secretly still want to be a developer in disguise ( i started my career as a frontend developer, story for another day ), given my deep involvement in technical considerations. This blend of perspectives, from the intricacies of design to the robustness of system architecture has significantly shaped my approach to product design.

Embracing Systematic Thinking in Design

Software developers excel at creating systems that are scalable, maintainable and efficient. They meticulously plan how different components interact, anticipate future needs, and navigate technical constraints. As a product designer, adopting this approach allows me to conceptualize designs as integral parts of larger systems rather than isolated elements.

Modularity and Reusability:

Developers modularize systems into reusable components.

As designers, we create reusable design components and patterns to ensure consistency across the product. Whether it’s a full-fledged design system or just a clever collection of reusable elements, the goal is consistent and efficient design across the board.

Scalability:

Developers design systems capable of scaling with increasing complexity.

In product design, it will be designing adaptable interfaces that maintain usability across different devices and screen sizes. For example, consider designing a fintech app for saving money. The interface should adjust seamlessly whether users are accessing it on a desktop for detailed financial planning, a tablet for setting savings goals on the go, or a smartphone for quick account updates and transactions. This ensures a user-friendly experience across various devices, allowing users to manage their savings efficiently from any platform.

APIs and Data Models:

Developers design and optimize APIs and data models for efficient interaction and performance.

As designers, understanding API capabilities and limitations to inform design decisions helps a lot. it is very important in crafting interfaces that work seamlessly with backend logic, whether it’s a custom solution or something off the shelf.

For example, in a logistics solution I worked on, we designed an interface to display Gantt charts showing truck routes from sites to depots and stops. Engineers optimized APIs for real-time location data and route information.

If we hadn’t understood API limits, we might have designed the interface to show detailed historical route data that the APIs couldn’t support. This could have led to delays or inaccurate route updates, affecting logistics planning.

While the feature could eventually work with adjustments, not initially understanding API capabilities would have prolonged development with several meetings and additional time spent aligning design expectations with technical feasibility. Understanding these constraints upfront streamlined the development process, ensuring the interface efficiently displayed reliable, real-time truck schedules and routes without unnecessary delays or revisions.

Practical Steps to Integrate System Design Thinking into Product Design

  1. Collaborate with Developers Early and Often: As designers, fostering continuous collaboration with developers early in the process is crucial. By engaging them from the outset, we align on technical constraints and feasibility. These initial discussions are where small details can lead to significant outcomes.
  2. Adopt a Systematic Approach to Design: Developers typically use architecture diagrams to map system structure and flow. In our design process, there is a need to develop user journey maps and wireframes that comprehensively outline the product ecosystem. This systematic approach allows us to think holistically while focusing on the specific details that drive user experience and functionality.
  3. Build and Maintain a Design System: As designers, our role involves establishing and maintaining a design system. This includes defining UI components and adhering to design guidelines. Whether formalized or informally agreed upon, consistency is key to ensuring a cohesive user interface that aligns with the broader product vision.

Conclusion

Embracing the systematic, methodical approach of software developers has revolutionized my perspective on product design. By integrating principles of modularity, scalability, and technical awareness, designers can craft solutions that are not only visually appealing but also robust, adaptable, and user-centric. This mindset not only bridges the gap between design and development but also empowers teams to create products that resonate with evolving user needs and technological landscapes.

--

--