GitLab-sponsored Tufts University Human Factors/Engineering Psychology Capstone Course

On this page, you’ll find information about how GitLab participates in the Tufts University Capstone Project in the field of Human Factors Engineering.

At GitLab, we believe everyone can contribute. In that spirit, members of the UX Department can volunteer to sponsor a project for the Tufts University Human Factors Engineering/Engineering Psychology (BS) senior-level students to take on during the spring semester.

We engage, support, and recognize students during the capstone design experience. As an industry sponsor, GitLab works with the students to solve an existing problem that is relevant to both Tufts and our organization.

The Tufts Capstone is a great opportunity for GitLab Team Members looking to share their knowledge and learn from each other. Some of the benefits include:

  • Improve your mentoring and coaching skills by working with students who are new to GitLab
  • Improve your communication skills, specifically around the concepts we work with every day using clear language that simplifies complexity
  • Get more experience with public presence by supporting the design and research community.

Capstone course overview

The program duration is 15 weeks. Students participate in groups of 4-5 to solve human factors problems or design challenges set by industry sponsors.

Throughout the semester, students will deliver professional-level work, including weekly reports and presentations (with peer review), article reviews, and sponsor meetings/reviews. User research methods and principles will be applied along with project management and planning. The outcome of this course includes students creating a final project video, poster, and presentation which will be presented to the class, department, and sponsors.

How the project works

Each year in the fall, the project lead recruits GitLab Team Member volunteers and solicits proposals for projects.

At the start of the spring semester (usually in January), the participating students vote on which proposal they would like to work on.

The volunteer team begins meeting weekly with the students once they have decided on a proposal. Weekly meetings continue throughout the spring semester (In 2025, the students’ spring semester is January 15, 2025 through May 9, 2025).

At the end of the semester, the students present their results to an internal audience at GitLab (which is open to the entire org). They also present their final project to their professor.

Following the end of the semester, the project lead solicits feedback from volunteers and students, documents the results of the project, and arranges for the following year’s project leadership.

How to volunteer

If you’re interested in volunteering for the Spring 2025 semester, you should complete the following by Monday, November 18th, 2024:

  1. Reach out to your manager for awareness and to discuss how participation might impact your capacity.

  2. Add yourself to the list of volunteers.

  3. (Optional but highly encouraged!) Brainstorm projects that would be a good fit for the students.

Volunteer team composition

For best results, we are looking for 3-5 volunteers from GitLab’s UX team, at least 1 of whom is a Product Designer and 1 of whom is a UX Researcher.

Project proposals

Do you have a project that has been in the backlog for a while now? It could be a good one for the students to take on! In general, the best projects include:

  • A loosely defined scope so that the students can bring their creativity. The instructor may suggest the students scope it down so they can complete it in the 4 month semester. For example, improving the GitLab CI/CD onboarding flow. This topic provides enough flexibility to go through the entire design process but also allows the students to scope it down to evaluate specific areas of the onboarding flow and target certain users.
  • An opportunity to perform discovery research, design (prototype), and solution validation.
  • Async-first approach.

Each project proposal should include a summary with:

  • A title: A concise and catchy name for the project. This is one of the first things the students will see when choosing their project for the semester.
  • Description: A summary of the problem, including a problem statement and general background about the concepts that would make sense to beginner, non-GitLab users.

You can propose project ideas for the Spring 2025 semester in the comments in our volunteer recruitment issue.

Project ideas

You can use this list of previous projects considered for the Tufts University capstone project to help you get started selecting a project or to help brainstorm ideas.

Help GitLab increase their community contributions from developers and designers

Open-source principles are at GitLab’s heart and are one of the reasons why GitLab users love the product. We depend on the community to contribute to our product. Yes, that’s right! A developer, or even a designer, could contribute their own code or feature design, and it can end up being added to our product. We want as many community contributions as possible. This project is actually based on an issue that was brought up by a community contributor. You will focus on understanding how we can improve GitLab to motivate the community to make contributions. You’ll be running research with real users to understand developers’ and designers’ motivations to contribute code or designs. You’ll also create mockups (you can use our Pajamas UI kit in Figma) based on what you learn and then validate them with real users.

How are developers using runners and why are they important to them?

Runners are at the core of Continuous integration and deployment (CI/CD), one of GitLab’s primary offerings. Thousands of users use our GitLab SaaS Runners, managed by our own GitLab team members. For those companies who run their own instances of GitLab and cannot use gitlab.com, bringing and managing their own runner is required in order to use CI/CD features. We’ve done extensive research around the management and observability needs of platform engineers who are responsible for those runners, but what isn’t clear is how developers (and others with lower permissions) make use of runners and what runner information is crucial for them to complete their jobs. You will focus on understanding the problem at hand by running research with real GitLab developers. You’ll also create mockups Pajamas UI kit in Figma based on what you learn and then validate them with users. Interview developers to understand how they are interacting with runners today and what type of information they need to know about runners (primary issue: Problem validation: How do developers (and others with the same, or less, permissions) interact with runners?). Create mockup proposals to present this data that will replace the Project>CI/CD>Runners view and validate them with real developers.

How are users interacting with project-level analytics and are they satisfied?

