Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XS✔ ◾ Improvements to "Work in pairs" rule #9450

Merged
merged 1 commit into from
Oct 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 26 additions & 19 deletions rules/work-in-pairs/rule.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ uri: work-in-pairs
authors:
- title: Adam Cogan
url: https://ssw.com.au/people/adam-cogan
related: []
related:
- ai-pair-programming
- hand-over-projects
redirects:
- efficiency-do-you-always-try-to-work-in-pairs-1
- efficiency-do-you-always-try-to-work-in-pairs
Expand All @@ -15,34 +17,40 @@ archivedreason: null
guid: e1ce40a6-7c15-4974-9e57-506b1bc7c337
---

There are many good reasons why it's better to work in pairs.
There are many good reasons why it's better to work in pairs - enhance productivity, creativity, and problem-solving capabilities.

<!--endintro-->

![Figure: Do you always try to work in pairs?](ProjectManagement_PairProgramming_Luge.jpg)
![Figure: Work in pairs](ProjectManagement_PairProgramming_Luge.jpg)

**For everyone:**
::: info
**Why use pair programming when you can use AI 😉?**

* Less time stuck on a problem - you have someone familiar with the project to help you work through the problem
* You can keep each other motivated and you absorb knowledge from each other
* Experience shows that 2 people working on a problem together are often more productive than one person working alone for twice as long
[AI can work as your pair](/ai-pair-programming), handling repetitive tasks, give quick feedback, and help with decision-making, making it easier to work solo in certain situations. While AI can't fully match the creativity and interaction of working with someone else, it's a great tool for cutting down the need to team up for routine or technical tasks.
:::

Whether it's brainstorming, coding, or tackling complex tasks, working in pairs often leads to more efficient and high-quality results.

## For everyone

* **Less time stuck on a problem** - Having someone familiar with the project will help you work through the problem
* **Mutual motivation and knowledge sharing** - Keep each other motivated and absorb knowledge from each other
* **Increased productivity** - Experience shows that two people working on a problem together are often more productive than one person working alone for twice as long

**Extra - For developers:**
## For developers

* Code will have less strange workarounds - because if something doesn't add up to a developer, they've got someone to ask
* Cleaner code - because you know someone else is going to be looking at your code
* Support - when you need changes down the track, you have two people to call on
* **Code will have less workarounds** - If something doesn't add up to a developer, they've got someone to ask
* **Cleaner code** - You know someone else is going to be looking at your code
* **Support** - When you need changes down the track, you have two people to call on

> _"I have found developers work better in pairs. I am not a fan of the classical pair programming - which is 2 developers working on the 1 PC. There are times for that especially during brainstorming activities, however on a day-to-day basis, I advise that developers work in pairs, but they each have their own PC."_
>
> **\- Adam Cogan**
> SSW Chief Architect + Microsoft Regional Director

---

If you are not sitting next to a person working on the same project, then fix it. If you cannot then at least mention it to your manager.

### Working Alone and Getting Stuck
## Working alone and getting stuck

If you find yourself working alone, which we don't recommend, you should speak up as soon as possible. You should make it clear that working alone is not best practice and that developers working together are worth more than the sum of their parts.

Expand All @@ -56,17 +64,17 @@ If you find yourself working alone, which we don't recommend, you should speak u
![Figure: Good example - This is ‘working in pairs’, two devs working on the same project, with their own laptops, but sitting very close to each other](PairProgramming02_Small.jpg)
:::

### Is there an overhead?
## Is there an overhead?

Some projects are done quicker with two people - especially when they are complex. But on most projects there is an overhead, because of the extra communication between the developers - you now have to please someone else - not just yourself.

Estimates vary for the overhead, but say it is 20% extra, this is more than offset by the cleaner code and better solutions that come from two brains working together.

### What if you are working remotely from each other?
## What if you are working remotely from each other?

If you are working with someone remote, you will be using an application like [Teams, TeamViewer, or another support tool](/do-you-know-the-best-way-to-give-the-best-customer-support) to view one another's desktops so you can help each other out when necessary. You should have [a 2nd monitor](/efficiency-do-you-use-two-monitors).

### What is the best code collaboration tool?
## What is the best code collaboration tool?

[Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) - See Video (3 minutes):

Expand All @@ -77,12 +85,11 @@ If you are working with someone remote, you will be using an application like [T

[Code With me](https://www.jetbrains.com/code-with-me/) - A great tool for JetBrains IDE users who want to pair program. Though it isn't supported in Rider right now.

### Alternative Approach when there’s not enough Budget or Work: Weekly Senior Involvement
## Alternative approach when there’s not enough budget or work: weekly senior involvement

In situations where there isn't enough work for two people, or budget constraints limit resources, an alternative can be adopted. This approach involves a single developer handling the majority of development tasks, with a more senior developer contributing primarily on Sprint Review day. See below for an example:

::: greybox

If a client only has 1 developer working with them for 1 day a week, they must still keep regular Scrum cadence. In this case they would break the work down into 5-week (5 working days) Sprints. Every 5th booking, a senior developer or Solution Architect must be booked with them to ensure the project is running smoothly and to help them plan the next Sprint.
:::

Expand Down
Loading