Journey in Design as a Coder
Published:
I had a half-year gap period in 2022 and I chose to working for a teacher in the SUSTech School of Design. His primary research focus is innovating MR/VR interaction techniques with interaction design language. Please grab a coffee and scroll down as I share with you my unique gap year experience.
My initial interest in Interaction Design
真正从一堆编程项目中抬起头来审视自己对什么东西感兴趣是从大四开始的。作为一个已经在计系的实验室里面研究了两年的人,我总觉得在实验室埋头写代码,跑代码,开组会的我,并不是一个完整的我。它们是一部分,代表一个严谨工作的我。但我好像还有另一部分自己,它希望做多加一点人情味的东西,做一些不是那么“面向未来”的、我难以估计实际落地效果的东西。 在计系的课程项目中我一般都会去写前端的代码。在这个过程中,我发现自己很在意每一个UI组件的位置,还有跟用户交互的逻辑。当然,由于课程项目时间紧迫,也都是点到为止。后来我还去了一个初创公司做前端,与设计师有了更多的接触,甚至觉得我好像也能当个“设计师”,这便是我对交互设计的最初印象。
It was in my senior year that I truly lifted my head from a pile of programming projects and examined my interests. As someone who had spent two years doing research in a computer science laboratory, I always felt that being engrossed in writing code, running code, and attending group meetings did not represent my complete self. They were a part of me, representing my diligent working style. But it seemed like there was another part of me that wanted to create something with more human touch, something that wasn’t so “future-oriented” or whose actual impact I couldn’t easily estimate. In the computer science coursework projects, I usually found myself writing front-end code. During this process, I realized that I cared a lot about the positioning of each UI component and the logic behind user interactions. Of course, due to the tight deadlines of coursework projects, it was only touched upon briefly. Later, I joined a startup as a front-end developer intern and had more interactions with designers. I even began to feel like I could be a “designer” myself, and that was my initial impression of interaction design.
Joining the Young Avengers
2021年的9月26日,我在邮箱上看到了罗涛老师在致仁活动室举办的讲座,内容是我感兴趣的交互设计。一直以来,我以为创意的点子是凭空产生的。有就是有,没有就是没有。甚至在表达上,都不一定找得到最精准的方式。但是罗老师的讲座令我感兴趣的地方,就是他可以用交互设计语言表达一个交互,甚至快速产出新的交互方式。于是讲座结束后我也跟罗老师讨论相关问题并加了微信。后来看到了老师Young-Avengers交互兴趣小组的招募信息,因为我还想更多地了解设计和交互,便申请加入并成为了Young-Avengers的一员。
On September 26, 2021, I saw an email about a seminar given by Professor Luo Tao, and the topic was about interaction design, which I found interesting. I had always believed that creative ideas were generated out of thin air. Either you had them, or you didn’t. Even in terms of expression, it was not always easy to find the most precise way. However, what intrigued me about Professor Luo’s lecture was that he could use the language of interaction design (something like a function) to express an interaction and even quickly generate new interaction methods. So, after the lecture, I had a discussion with Professor Luo about related issues and recorded his contact. A few weeks later, I came across the recruitment information for the Young-Avengers Interaction Interest Group led by Professor Luo. Since I wanted to learn more about design and interaction, I applied to join and became a member of the Young-Avengers.
从2021年的十月份到现在(2022年的12月份),我参加了一年多 Young-Avengers的周末会议。Young-Avengers集合了对交互设计感兴趣的同学,从最开始的智能家居魔方项目,到后面的混合现实(Mixed Reality)项目,我们探讨了很多的交互形式,包括产品调研、各功能模块的交互逻辑、将各个交互方式转化为交互设计语言打磨细节。在这个过程中,我会被推着去考虑很多以前写编程项目不会考虑的东西,比如某些步骤和原理是不需要暴露给用户去理解的、每个步骤的提示是不是人性化和到位、整体上UI界面需要跟其他模块的风格统一。在这样的讨论中,我需要想多种方式,跳出现存的流程和思路,再去思考与之配对的技术方案。这跟我之前“只用想一种能实现功能的技术方案”的思维方式很不同,也让我体会到做好交互设计的不易。
From October 2021 to the December 2022, I attended Young-Avengers weekend meetings for over a year. Young-Avengers brought together students interested in interaction design. Starting from the initial smart home Rubik’s Cube project to later projects involving Mixed Reality, we had explored various forms of interaction. This included conducting product research, discussing the interaction logic of different functional modules, and refining the details by transforming different interaction methods into a concrete interaction design language formula.
Throughout this process, I had been pushed to consider many aspects that I wouldn’t have thought about when working on programming projects in the past. For example, whether certain steps and principles need to be exposed to the user for understanding, ensuring the prompts for each step are intuitive and well-placed, and maintaining a consistent UI interface style across different modules. In these discussions, I needed to think in multiple ways, broke free from existing processes and thinking patterns, and then considered the corresponding technical solutions. This was very different from my previous mindset of “only thinking about one technical solution that can achieve the functionality,” and it had made me realize the challenges involved in doing good interaction design.
罗老师每隔一段时间还会让我们聊聊对讨论方式有什么看法和建议。在今年的五月份,我们还一起去大鹏半岛边团建边讨论了之前大家做的好的和做的不好的地方,以便后续改进。我们整理出了“Young- Avengers要与不要系列”。这种根据成员的特点,对设计过程本身的反思,也跟我经历过的其他会议不太一样,拓宽了我的设计思路。
Professor Luo also periodically encouraged us to discuss our opinions and suggestions regarding the discussion methods. In May of this year, we even went on a team-building trip to Dapeng Peninsula, where we discussed the strengths and weaknesses of our previous work, aiming to make improvements going forward. We compiled a series called “To Do and Not To Do” specifically tailored to the characteristics of our team members, reflecting on the design process itself. This kind of reflection, different from other meetings I have experienced, had broadened my design thinking.
Becoming a full-time RA
由于毕业了之后我选择春季再去读研究生,所以有半年的gap year。本来我打算找个开发的实习,但后来觉得既然自己对交互设计很感兴趣,Young-Avengers正好有混合现实Demo开发的需求,我就自告奋勇申请了罗涛老师的RA。在这半年里,我的主要任务是根据交互设计语言开发混合现实中新型交互方式的Demo,并帮助罗老师完成一些调研和辅助工作。
Since I decided to pursue my graduate studies in Spring 2023 after graduation, I had a six-month gap period. Initially, I planned to find a software internship, but later I realized that since I was very interested in interaction design and Young-Avengers had a need for developing a Mixed Reality demo, I volunteered to apply for a research assistant (RA) position under Professor Luo Tao. During this six-month period, my main task was to develop demos for novel interaction methods designed for Mixed Reality based on the interaction design language. I also assisted Professor Luo with Industry research and other auxiliary tasks.
我们做的是混合现实中按钮交互方式的创新,主要在微软的HoloLens和Meta的Oculus平台上开发Unity程序,实现设想中的交互效果。对我来说很有意思的一点是,最开始大部分出现的问题,是“按钮距离的远近”、“物体是空间锁定还是相机锁定”这些与最核心算法关系不大的东西。这侧面说明就算核心算法再高级,如果其他辅助的部分没有给使用者创造舒适的体验,那么这些核心交互逻辑的好与坏,人们是没法准确耐心判断的。
We were working on innovating button interaction methods in Mixed Reality, primarily developing Unity applications with MRTK on Microsoft’s HoloLens and Meta’s Oculus platforms to achieve the desired interaction effects. One interesting aspect for me was that initially, most of the issues we encountered when heading to application development were related to “button distance to arms” and “using head lock or body lock,” which were not directly related to the core algorithms. This indirectly highlighted that even if the core algorithms were advanced, if the auxiliary components could not provide users with a comfortable experience, it would become challenging for people to accurately and patiently judge the quality of these core interaction logics.
同时,在使用相同的一套逻辑编写不同场景物体逻辑代码的过程中,我第一次非常强烈地感觉到软件工程的重要性。从前做课程项目,是写一个丢一个;后来实习,也是直接接手别人的代码,写完之后也很少迁移到别的地方;现在要用自己写的初版代码迁移到一个相对新的场景上,各个模块之间耦合,甚至以前没有深刻体会到的很多代码设计模式突然变得重要了起来。不同的设计模式,把方法按照不同粒度分开调用,竟然真的会决定一个项目的迭代效率和使用效率。
Simultaneously, during the process of writing code for different scene objects using the same set of logic, I felt the importance of software engineering very strongly for the first time. Previously, when working on course projects, it was a matter of writing one and moving on. During my internship, I would directly take over someone else’s code, and once I finished writing, it was rarely migrated to other places. However, now, I have to migrate my own initial version of the code to a relatively new scene where various modules are coupled. Suddenly, many code design patterns that I hadn’t deeply appreciated before have become important. Different design patterns, such as separating methods according to different granularities, can actually determine the efficiency of project iterations and usage efficiency.
在开发任务之外,我还会帮老师调研一些东西。讨论的时候,我经常会被老师问的回答不上来。因为老师抛出一个问题,我最开始只会直接地搜索相关内容,总结一下放到PPT里面,但是不会加入自己的思考,不会对其中的一些点感到好奇想要深挖,导致会错过一些关键的细节。老师的解释是,我没有把调研的东西完全当成自己想要完成的一个目标去做,而只是单纯的完成任务。这个我承认确实有,毕竟当学生的这么多年做了太多“老师给的”作业了。后面我有尝试把自己放到一个更加主动的位置上去做调研,的确会更细致一些,但是问问题的能力还是有待加强。
In addition to development tasks, I also assisted the professor in conducting research. During discussions, I often found myself unable to answer the questions posed by the professor. Initially, when the professor raised a question, my approach was to directly search for relevant content, summarize it, and put it into a PowerPoint presentation without adding my own thoughts or showing curiosity to explore certain points. As a result, I would miss out on some crucial details. The professor explained that I did not approach the research as a goal I wanted to accomplish fully but rather simply completed the assigned task. I admitted that this was true, as over the years as a student, I had done numerous “teacher-given” assignments. Later on, I attempted to take a more proactive role in conducting research, and it did result in a more detailed researching approach. However, my ability to ask questions still needed improvement.
其实我以前不太会关注计算机软件领域有什么新的技术,我老感觉自己是在学习计算机专业,但是这个专业相关的知识并没有融入我的生活和关注内容。所以在老师让我去查为了实现xxx目标,现在有什么技术的问题时,我下意识的反应都是“应该搜不到吧”,而老师就会说“先搜搜看”。最后的结果是,我了解到了很多我不曾知道的应用,原来确实有人在这些我想不到的发展方向上用自己聪明的头脑开发技术方案。有很多发现一个新领域的瞬间,他们在做的一些事情都会让我觉得计算机竟然可以做到这些事情,让我感到自己的专业在我的面前活了过来,不再是课堂上的一页页PPT了。
Actually, I used to pay little attention to new technologies emerging in the field of computer software. I always felt that I was studying computer science, but the knowledge related to my major didn’t integrate into my life or areas of interest. So, whenever the professor asked me to search for technologies related to achieving a specific goal, my instinctive response would be, “I probably won’t find anything.” And the professor would say, “Just give it a search.” The end result was that I learned about many applications I didn’t know existed. It turns out that there are people out there using their brilliant minds to develop technological solutions in these unexpected directions. There have been many moments when I discovered a new field, and the things they were doing made me realize that computers are capable of such incredible things. It made my own major come alive before my eyes, no longer confined to the pages of PowerPoint slides in the classroom.
最后我还参与了一段时间有关论文实验设计的讨论,开发了一些用于实验的新场景。其中最深刻的体验就是:程序员的存在确实是帮助设计师实现很多很多想法的、一个重要的角色;会编程的人在大家提出一个方案转头问你能不能实现的时候,除了感到压力,还会觉得自己真的像一个魔术师。虽然现在大多数情况下都要求设计和开发是上下游、由不同人完成的工作,但幸运的是罗老师课题组这个环境,允许我在作为一个开发人员的同时,参与设计创意的讨论,磨练自己的设计思维。
Lastly, I also participated in discussions on HCI experiments design for research papers and developed new scenarios for experiments. The most profound experience during this time was realizing the significant role that programmers play in helping designers bring their ideas to life. When someone proposes a solution and turns to you, asking if you can implement it, it brings both pressure and a sense of being a magician. Although in most cases nowadays, design and development are considered separate tasks performed by different individuals, I am fortunate that in the research group led by Professor Luo, I was able to participate in discussions on design concepts while also working as a developer, honing my design thinking skills.
My change of thoughts
原来理解的交互,就是用户在操作UI组件时,被设计师设定的流程。虽然会考虑一些用户的体验,但是我对如何最大化交互的舒适度和流畅性只有很模糊的概念。同时,我也一直以为创造/设计的点子都是Aha moment里突然想到的。
My previous understanding of interaction was that it referred to the flow defined by designers for users to operate UI components. Although I considered some aspects of user experience, my concept of maximizing the comfort and smoothness of interactions was quite vague. At the same time, I always believed that creative/design ideas were something that suddenly came to mind in an “Aha” moment.
在接触了交互设计语言,特别是看了企业里使用者的访谈之后,我意识到该语言整理好了很多交互的元素,把设计交互的逻辑拆成了控件-联动-物件三个部分,能让设计师通过排列组合快速脑暴创作新的交互方式,这让我对交互设计的看法有了很大改变。同时,我们现在正在尝试的加速度可以通过调节速度、加速度阈值灵活地反映用户选中、经过、撤销等的意图,也让我对不同的交互在反映用户意图不同的程度上有了更直观的感受。而不同交互形式之间的区分和对比,比如长按和快击之间,长按会显得更机械,加速度和速度之间,速度会显得误触率更大,也都让我对灵活表达用户意图,而不单纯是完成功能有了更深的体会。
After getting acquainted with the concept of interaction design language, particularly by studying user interviews in the industry, I realized that this language has organized various elements of interaction. It breaks down the logic of designing interactions into control item, mapping, and widget item, enabling designers to quickly brainstorm and create new interaction styles through combinations and arrangements. This has significantly changed my perspective on interaction design.
Additionally, our current exploration of acceleration allows us to reflect user intentions, such as selection, passing through, or canceling, by adjusting speed and acceleration threshold. This has provided me with a more intuitive understanding of how different interactions can reflect user intentions to varying degrees. The differentiation and comparison between different interaction forms, such as long-press and quick tap, where long-press may feel more mechanical, or the distinction between acceleration and speed, where speed may result in a higher rate of accidental touches, have deepened my appreciation for flexible expression of user intentions beyond mere functional achievement.
Best wishes to the Young Avengers
经过一年多的发展,我们的团队逐渐变得多元了起来,第一代南科大的Young Avengers们也逐渐成长成为了项目的主导者,开始推进攀登计划项目。希望今后大家也可以不断地在团队活动中收获经验和提升自己,能够在团队中探索自己感兴趣的交互方向,丰富自己的阅历。
Over the course of more than a year, our team has gradually become more diverse. The first generation of Young Avengers from Southern University of Science and Technology has grown into project leaders, initiating the new research projects. I hope that in the future, everyone can continue to gain experience and improve themselves through team activities, exploring their interests in interaction design and enriching their own experiences within the team.