CASE STUDY

Mapping out unfamiliar codebases in Visual Studio Code

Project Summary: A navigation tool that transforms puzzled coders into confident contributors

Visual Studio Code:

Project Summary

Visual Studio Code:

Project Summary

Visual Studio Code:

Project Summary

ROLE

Product Designer

TIMELINE

8 weeks

Jan - Mar 2025

TEAM

Angie Vo (Designer)

Noah Jaurigue (Researcher)

Clarkson Phan (Researcher)

SKILL

User Research

User Experience Design

User Testing

Prototyping

TOOL

Figma

CONTEXT

What is Visual Studio Code?

Visual Studio Code (VS Code) is a lightweight, open source code editor that supports a wide range of programming languages and platforms. Its main functionalities include intelligent code completion, debugging, built-in Git integration, and a wide marketplace of extensions for customizing workflows.

CONTEXT

What is Visual Studio Code?

Visual Studio Code (VS Code) is a lightweight, open source code editor that supports a wide range of programming languages and platforms. Its main functionalities include intelligent code completion, debugging, built-in Git integration, and a wide marketplace of extensions for customizing workflows.

CONTEXT

What is Visual Studio Code?

Visual Studio Code (VS Code) is a lightweight, open source code editor that supports a wide range of programming languages and platforms. Its main functionalities include intelligent code completion, debugging, built-in Git integration, and a wide marketplace of extensions for customizing workflows.

THE PROBLEM

Creating a way to streamline the process of onboarding a new project

Software engineers joining new projects experience frustration and self-doubt when navigating unfamiliar codebases, as the inability to quickly contribute meaningful work damages their professional confidence and hinders their productivity.

THE PROBLEM

Creating a way to streamline the process of onboarding a new project

Software engineers joining new projects experience frustration and self-doubt when navigating unfamiliar codebases, as the inability to quickly contribute meaningful work damages their professional confidence and hinders their productivity.

THE PROBLEM

Creating a way to streamline the process of onboarding a new project

Software engineers joining new projects experience frustration and self-doubt when navigating unfamiliar codebases, as the inability to quickly contribute meaningful work damages their professional confidence and hinders their productivity.

OUR SOLUTION

Implementing the Project Summary tool into the menu bar

A tool that provides users with a holistic view of the languages, frameworks, and starting points used in projects, enabling them to understand a codebase’s underlying structure and identifying where to begin. They can quickly reference different files organized by the programming languages and frameworks.

OUR SOLUTION

Implementing the Project Summary tool into the menu bar

A tool that provides users with a holistic view of the languages, frameworks, and starting points used in projects, enabling them to understand a codebase’s underlying structure and identifying where to begin. They can quickly reference different files organized by the programming languages and frameworks.

OUR SOLUTION

Implementing the Project Summary tool into the menu bar

A tool that provides users with a holistic view of the languages, frameworks, and starting points used in projects, enabling them to understand a codebase’s underlying structure and identifying where to begin. They can quickly reference different files organized by the programming languages and frameworks.

KEY FEATURE

Clear starting point

Under the “Starting Point” subsection, users can access a markdown file with a general description of the project they are working on. Placing the README file at the top of the Project Summary makes it easily discoverable for new users, giving them a quick overview and developer insights.

KEY FEATURE

Clear starting point

Under the “Starting Point” subsection, users can access a markdown file with a general description of the project they are working on. Placing the README file at the top of the Project Summary makes it easily discoverable for new users, giving them a quick overview and developer insights.

KEY FEATURE

Clear starting point

Under the “Starting Point” subsection, users can access a markdown file with a general description of the project they are working on. Placing the README file at the top of the Project Summary makes it easily discoverable for new users, giving them a quick overview and developer insights.

KEY FEATURE

Analytical insights and file navigation of programming languages and frameworks

The breakdown of the project’s languages and frameworks were crucial to the users as they expressed how Visual Studio Code lacked these analytics. Expanding the specific languages or frameworks displays a sorted list of all files within the project that fall under that specific subsection.

KEY FEATURE

