00:00:07.820
My current job title is Interaction Designer. I mention this because I don't actually program a lot in my everyday life. In fact, I currently don't program at all. However, I have been working closely with C and C++ developers and various flavors of web developers for almost ten years. The reason I'm sharing this with you is that I have proved you can learn a lot by listening to people talk about what they do and by being really good at Googling. I have Googled things like pointers, memory leaks, and all sorts of other topics. Attending conferences like this one has also contributed to my learning.
00:00:51.510
I am here today because, as a designer, I have often been told that I need to know how to program and understand the technology to do my job effectively. I believe this is true, as it is really difficult to fulfill my role without knowing what happens underneath the wireframes I create. I think this sentiment resonates with many of you in this room. As designers, we recognize the importance of understanding how things work, and I know that you, as developers, are excellent teammates when it comes to discussing functionality and incorporating it into my designs.
00:01:41.310
My personal wish is that developers had a better understanding of design. We heard this morning how borrowing UX principles for API design can be beneficial, and I would love for everyone to leave this presentation with the insight that understanding design, even if it is just a little, makes our discussions far more valuable and helps us achieve much better outcomes together.
00:02:07.560
Let me share a story about my colleague, Magic—he's a database engineer. We both worked at CF Engine, a Norwegian startup focused on building configuration management software. Magic was tasked with rewriting the entire database. This sketch illustrates some of the many sketches I created to help us tackle our shared problems. We had to enable filtering on tens of thousands of hosts, catering to various users and use cases, while I was primarily focused on the UI.
00:02:55.260
The key challenge was that the database needed to serve multiple purposes for multiple users. We couldn't just optimize it for a single use or request; the APIs had to work seamlessly. This required many whiteboard discussions, paper sketches, and problem-solving sessions where we faced some really tough challenges. One day, Magic came to me with what he described as a breakthrough: he figured out a way to enable me to design a sensible solution for a really tough filtering issue.
00:03:44.129
Interestingly, Magic's work contributed to aspects of the user interface design process. This collaboration happened because we communicated effectively while working together. I made my design needs understandable by explaining the specific problems I was trying to address, showing very early sketches, and demonstrating how I was solving concrete issues. With regular consultations, everyone on the team began to grasp the design principles I was applying, and in return, I was exposed to their technical considerations.
00:04:36.400
I wish I could say I had this level of collaboration planned from the beginning, but instead, it was a lesson learned through experience. I would like to start by debunking some myths that contribute to misconceptions about designers and how we work, which hinders understanding within teams.
00:05:25.080
For example, there’s a myth that designers are born geniuses. I am definitely not a genius designer; I believe that this notion is as mythical as the concept of the genius developer. Exploring design principles and engaging with the field can lead to growth and expertise, especially since I didn't even study design at a formal level; I studied opera singing instead.
00:05:55.600
Determined practice and learning on the job are ways to build knowledge and improve skills. I spent countless hours learning, practicing, and seeking knowledge from peers about their craft. Design is a skill set that can be learned, and an abundance of resources are available to help foster this growth, so there are no excuses to avoid exploring them.
00:06:38.670
Another misconception is that design is purely chaotic creativity. Many people envision designers as vanishing into a bubble of magic only to emerge with visionary solutions. However, if you work in an unstructured way, you won't get anything done, and the same applies to development. Both design and programming require structured approaches.
00:06:59.760
Furthermore, programming is equally creative. Problem-solving in both fields entails exploring options and arriving at solutions through a structured process. In my design work, I dig into details, iterate through various options, and continuously streamline ideas just as developers refactor their code. This iterative approach leads to excellent outcomes whether for sketches or software.
00:07:44.800
There are rules and principles in design that can guide our work. It’s important to note that books written by industry experts, like Alan Cooper, can provide valuable insights. His work in the field of interaction design is beneficial for anyone seeking to understand foundational principles.
00:08:07.760
If you have an interest in practical design applications, I recommend simpler, more concise reads that can help bridge the gap between design and development. For instance, Google's Material Design spec is a fantastic resource that can enlighten anyone aiming to understand design principles and their implications.
00:08:35.840
The driving force behind my message today is the desire to foster better collaboration between developers and designers. It's crucial for us to recognize that designers must understand technology, but there is also a parallel need for developers to expand their design knowledge. Collaborating effectively means we can meet in the middle and respect each other's expertise.
00:09:14.660
Shared understanding is paramount when addressing potential solutions in our work. For instance, the sketch I mentioned earlier was not solely about implementing a design but understanding the goals behind it. This understanding fosters better collaboration and more effective problem-solving.
00:09:49.480
We also develop a shared vocabulary through this collaborative process. This vocabulary aids us in communicating our ideas and requirements effectively. For example, during a recent discussion, a developer mentioned needing a click event to run a query. While developers typically understand such technical requirements, similar discussions about design language can sometimes be less clear.
00:10:41.060
Recognizing and understanding the language used in both design and development contexts can lead to more efficient solutions. This understanding accelerates our discussions and decision-making. Moreover, as we grow together in our understanding of each other's work, we arrive at better solutions faster and with greater quality.
00:11:16.320
I also want to talk about the processes we use in our work. Many of us use agile methodologies in our projects, which can improve collaboration across disciplines. Unfortunately, the classic model of separated design and implementation phases often leads to misunderstandings and inefficiencies. Designers need to be more involved in the implementation phases, and many are now creating functional prototypes as deliverables.
00:12:20.580
This shift away from traditional handover models towards inclusive engineering processes enhances collaboration. As designers gain more technical skills and contribute early in project cycles, they can inform decisions together with developers, which leads to a more coherent final product.
00:13:10.230
It's crucial for both developers and designers to recognize the importance of collaborating closely to produce the best results. Learning from each other, acknowledging each other's perspectives, and adapting strategies to include design thinking in programming can create a more efficient and effective workflow.
00:14:01.680
As I wrap up, I encourage everyone here to challenge yourself to engage more with design. Ask to be part of design reviews or usability tests, read relevant articles, and explore books on usability to hone your skills. Moreover, embrace the opportunity to critically analyze interfaces you admire and understand the design principles at work behind them. Doing so allows you to make informed decisions and contribute more effectively to the projects you work on.
00:15:58.480
Finally, I hope everyone leaves this conference feeling motivated to break down silos between design and development. Together, we can advance and elevate the standards of our work, ensure we're working collaboratively, and ultimately produce better-designed products.