Talks

Developers’ role in elevating the quality of design

Developers’ role in elevating the quality of design

by Simo Virtanen

The video titled Developers’ role in elevating the quality of design features Simo Virtanen's talk at the Helsinki Ruby Brigade, focusing on the collaborative dynamics between developers and designers in software projects. Simo emphasizes that the handover between design and development should not mark the end of collaboration, advocating for a unified approach to product development that enhances design quality and functionality.

Key Points Discussed:
- Roles in Collaboration: Simo highlights the importance of developers actively contributing to design elements rather than merely implementing designs handed over by designers. This proactive involvement ensures that user needs and business goals are at the forefront of development.
- Common Challenges: Miscommunication and lack of engagement often lead to project failures. Often, design decisions made by designers aren't rooted in substantial research, as they may lack input from developers and team discussions.
- User Experience Framework: Simo references James Garrett’s book The Elements of User Experience, which outlines layers critical to the user experience. He advocates starting from a strategic foundation before moving to functional requirements, emphasizing that the process involves all team members.
- Feedback Loops: The development process should be viewed as non-linear, and adaptability is critical. Progress requires a continuous loop of feedback to ensure alignment with user and business needs.
- Culture of Communication: Clear responsibility and open communication are vital for a cohesive team environment. Encouraging team members to ask questions and share knowledge helps eliminate silos between disciplines, fostering a collaborative culture.
- Upcoming Conference: Simo announces the All the Humanity Conference, focusing on current topics relevant to software development and design. This event will encourage broader discussions and engagement within the community.

Conclusions and Takeaways:
- Each team member plays a crucial role in successful software development. Open communication and a collaborative mindset enhance the capacity to build products that genuinely fulfill user needs.
- Emphasizing shared understanding fosters an environment of teamwork, leading to higher-quality design outcomes. Continuous dialogue and adaptability are essential in navigating the complexities of software projects.
- Simo encourages active participation in discussions about design and development, stressing the importance of learning from each other to improve processes and outcomes in future projects.