Analytical insights and file navigation of programming languages and frameworks

The breakdown of the project’s languages and frameworks were crucial to the users as they expressed how Visual Studio Code lacked these analytics. Expanding the specific languages or frameworks displays a sorted list of all files within the project that fall under that specific subsection.

KEY FEATURE

Analytical insights and file navigation of programming languages and frameworks

The breakdown of the project’s languages and frameworks were crucial to the users as they expressed how Visual Studio Code lacked these analytics. Expanding the specific languages or frameworks displays a sorted list of all files within the project that fall under that specific subsection.

Scroll to learn more about the process

Scroll to learn more about the process

Scroll to learn more about the process

DISCOVERING THE PROBLEM SPACE

We want to devise a solution that makes technology a tool professionals are working with, not against

As cognitive science and computer science students, we have all experienced how minor inefficiencies and a notable learning curve can result in an evident decrease in the overall productivity within a rapid professional or educational environment.

We conducted 2 remote interviews with stakeholders, Clark (Software Engineer @ L3Harris) and Tanvi (Product Marketing Associate @ Visa) to gain insight into how they leverage technology in their day-to-day lives.

DISCOVERING THE PROBLEM SPACE

We want to devise a solution that makes technology a tool professionals are working with, not against

As cognitive science and computer science students, we have all experienced how minor inefficiencies and a notable learning curve can result in an evident decrease in the overall productivity within a rapid professional or educational environment.

We conducted 2 remote interviews with stakeholders, Clark (Software Engineer @ L3Harris) and Tanvi (Product Marketing Associate @ Visa) to gain insight into how they leverage technology in their day-to-day lives.

DISCOVERING THE PROBLEM SPACE

We want to devise a solution that makes technology a tool professionals are working with, not against

As cognitive science and computer science students, we have all experienced how minor inefficiencies and a notable learning curve can result in an evident decrease in the overall productivity within a rapid professional or educational environment.

We conducted 2 remote interviews with stakeholders, Clark (Software Engineer @ L3Harris) and Tanvi (Product Marketing Associate @ Visa) to gain insight into how they leverage technology in their day-to-day lives.

KEY FINDINGS

Unnecessary clicks to access crucial information disrupts workflow and focus

Need for better high-level understanding of codebases to identify entry points

Ability to quickly navigate through projects reduces friction when locating files and understanding code changes

COMPETITIVE LANDSCAPE

The competition lacks a tool dedicated to providing a holistic view of the project’s structure

Four integrated development environments (IDEs) were researched to understand the benefits and downsides of each, unveiling a gap for exploration in Visual Studio Code to simplify the onboarding process and offer a brief understanding of the project’s structure.

COMPETITIVE LANDSCAPE

The competition lacks a tool dedicated to providing a holistic view of the project’s structure

Four integrated development environments (IDEs) were researched to understand the benefits and downsides of each, unveiling a gap for exploration in Visual Studio Code to simplify the onboarding process and offer a brief understanding of the project’s structure.

COMPETITIVE LANDSCAPE

The competition lacks a tool dedicated to providing a holistic view of the project’s structure

Four integrated development environments (IDEs) were researched to understand the benefits and downsides of each, unveiling a gap for exploration in Visual Studio Code to simplify the onboarding process and offer a brief understanding of the project’s structure.

USER PERSONAS

Exploring different end users to inform my design decisions

Visual Studio Code is not limited to just software engineers in industry. I created Jennifer to represent students who can benefit from the Project Summary feature to provide guidance on a project and minimize the learning curve of Visual Studio Code.

USER PERSONAS

Exploring different end users to inform my design decisions

Visual Studio Code is not limited to just software engineers in industry. I created Jennifer to represent students who can benefit from the Project Summary feature to provide guidance on a project and minimize the learning curve of Visual Studio Code.

USER PERSONAS

Exploring different end users to inform my design decisions

Visual Studio Code is not limited to just software engineers in industry. I created Jennifer to represent students who can benefit from the Project Summary feature to provide guidance on a project and minimize the learning curve of Visual Studio Code.

