WHAT IS MOB PROGRAMMING LIKE? | Woody Zuill

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what is mob programming like [Music] welcome to the hello world show I'm Spencer tonight and Bach I'm Heather downing and we're here to introduce Wood easel who's gonna teach us about mob programming he's been programming for 35 years been doing extreme programming since the 90s and has written the book on mob programming in fact he's the face of it so tell us a little bit about yourself so yeah I really love the program and I love working well with other people when I first start programming I always worked alone once I learned pair programming I realized that's really productive and now maybe the most important thing is that we work well together to get our work done well we're going to talk about mob programming mob programming is where all the brilliant minds are working on the same thing at the same time and in the same place I'm gonna just draw some people here so we can kind of see the idea each one of these people is necessary for the software variety we might have the product expert or product owner a tester a coder a back-end coder a front-end code or whatever a designer the database expert whatever is there these are the people that need to do the work that we're gonna do to get this software done and rather than have them working separately everybody's going to be working at the same computer everyone's working on the same thing at the same time and at the same computer this sort of gives us a way of doing real time collaboration all the time but it seems preposterous most people will say how can you be productive with five people at one computer and I'd like to reverse that question how can five people be productive if we separate the five people that should be working together now it's harder for them to communicate their ideas back and forth throughout the day with mob programming we're always collaborating it's real-time collaboration all the time so what I want to show is that basically we need to have some way to actually be able to do this it's like maybe a technique or two and perhaps a principle or two so for me working well together is important whether or not we're doing mob program so we still need good techniques for working well when we first started doing this we didn't realize that we don't want to just have everyone speaking at one time so we would just share our ideas but we realized we really have to hear the ideas from other people that's what's important about the communication so we came up with this sort of an idea or a technique we're going to use one computer and we're therefore using one keyboard and all of our code is going into that one keyboard somebody has to operate that because the keyboards are dumb input device you can't do anything on its own but the but the operator is a smart input device the person's they eat the keyboard they can operate the keyboard and write code everybody else on the team is a navigator so we call this person the driver the thing is it's like if I'm on a trip with my wife and she and she's driving and I'm holding the map as a navigator I'll say in about five miles we're going to need to turn off the highway so in the meantime she can do what she needs to do keep the car moving safely past people when she needs to but when we get close I'll give her more detailed information it's the next turnoff then once we turn off and say well the place we're going is right up here so the navigators are directing the driver where we're going what we're doing but to make this really work for us we want the ideas of the driver as well so we have what we call rotation the drivers switched out with one of the navigators every few minutes five ten what every minutes works for you so when the next person comes in they become the driver for a short amount of time they're not just coding an idea they're they're hearing the idea that the navigators are expressing this is an important concept if the driver has the idea they give up their time at the keyboard so we follow a simple rule for this we cut we would say it this way for an idea go from somebody's head into the computer it has to go through someone else's hands so if an idea it goes from somebody's head into the computer directly and everybody's just watching the communication is very lacking but when we do it this way we have to express their idea we might go to a whiteboard and we will draw a diagram of how these different elements are gonna work together and we could say okay we need to send an email and we will go to that part and start working on it as we describe what we're doing the driver keys that into the keyboard everybody else is reviewing the code in real time everybody else is revealing is reviewing the idea we're having now if there's a conflict of ideas which often happens when there's more than one person working on something we can express it say well I think you should be this way someone else says I think you should be that way so we try them both instead of us talking about or discussing which is better in a few minutes we can prove which one we want to use usually what happens is after we tried two ideas we come up with an even better idea so rather than deciding which one to try we try them both and then we see this the better idea come out it's really straightforward what we found for ourselves assists gives us what I would call flow this is not the flow of somebody working in deep concentration it's a flow of a group of people collaborating well on the same thing we're not trying to optimize for each individual we're trying to optimize for the work we're getting done so if everybody is there to answer questions as the ideas come up or the questions come up we work really rapidly through our work we actually found we got a lot more done at a much higher quality working this way than when we worked alone so mob programming might be a preposterous idea it might seem impossible and I think I wouldn't have I wouldn't have thought it was possible if I hadn't tried it myself so how long do you get to be left writer but how long do you get to throw out your ideas for like is there there's no time limit on the thinking or the expressing of ideas if I have something that I think it's going to be helpful I can say it if it seems like the appropriate moment to say it we don't want to express our ideas about everything all the time what we want to do is share ideas at the right time and in the right way if it's the appropriate thing others I'm gonna draw some thought bubble here others are thinking about how they're part of it might come into play but once I've expressed my idea the whole team can decide at that moment yeah let's take that to code and we're navigating again so we could it could be as simple as this make a new module a new class we're going to call it the email customer class or whatever and then we're coding within five or so minutes we've got an idea of what this thing's supposed to do I'm going to give this person two testers hat I don't know what a test does that looks like but I'll draw it like that so I want the tester on the team when I'm coding or on I'm thinking up my ideas I want to know what are we going to do to prove this works correctly what are we going to do to verify for ourselves that it was a useful idea I want to have the product owner on the team I don't know what's the product owners hat look like we'll came with top at the product owner I want them on the team because they know where we're going the tester kind of knows how we're going to prove we're getting there and everybody else on the team their ideas are about how do we implement that in code this is the basic concept yeah so is this a 40-hour a week like five day a week thing is it twice is it twice for four hours a week well that's a great question because it's up to the particular situation where we originated this idea we went from not using this concept to using it in just one day once we started doing this which was kind of by accident we all recognized there was a lot of value in it and we just kept doing it literally from that first day that was almost six years ago forty hours a week five or six people sometimes even more people all working together now we could split apart workers individually there's nothing forcing anyone to stay the rule isn't you must stay with the team the rule is if we need you be ready to come help so normally we would just sit together and work together especially helpful when the product owners there now there are other teams that are doing it say three times a week for two or three hours at a time I worked on a team for the while in the last a year where we would work three hours every day depending on who could show up because it was all be done remotely rather than in the same room I like being the same room but in the modern modern world of software development you're often in different parts of the world the only big issue is time zone differences because the technology is sufficient now where you can have an online meeting while you're working somebody's writing the code we're switching the keyboard no problem so yeah I would say the less frequent you do it the less likely you are to get good at it so practicing it regularly is a good idea it's just like with a lot of things if you're gonna play in a band you got to keep your skills up with whatever instrument you play so you've got to practice it thank you so much for that show this I mean actually you made it a lot clearer than what I excellent good well thank you for having me thank you don't forget to share this video on social media and comment below to be entered into our weekly giveaway tell us what questions you have for our guests see you next time
Info
Channel: The Hello World Show
Views: 3,184
Rating: undefined out of 5
Keywords: mob programming, woody zuill, the hello world show, spencer schneidenbach, heather downing, software development
Id: MhyCrP80Qc0
Channel Id: undefined
Length: 9min 49sec (589 seconds)
Published: Mon Sep 25 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.