Various personas make use of our project-level analytics page for a number of different jobs. This can help organizations evaluate how they are doing throughout the product development workflow. After implementing these analytics pages, it is difficult to know how useful these are to users and where they use them within their workflows. Are they placed in the most ideal locations for users to efficiently complete their jobs? You will use UX heuristics and our catalog of existing research to determine what these pages do well and what they don’t. You’ll also be redesigning the pages to make use of Pajamas standards and validating that these new solutions positively impacts the jobs to be done (JTBD) for these pages with real GitLab users. Make sure to work with your team to scope this down so you have enough time to complete this project! For example, focus solely on improving the repository analytics page.

Do GitLab users understand where to find specific information they need on docs.gitlab.com?

The GitLab documentation site contains a large and growing amount of content. Findability of specific content has been a problem for users. Recognition and understanding of the different sections of content on the docs site is important for users to be able to find what they’re looking for.

  • Do GitLab users understand where to find specific information they need on docs.gitlab.com?
  • Do GitLab users understand what types of content might be in each section or “bucket”?
  • Do the section names (buckets) meet user expectations?
  • If users do not understand the buckets, what are some improvements to increase comprehension?
Using Continuous Integration (CI) when pushing changes

CI has become a regular practice for companies around the world since it allows them to develop software easier, faster, and with less risk. Automating builds and tests allows developers to commit smaller changes with higher confidence and get feedback on their code sooner. GitLab’s CI features were designed years ago, and given the siloed nature of how GitLab team members work internally, there hasn’t been a moment to step back and evaluate the experience of CI and merging code as a whole. In this project, you’ll evaluate the current experience, including documentation, and speak with real developers who use GitLab to understand their pains when developing/merging code with CI enabled. You’ll use the insights you find to make improvements using the Pajamas design system in Figma and test them with real users.

Project lead

The project lead for the Tufts University Capstone Course project is a rotating volunteer position. Ideally, the same individual should not run the project more than 1-2 years concurrently in order to share the professional development benefits and workload that the role entails.

Project lead history
Year Name
2023 Gina Doyle
2024 Gina Doyle
2025 Chad Lavimoniere
2026 TBD

Responsibilities and timeline

The project lead has various responsibilities before, during, and after the student project.

Before the project starts

In the lead up to the project start, the project lead should:

  • Recruit GitLab Team Member volunteers, keeping in mind the ideal volunteer team composition.
  • Solicit at least 2 project proposals from GitLab team members for students to vote on.
  • Communicate with the Product team DRIs (Product Manager, Product Designer, UX Researcher) that own the feature area for each project proposal.
  • Coordinate with the professor, Linda Borghesani (Linda.Borghesani@tufts.edu). She will arrange for the students to choose which proposal.

During the project

At the start of the project, the project lead should:

  • Collaborate with Legal to have the students sign an NDA to follow the guidelines of our SAFE framework (🔒 internal only). Once the students select a project in January, it would be best to connect with @ktesh with the project start and end date, a short description of the project topic, and all of the students’ emails in order for the NDA to be officially issued.
  • Create a designated subgroup and public project in the Tufts University Group to track the Capstone project progress. Encourage students to create GitLab accounts with their school emails and invite them as owners to the project. This can help them get familiar with how GitLab works and the problem they’ll be solving. This can also be the place where they access resources or materials they need to complete the project. Check out this project for inspiration.
  • Create a Slack channel for daily communication with the students. Follow the Slack access request guidelines to include external users in a Slack channel. You can also use this access request issue as a reference.
  • Write up a summary of the selected project proposal and link any resources that would be helpful for the students to look at to gain a better understanding of the concepts they’ll be learning. Check out this markdown file for inspiration.
  • Schedule a weekly check-in meeting time for volunteers and students
  • Create an agenda document for weekly check-ins so that the students know what to expect. Check out this agenda for inspiration.
  • During the first meetings with the students, ask them what skills they are hoping to get out of the project. There are opportunities during the weekly check-ins to focus on those skills and teach the students how they are used in real-world scenarios. An example of this is explaining how to use design systems in Figma, including how to get the library in Figma, adding and editing components, and even making contributions to the Figma kit itself. Previous topics that students have asked about are listed in threads on this issue along with supporting materials.

While the project is in progress, the project lead should:

  • Work with the student team to make sure they have access to the necessary resources (for example, Dovetail) and people (for example, experts or participants to interview). Work with your manager to give students the appropriate access to GitLab tools and projects.
  • Hold stakeholder review sessions for larger deliverables, such as the discovery research proposal. These meetings should at least include the Product Manager, Product Designer, and UX Researcher of the product area the project focuses on. These can take place instead of a weekly sync or at a separate time depending on the team’s preference.
  • Use issues in the project to track sponsor-assigned tasks, such as project prep and reviewing student deliverables.
  • Record weekly check-ins and add them to the Tufts Capstone Project playlist on Unfiltered. This playlist is private, as some recordings will contain confidential information, such as reviews of confidential research or competitors.
  • If the students and professor are interested, organize a final presentation for them in a GitLab-held Zoom meeting. Be sure to:
    • include the Product Department as attendees.
    • Add the event to the GitLab team meetings calendar by following these steps.
    • Post in #whats-happening-at-gitlab for extra transparency.

After the project is completed

After the project has been completed, the project lead should:

Reach out to @gdoyle or @clavimoniere on Slack if you have questions. More information including FAQs can be found here.