Primary: Software engineers working in fast-paced environments who constantly join new projects

Secondary: Students who are beginners to coding and reference existing projects to bridge the gap between theory and practice

UX FLOWS

Ideating two workflows of how the Project Summary can seamlessly integrate into Visual Studio Code

We wanted to implement the Project Summary feature in a way that is easily accessible for users to discover and refer back to it. To do so, we explored two different user experience flows that follow the existing structure of Visual Studio Code.

UX FLOWS

Ideating two workflows of how the Project Summary can seamlessly integrate into Visual Studio Code

We wanted to implement the Project Summary feature in a way that is easily accessible for users to discover and refer back to it. To do so, we explored two different user experience flows that follow the existing structure of Visual Studio Code.

UX FLOWS

Ideating two workflows of how the Project Summary can seamlessly integrate into Visual Studio Code

We wanted to implement the Project Summary feature in a way that is easily accessible for users to discover and refer back to it. To do so, we explored two different user experience flows that follow the existing structure of Visual Studio Code.

UX Flow #1: Entry point is opening Visual Studio Code

UX Flow #2: Entry point is the File Explorer page and represents an ongoing coding session

USABILITY TESTING

Users had a strong preference towards Prototype B

We conducted A/B testing with two users over Zoom—each one targeting a user persona—to determine which low-fidelity prototype was more intuitive and beneficial. Both users indicated they preferred Prototype B due to its split-screen capability, allowing for high accessibility and minimal interference when coding.

USABILITY TESTING

Users had a strong preference towards Prototype B

We conducted A/B testing with two users over Zoom—each one targeting a user persona—to determine which low-fidelity prototype was more intuitive and beneficial. Both users indicated they preferred Prototype B due to its split-screen capability, allowing for high accessibility and minimal interference when coding.

USABILITY TESTING

Users had a strong preference towards Prototype B

We conducted A/B testing with two users over Zoom—each one targeting a user persona—to determine which low-fidelity prototype was more intuitive and beneficial. Both users indicated they preferred Prototype B due to its split-screen capability, allowing for high accessibility and minimal interference when coding.

Prototype A

  • Prompted to view Project Summary when opening new project or repository

  • Project Summary displayed as full page

Prototype B

  • Accessible through icon in toolbar

  • Project Summary opens as a split-screen view

DESIGN DECISIONS

Adding Project Summary to the toolbar

We ultimately chose to create a project summary icon and placed it in the toolbar for a seamless navigation into Visual Studio Code’s existing user interface. In our initial iterations, we visualized this feature as a pop-up, but feedback from users uncovered concerns regarding feasibility and an obstruction of programmers’ workflows.

DESIGN DECISIONS

Adding Project Summary to the toolbar

We ultimately chose to create a project summary icon and placed it in the toolbar for a seamless navigation into Visual Studio Code’s existing user interface. In our initial iterations, we visualized this feature as a pop-up, but feedback from users uncovered concerns regarding feasibility and an obstruction of programmers’ workflows.

DESIGN DECISIONS

Adding Project Summary to the toolbar

We ultimately chose to create a project summary icon and placed it in the toolbar for a seamless navigation into Visual Studio Code’s existing user interface. In our initial iterations, we visualized this feature as a pop-up, but feedback from users uncovered concerns regarding feasibility and an obstruction of programmers’ workflows.

DESIGN DECISIONS

For software engineers, coding is one of their fundamental priorities

The initial prototypes only offered a split-screen view where users noted the inefficient use of white space and preferred the coding file’s size to be minimally impacted. To tackle these concerns, we integrated a function that allow users to customize the layout of the Project Summary where they can reduce the size to optimize their file space for coding.

DESIGN DECISIONS

For software engineers, coding is one of their fundamental priorities

The initial prototypes only offered a split-screen view where users noted the inefficient use of white space and preferred the coding file’s size to be minimally impacted. To tackle these concerns, we integrated a function that allow users to customize the layout of the Project Summary where they can reduce the size to optimize their file space for coding.

DESIGN DECISIONS

