Brief: Technology is increasingly being used to enable people to work together at a distance. During the recent COVID-19 situation, this was even more important, as travel was restricted, classes were being conducted online, and large events such as conferences were being postponed or cancelled. As we come out of the pandemic, some of the conveniences of online interaction are likely to remain (such as the lectures in this course). With current processing power and network bandwidth, it is possible to have fast, clear video conferencing without specialized hardware, making desktop collaboration possible.
Your design team has been hired to identify a specific user group who could benefit from a carefully targeted design for a desktop video conferencing system and propose a design that meets this user group’s needs. Your client feels that although the market is arguably saturated, there is still room for growth. In particular, niche markets may be a way to develop a unique product.
Introduction
The internet has revolutionised software development, allowing global collaboration among developers (Constantino et al., 2020). This trend has accelerated due to the COVID-19 pandemic and is expected to continue (Tan et al., 2024). In this distributed software development, developers use tools like Git for asynchronous collaboration, enabling multiple contributors to work on the same project at different times (Brindescu et al., 2014). While convenient, this approach poses challenges like miscommunication and latency, particularly in complex systems (Tan et al., 2024).

Problem
Our team discovered a big problem: current video conferencing tools lack real-time coding collaboration features. This is a major roadblock for students working on coding projects together from different locations. Without the ability to code together in real-time, share knowledge, and help each other solve problems, remote teamwork suffers.
Existing solutions like Google Docs aren’t suitable because they can’t compile, run, or debug code. Communication platforms like Discord don’t offer coding capabilities either. This gap in tools slows down collaboration, prolongs issue resolution, and lowers the quality of software development projects.


Target User Group
We focused our project on National University of Singapore (NUS) students involved in group coding projects. With busy schedules, it’s hard for them to coordinate face-to-face meetings, making remote collaboration a valuable solution. Remote conferencing offers flexibility, convenience, and time savings by eliminating the need for commuting. To verify our assumptions, we planned to conduct user research using questionnaires and interviews.
Initially, we targeted beginner coders who likely face a steep learning curve with coding tools and workflows. We believed they would benefit most from real-time guidance and problem-solving. As we gathered feedback, we expanded our target audience to include university students who are more experienced in coding to better represent diverse project groups.This allows experienced members to assist those with less experience, fostering a supportive learning environment.
Data Gathering Plan
High-Level Questions
To dive deeper into understanding our target users and the problem space they inhabit, we formulated a set of high-level questions. Each question was meticulously crafted to address a specific aspect of our inquiry.
| Questions | Reasons |
| Collaboration Practices How do students currently collaborate on group coding projects? What are the common challenges they face when collaborating on group coding projects remotely? | Understand general workflows to gain insights into their preferred workflow and inform interface design Reveals limitations of existing solutions and exposes to us potential areas for improvement |
| Technical Needs and Preferences What level of programming experience do they have? What programming languages are they most familiar with? What tools and platforms do they currently use for communication and code sharing? | We can consider tailoring the design complexity to their skill level. Identify the most common programming language so we can prioritise language-specific functionalities Identify their preferred tools to gain insights into user preferences, so as to inform interface design |
| Feedback and Issue Resolution How do students currently provide feedback to each other on coding contributions within the group? | Understand and analyse their existing feedback mechanisms and access the importance of real-time feedback for students |
Moving forward, we deliberated on the most effective data gathering techniques. Ultimately, we settled on questionnaires and interviews as the most practical and fitting methods to collect the insights we sought.
Data Gathering Technique
- Surveys
- Interview
Data Analysis Results
Our primary focus during data gathering was understanding how students exchange feedback during group coding projects. This insight was crucial for designing effective collaborative coding sessions. Our survey targeted their coding background, communication tools, and workflow, revealing popular platforms like Zoom, Google Meet, and GitHub for discussions and collaborative coding.
We surveyed both experienced and novice users, categorising them by coding experience. This highlighted the importance of facilitating collaboration between users of different proficiency levels in our design.
Our findings (see Figure 1) underscored the significance of real-time feedback for all respondents, with most rating it highly for its usefulness (see Figure 2). This feedback is pivotal for enhancing the remote coding experience we aim to create. Users prioritise the ability to swiftly identify and resolve coding issues, emphasising its role in saving time and improving coding efficiency.


A surprising discovery was that many users favored voice-only conferencing over video (see Figure 3). This preference wasn’t due to a lack of interest in visual communication but rather stemmed from limited screen space. Users found it challenging to view both the code and the video conference simultaneously on a single screen. This insight highlighted the importance of optimizing screen space efficiency and raised questions about whether users would prefer video conferencing with more screen space available.

Requirements Definition
Personas
Ben (Experienced Coder)
Ben seeks a streamlined interface to manage complex coding projects efficiently. He enjoys mentoring new coders but finds it challenging to maintain coding conventions with varying skill levels.
His frustrations lies in deciding whether to spend time teaching newer coders or doing everything himself.
Ben aims to speed up troubleshooting, mentor effectively, and find a platform for better teaching and communication with new coders.
Lily (New Coder)
Lily is driven to understand complex coding concepts and master new skills, striving for proficiency in coding and workflows.
Her frustrations arise from encountering compile and runtime errors after coding sessions and struggling to grasp complex concepts without immediate guidance. She often feels lost when coding errors occur.
Lily’s goals include learning new concepts, becoming proficient at coding, successfully completing projects, and seeking and understanding guidance from more experienced coders to enhance her learning process.

Storyboard

Low-Fi Prototype
For the Low-Fi Prototype, we were tasked with using Miro.




Evaluation with Users
During our user testing session, we encountered several valuable insights that are guiding our platform’s refinement.
Firstly, the experienced coder had trouble finding the terminal and debugging console in the output panel. This underscored the importance of including both features, as they are essential for users to effectively run their code.
Secondly, we discovered that users were unaware of how to make all user cursors visible. This functionality, achieved by clicking on the black cursor in the top right panel, was not intuitive to them.
Furthermore, users expressed confusion regarding how folders and files appeared in the directory panel. To address this, we’ll ensure clarity by illustrating the appearance of folders and files in this panel.
Lastly, we noted that users had difficulty identifying which code file was currently open. To address this issue, we’ll implement tabs at the top of the code editor. These tabs will make it easy for users to identify and navigate between open files, enhancing their overall experience.


Leave a Reply