# Bus Factor, Pair Programming and VS Code Live Share

Canonical: https://davidk.dev/talks/bus-factor-pair-programming-and-vs-code-live-share/
Video: https://www.youtube.com/watch?v=IeR8Z19Mebg
Speaker: David Khourshid (@DavidKPiano), creator of XState
Type: Interview · Event: Fun Fun Function · Year: 2020 · Duration: 7:30 · Views: 4614 (as of 2026-10-19)
Topics: Visual modeling, Startups & open source

## Summary
Educative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding environments mean you can jump in and learn without all the fluff – no set-up, no scrubbing back and forth through videos, no hassle. Get 10% off any course when you go through our link:

## Key takeaways (quoted from the transcript)
- This particular video is about the bus factor and the value of pair programming and sharing knowledge in a team. (0:00)
- I tend to take the position that on sites teams are always better, however, and especially like one of the big reasons why I've held that position. (2:00)
- Remote work environments generally didn't gel very well with it until we had visual Studio live share. (3:00)

## Chapters
- 0:00 Introduction
- 4:00 I've worked in many organizations where people have been so afraid…
- 6:00 People get sick, people quit, it's a just change…

## Transcript
[0:00] Good morning, every week I do live streams at Twitch.Tv, slash fun, fun function. And the clip that you were about to see is an outtake from one of those where I talk XState with David Crochet. But this particular video is about the bus factor and the value of pair programming and sharing knowledge in a team. It's a really good video and I think you're gonna like it. David is amazing. You should make sure you follow him on Twitter as well.

[0:00] Link in the episode description. Before we get onto the show, I would like to thank today's sponsor. Educated Educative is an online learning platform, text-based, interactive, where you can learn programming, all kinds of programming, React courses, micro services, advanced JavaScript concepts. Roast any anything you can imagine. Really. Thank you so much, Educated, for sponsoring the show now after the clip, yeah, the reasons that live share ends. This online real-time collaboration thing is so important because we've known for a while that pair programming is a really, really efficient way of sharing ideas.

[1:00] And making sure that you limit the bus factor, which if you don't know what the bus factor is, it's basically if someone gets run over by a bus, is the project going to survive? And for all other projects, the bus factor is one. So you really, really want to focus on sharing the knowledge with as many of your teammates as possible. And and that's why I care. Programming is so good, and live share enables that pair programming without having to be physically present next to each other and without having to screen share.

[1:00] Which, you know, can be a really awkward thing. And it's a lot easier to just be in the comfort of your own code editor, rather than trying to navigate through someone else's screw. Yeah, it's for me like, there's a lot of people, a lot of developers that want to do remote work. And the developers is one of those professions. Where where it's actually realistically possible to do work remotely, it's it, but I, I'm one of those people that are, I'm deeply skeptical of remote work.

[2:00] I tend to see it. I-I-I tend to value the high bandwidth communication that you get from having an on in person team, like to value that very, very highly to. Be able to sit next to someone and read, read their facial expressions, you know, or like, when you walk in to read someone's read, the mood of or view of your close colleague. And so I tend to take the position that on sites teams are always better, however, and especially like one of the big reasons why I've held that position.

[2:00] What is because of my like that pair program is so fantastic. And in addition to the code, like the knowledge sharing argument that you put forward, I would like to add that it's. It's also enormous ly effective. I find that pair programming sessions are so, so focused. I tend to just work more intensely because the other person tends just trigger my attention and keep my. Keep my attention going on the on the project and just give me a lot of energy.

[3:00] And so with pair, programming is lost, that's that's horrible. And remote work environments generally didn't gel very well with it until we had visual Studio live share. It's just a spectacular product for it. It's it's so, so good to have like that, direct, direct access. I've done a lot of pepper on screen sharing and it works. But the immediacy of visual studio and the fact that you can, like, keep track of different files.

[3:00] And not just what the other person sees is, is just amazing.

[4:00] Yeah, and especially in this day and age like you, you see that remote work like, regardless of your opinion. It's so important because, you know, we have the virus going on. Current Iris. And so a lot of companies, such as Facebook and Microsoft itself, are requiring their workers to work remotes. Oh, until the end of the month, at least. So when it's forced on you, it becomes more important. That's like an interesting notion to be able to have an organization where you're required to remote.

[4:00] And I think that's the only thing to do it properly. Like, because I think that my bad experiences have come from organizations where remote work has sort of just been added. Which washable, blah, blah, and that, yeah, that yes, like, Oh, of course, people are allowed to work remote. That set up like a the basics, like a VPN or stuff, but you still rely. On processes that are that are on site, you rely on a on a on a physical board, you rely on the physical stand-ups.

[5:00] And anybody that does remote, remote in get such a big drawback from that their efficiency drops, right? ION let's see cat five. I love his coming. Just don't walk in front of buses. Regarding an actor, yeah, like, it's, I mean, it's a joke, but I think that a lot of organizations actually accidentally hold that, that idea. And that you should just try to avoid, avoid mistakes instead of having a having a quick capability of fixing mistakes.

[5:00] So I've worked in many organizations where people have been so afraid of deploying because mistakes can absolutely not get into production.

[6:00] And that means that they'd never develop a process for shipping fast. Which means that when bugs come into, which they inevitably, inevitably will, they just don't have that quick, quick capability of fixing it. Mm-hmm, yeah, about the bus coming back, like it's not just getting run over by a bus. When one developer holds all the knowledge, the domain-specific knowledge about a certain part of the product. That's not really efficient for the entire team in, so it's not just getting run over by a bus.

[6:00] The developer could move to a different team, the developer could even switch jobs. And I don't know, just reach quit without providing any documentation. So there's a lot of risk factors, and exactly that's why it's important. Yeah, people get sick, people quit, it's a just change, and failure are inevitably inevitable things. That universe is a is a scary place. So the only thing that we can do is to make sure that we have redundancy and capability of handling that.

[7:00] And and pair programming to share knowledge, that is a great way of doing that.