For software engineers, coding is one of their fundamental priorities

The initial prototypes only offered a split-screen view where users noted the inefficient use of white space and preferred the coding file’s size to be minimally impacted. To tackle these concerns, we integrated a function that allow users to customize the layout of the Project Summary where they can reduce the size to optimize their file space for coding.

Option 1: Split-screen view with only one file and Project Summary

Option 2: Compatible with Visual Studio Code’s current split-screen view with other files

DESIGN DECISIONS

Enhancing clarity with a guided feature walkthrough

Users initially experienced confusion when testing the prototypes as they struggled to locate the feature. Integrating the icon consistently into the toolbar created a discoverability tradeoff, making it less noticeable to first-time users. To address this, I designed a guided walkthrough that aligned with Visual Studio Code’s existing business model. This not only helped users quickly find the Project Summary but also empowered them to confidently leverage it for future projects.

DESIGN DECISIONS

Enhancing clarity with a guided feature walkthrough

Users initially experienced confusion when testing the prototypes as they struggled to locate the feature. Integrating the icon consistently into the toolbar created a discoverability tradeoff, making it less noticeable to first-time users. To address this, I designed a guided walkthrough that aligned with Visual Studio Code’s existing business model. This not only helped users quickly find the Project Summary but also empowered them to confidently leverage it for future projects.

DESIGN DECISIONS

Enhancing clarity with a guided feature walkthrough

Users initially experienced confusion when testing the prototypes as they struggled to locate the feature. Integrating the icon consistently into the toolbar created a discoverability tradeoff, making it less noticeable to first-time users. To address this, I designed a guided walkthrough that aligned with Visual Studio Code’s existing business model. This not only helped users quickly find the Project Summary but also empowered them to confidently leverage it for future projects.

NEXT STEPS

Ensuring this feature is useful to other software engineers and students

If I had more time, I would conduct more user testing with a larger group of people to gain deeper insights into if this is a feature they would actually use. Since the basis of this project was interviewing a professional stakeholder to uncover pain points and opportunities for improvements that may not be apparent, I focused my efforts on receiving direct feedback from him when iterating on my designs, rather than reaching out to other potential users.

NEXT STEPS

Ensuring this feature is useful to other software engineers and students

If I had more time, I would conduct more user testing with a larger group of people to gain deeper insights into if this is a feature they would actually use. Since the basis of this project was interviewing a professional stakeholder to uncover pain points and opportunities for improvements that may not be apparent, I focused my efforts on receiving direct feedback from him when iterating on my designs, rather than reaching out to other potential users.

NEXT STEPS

Ensuring this feature is useful to other software engineers and students

If I had more time, I would conduct more user testing with a larger group of people to gain deeper insights into if this is a feature they would actually use. Since the basis of this project was interviewing a professional stakeholder to uncover pain points and opportunities for improvements that may not be apparent, I focused my efforts on receiving direct feedback from him when iterating on my designs, rather than reaching out to other potential users.

KEY TAKEAWAYS

What did I learn?

  1. Consistent feedback from users is incredibly helpful throughout each stage of the design process

  1. Constant communication with a professional stakeholder validates assumptions, ensuring the designed features are relevant and impactful

  1. Leveraging existing design systems is essential to speed up the design process, maintain consistency, and reduce the learning curve for users

GIVING FLOWERS

The people that made this possible

A huge shoutout to my team, Angie, Clarkson, and Noah, who helped bring this idea to fruition! Clarkson's and Noah’s proficient knowledge of Visual Studio Code helped inform the design decisions, ensuring it aligned with our target audiences, and Angie’s time management and organization skills were essential to the success of hitting every deadline. Also, I would like to thank Clark, our stakeholder, who mentored us throughout this entire project, providing vital feedback that led us in the right direction.

Thanks for stopping by

Have some feedback or want to chat?

Let’s get to know one another!

Thanks for stopping by

Have some feedback or want to chat?

Let’s get to know one another!

Thanks for stopping by

Have some feedback or want to chat?

Let’s get to know one another!