Helping junior developers
with pair programming

Contributing to growth by connecting with senior developers.

Picture of the pair project

Developers and pair programming

    Pair programming is a development process that helps in building and testing written code. Both developers discuss approaches and solve problems that may be difficult for a single developer to detect.

Receiving help from those who already master what we are learning facilitates our growth. Other people can identify mistakes that we didn't notice and, in addition to sharing their knowledge, help us develop interpersonal skills, such as communication, organization and teamwork.
Developers have a structured work and learning process in which they can practice these skills. This process, usually carried out in pairs, is known as pair programming.

About the project

Pair is an initiative that seeks to connect beginning developers with experienced developers through pair programming or free mentoring.
The goal is not only to offer technical support to beginning developers, but also to create a collaborative community where members can exchange knowledge and experiences remotely. There are many professionals willing to help, so bringing these people together in one place is the purpose of the solution.

Target audience survey results

I gathered some hypotheses on paper, and to validate them, I conducted qualitative research individually with 10 early-career developers, with the aim of discovering:
  • What is the study routine of a junior dev like (if they have them, how are they organized).
  • They usually practice on real projects (truth coding).
  • Where and/or who do they look for to answer questions, resolve bugs, etc.
  • If they receive or have already received mentoring or any kind of help from other devs.
  • What do you think about pair programming (getting all kinds of insights)
  • If you have ever programmed in pairs (if yes — for what purpose, with whom and if it helped)
By gathering insights from the research, I was able to answer each question listed above. The chats also helped to discover new pain points that had not been mapped.

Measuring interest

I was also able to understand whether developers were interested in a remote pair programming proposal. I shared a form in groups on Twitter (where most developer communities hide) to find out:

If respondents had already had contact with pair programming remotely (and how this helped); For what purpose would there be interest in pair programming (if any);

Results:
  • 50% of respondents have already done remote pair programming, while the other half have never done it.
  • The majority of respondents said it helped them learn to code in general (while 34% used it to find and/or fix bugs).
  • The majority of respondents said they are interested in using remote pair programming to receive help from other developers (while a smaller proportion would like to help through it).

Insights

There is interest in the proposal.
The solution would be innovative, as remote contact is not yet so common.
The solution would positively impact beginning developers.
There are developers willing to help those in need.

Problem definition

I decided to list the main pain points perceived in the research, to keep in mind the difficulties that I could resolve with the proposed solution.

Pain points

Pain point 1: Interviewees have difficulty working on real projects — because they dont know how to organize, debug and often code.
Pain point 2: Interviewees do not know which technologies to study (prioritize).
Pain point 3: Respondents miss mentoring with more experienced developers. When they need it, they usually ask for help on Twitter or Reddit.

How might we...?

How can we help less experienced developers to...

Develop soft skills? Receive guidance on what to study and where to start? Receive help from more experienced developers?

Brainstorming

Filter by development areas most relevant to the market.
Offer a career guide
Calendar to schedule contact based on availability
Reward developers who helped

Jobs to be done

I noticed that users felt a lack of direction about what to study, what to prioritize, had doubts about the market and generally had no one to ask. With this in mind, I defined two main Jobs to be done that the solution would need to solve.

JTBD 1:

Facilitate virtual meetings between junior and senior developers.

JTBD 2:

Contribute to the direction and development of soft and hard skills.

The solution

Two ways of contributing and directing

Right on the home page, you can choose one of the two help options that Pair offers: career development (mentoring) or pair programming session. This way, we are able to suggest professionals willing to help based on their expertise.

Picture of the pair project

How the scheduling flow works

The scheduling flow works like Calendly, in three steps. After choosing a professional, the user selects an available date and the desired time on that date, and that's it! Meeting scheduled. Details about the virtual meeting, such as link and option to cancel, are sent to both emails.

As Pair's proposal is to help as many beginners as possible, registered professionals do not receive financial support. Therefore, I added a CTA for juniors who want to transfer some money as an incentive. The "I want to contribute" button opens a modal with the bank account or PIX information registered by the professional himself.

Picture of the pair project

Final Note

In addition to the experience I described here, this was a great project to practice elements such as componentization, organization and creation of a design system and, mainly, the designer's day-to-day work with developers. The project was designed in partnership with a developer, which helped to focus on real pain points.

@2024 Juliana

Made in figma