00:00:00 estate is mine, so yes, it's nice to have a background of music, but I don't actually mind; that's fine. I'm kind of preaching this as a talk about how developers can help designers build better products.
00:00:06 The thing is, this isn't really designer talk; this is more perhaps like a child talk. I don't know, we flat shot this. At least Chrome gets a bad rep these days, but I would also give a bad rap to the designers. We've already had a short discussion about how I feel about designers these days.
00:00:24 I'll explain why I feel this way and what I believe developers should do better in software development projects. A couple of words about me: my name is Simo Virtanen, and I'm a co-founder at Circles, which is where we are a three-person team established in 2022. We do product design and product development for companies of different sizes.
00:00:42 Our main focus is working as a team rather than doing freelance work. We provide services for various companies by renting developers or designers as a team. I've been working in different software development consultancies since 2015. My longest tenure was about six years. I have a history with many Ruby developers, and even at Circles, we are still developing with Ruby.
00:01:01 Additionally, I was a co-organizer of EuroCup last year in Helsinki, and this year we are organizing the All the Humanity Conference with Helsinki Ruby. I'll share a few words about that after this talk. Now, what goes wrong in software development projects? I think that when things go wrong, it often happens because someone somewhere has not been heard.
00:01:52 The software is always a result of individuals either making demands that the rest of the team doesn't agree with, or perhaps someone on the team is imposing their opinions and steering the team down the wrong path.
00:02:09 This happens frequently, and I feel that many developers just let designers do the designs and then implement them. The truth is that not all designers necessarily know what they're doing. They can create a nice UI, but often it may not be based on anything substantial because they haven't conducted any user research due to budget constraints.
00:02:40 It's important for everyone on the team to voice their opinions and express concerns. If they don't, the project may fail sooner or later. A lot of what I'm discussing today stems from a book by James Garrett titled 'The Elements of User Experience.' Even though it was released in 2002, it's still a relevant book worth reading.
00:03:06 This book highlights many of the things teams often overlook that lead to poor outcomes. Garrett organizes user experience elements into different layers. He emphasizes that we should start from the bottom, considering user needs and business goals.
00:03:35 We begin with strategy, and once we nail down our strategy and understand our user needs and business goals, we can move to scope and define the functional content requirements for our software. After that, we can address information architecture, wireframing, and ultimately, the surface, which is the visual design of the application we are developing.
00:04:05 The involvement of the user interface designer comes into play quite close to this surface phase. However, there are numerous elements that must be parsed before we reach this point, and it is crucial for the whole team to comprehend the problem we are solving and how we plan to address it.
00:04:40 At this juncture, the developer has a vital role in contributing to the functional content requirements. Developers need to have a significant input in defining these requirements, considering that scope incorporates budgeting and resources necessary for the project's success.
00:05:06 Progressing through these various layers, such as moving from abstract to concrete user experience, isn't intuitive since it's possible to jump from one phase to another. However, many practitioners, in my experience, begin with the surface level and then subsequently work downwards.
00:05:51 Designers are often compelled to create UI prototypes without sufficient time, particularly in cases like hackathons, where you might have a couple of days to develop something. Thus, it's worth asking whether it's feasible to start with the skeleton and then progress from there, or whether you can start anywhere in the process and work your way backward.
00:06:36 I think that while this approach can work, it may not always yield effective results. Many companies tend to follow this path, and I have found it frustrating at times. An example can be found by examining design portfolios on platforms like Dribbble, where interface designs often lack a clear connection to business goals.
00:07:15 Designers may create functional applications based on their portfolios, but whether they're solving actual problems is questionable. The takeaway is that, to build something that people genuinely want to use, it is essential to start from the foundational layers and progress upwards.
00:07:58 Progression through these layers is not strictly linear; it often requires feedback loops where a team's understanding of requirements can change throughout the development process. One must be adaptable to shifts in strategy while maintaining alignment with the overall goals.
00:09:15 This process may not be intuitive, and one can expect to face challenges regarding the scope as development progresses. For instance, scope can significantly impact decisions made in other phases, such as whether to release certain features prematurely.
00:10:01 The complexity of a project can lead to periods of uncertainty where decisions must be revisited, which emphasizes the importance of clear communication and assigning responsibility across the team in a collaborative manner.
00:10:53 A crucial aspect of avoiding issues in software development is ensuring that responsibilities are defined and that communication between members remains open. This strategy facilitates a shared understanding of goals and fosters an environment where team members can voice their challenges.
00:12:15 Designers, for example, should not limit themselves to their roles; they should also grasp the technical aspects of their work. Effective collaboration revolves around team members sharing insights about their respective fields, which can lead to a more cohesive approach to product development.
00:14:06 Encouraging team members to broaden their understanding helps mitigate silos within the team. This creates a culture where individuals feel comfortable sharing knowledge without a strictly defined role limiting their contributions.
00:15:35 Although not everyone may possess expertise in technical aspects, cross-discipline understanding can facilitate fruitful conversations. It's about building a foundation of knowledge that enhances collaboration and improves overall outcomes.
00:16:54 When teams function in harmony towards the same goals, conflicts over siloed roles can arise. Those who feel stuck in their specialized lanes may often miss opportunities to connect with others working toward the same objectives.
00:18:22 In many teams, there can be a tendency for members to avoid asking questions because it’s easier to not disturb others' work. However, building a culture where asking questions is encouraged can lead to better results and ensure everything is in line with the team’s vision.
00:19:46 Effective leadership comes from recognizing these dynamics and fostering team collaboration. Everyone should be accountable for contributing to team discussions, no matter their role or specialization. Emphasizing shared understanding and responsibility is vital.
00:21:04 Finally, the broader community plays a crucial role in supporting and advancing these principles. Attend events and engage with others to learn and share experiences that foster an environment of quality collaboration and communication.
00:22:34 We are also organizing an upcoming conference, All the Humanity. This event provides a great opportunity for discussions surrounding current issues in software development and design. We encourage participation from everyone, as it is a chance to broaden perspectives and ignite meaningful conversations.
00:23:38 The conference will include a diverse array of talks, exploring tools and techniques for developers, as well as the importance of understanding user needs. We are thrilled to feature notable speakers, so mark your calendars for this must-attend event.
00:24:57 Remember, every individual on the team has a part to play in achieving successful software development. By embracing collaboration and open communication, we enhance our capacity to build products that meet real user needs. Let’s work together to create outstanding experiences.
00:26:21 Thank you for your attention, and I look forward to engaging discussions, both here and at our upcoming conference. Let's continue the conversation and unveil new possibilities by welcoming diverse insights from one another.
00:27:50 If you have any questions or thoughts about collaboration between developers and designers, I’m open to discussion.
00:29:55 How can we further enhance our understanding of software quality and the designer’s role within the team? Let’s explore that together and strive to improve continuously. Your experiences and insights may shed light on new strategies and solutions.
00:33:05 Since we all have a role in this, let's ensure we navigate forwards as a community. Thank you again, and I'm excited about what lies ahead.