 With even number of people at the table you if I see already some people looking very scared Oh, I need programming experience. We have people This is a workshop that was the very first time given in a in a school where people only had like two three weeks of programming experience and they did really well and there was actually some person who is rather very very new So don't be scared. It's a little workout But like I said, we need computers. We need only per pair One computer, but you need to be comfortable that at some point other people will use your computer and you won't be there Because we're going to swap. So that's the other question I think you asked the question. What tool do we need? The first pair selects the tool The first pair selects the language in which we'll program So I'll already guarantee you you will write code at some point in a language You've never seen except if you are the smartest person around the world and have programmed in any kind of language. That's okay The ex did the ID is to experiment and to try out stuff here Yes Okay, better. Yes. Thank you. Okay, so We need and we need to be kind of evenly distributed at the tables So they need to be so this is all very large table. This is a very small table That doesn't work. We need at least four to six people at every I prefer six people at every table Let's see if we can make tables of six Yes So and we need to have at least So three computers at every table Let's get organized So we need three more people here So if the three people from there can move over here and Do and used to you can move over to that table if you want to do that then the six everywhere, I think Well, you need to have computers so you have no computer at all Okay, wait wait or you can bring it. That's even better if you can get it I've done this. I don't remember anywhere where there were even the part of it on paper So people programmed on paper. That's very interesting You learn a lot about the languages you work in. So that's why let's get our set up We have one laptop here one Yeah, we'll need to make sure that this these two of people so you need one of you has a computer now Okay, we can work in three systems as well if that works, but I will make it a little bit harder for swapping Who else has a computer here? Utria sharing one they have Okay, then we need more than we need to deliver them papers small people coming in You need to be at a table and you need to do you have a computer? Can you get it and get in here or is that that would help us a lot. Thank you Yes Yeah, but you will need to anyone everyone will code that it's a practical work job I have a theoretical part, but they asked me to do just a practical part. So we'll actually all code Yes, you need a lot At least normally we need one computer for two people who are in the room So we need more I'll explain in a minute. What's the exercise? Don't worry too much about that Yes, yes, you can use paper so if you want to use paper that's fine so I There's enough Let's let's see how it works. I'll assume right now that we're kind of okay We'll probably have these two gentlemen move over here because that's otherwise it's that doesn't work with you for the exercise Okay, let's do show of hands who has Who has done pair programming before When this exercise was created there was originally created This was originally created for a high school that was set We want to teach our students a little more about programming and pair programming and some Some things from the agile world. So they asked me to do that thing and what we've designed is a number of exercises What we've designed is a number of very small exercises. They're like you will see like a few lines of Explain in English. Yeah, that you need to program You can take the whole 90 minutes to program it you can be done in five minutes We have a lot of different exercises. The goal is not to be the fastest or anything like that If you think the challenge is to code you're wrong. I Will swap pairs or we will swap pairs every 10 minutes It's called extreme permissive sparing it's like wow before you even thought you started some people if you have a very slow Computer your computer might not even have been booted into Remember these low computers I do So that is extremely fast. Of course that To make sure pair programming doesn't mean that we'll pair every 10 minutes and full swap The idea is to give you a similar experience in one hour and in 90 minutes that you would have if you would pair a lot During a day or a week. So that's that's the goal. And so they're already starting. You're trying to get ahead Yeah, well That's okay. The first that brings up the really interesting thing the first 10 minutes. It's okay If you're still looking for stuff like that You will get some people need 10 minutes just to read it It's it's not that hard, but it's English. It's English is not your native language. It's okay to take the time We'll swap after 10 minutes. That means one of you will move a lot. I'll explain how we'll move I'll coordinate that one of you will move and one of you will stay And 10 minutes later the second person will move and so the none of the people who originally started coding will be there That's all why I said what I would ask open an editor open a browser so people can go in browser and let's Agree with each other. We don't open anything else. We don't look at anything else We just stay into the editor and that one browser. It's open that if you need to look something up the people who are programming on paper, for example, you might look things up on On your phone if you need to do that kind of things You might worry a little bit less about what editor tells you from Mistakes that you make but it might really make you think because typically when you work on on an editor The editor helps you out with all these things languages that you don't have this is why you learn a lot more about the language Maybe less about the exercise, but so what you will notice is very quickly a lot of you will yeah The first people who worked on that Won't be there so you need to figure out a way also in the code or whatever. This is the direction. We're going You always have one person who stays and then we'll swap you'll have to if you're finished Raise your hand and we'll give you different kind of exercises So it could be that you do an exercise very quickly with a pair and you'll do start a new one It could be that at the during the whole 90 minutes on that computer. They will only work on one exercise That's fine as well The idea is the last 15 to 30 minutes I'll see a little bit how it goes that will do a kind of retro to talk about what we've learned and some of that Are there questions probably a lot, but what are there things that you really want to know before we could get started? Editor and a browser that's it You write the code that you want to write that you think that is solving the problem you could do it That's the interesting thing the first two people on a certain exercise Decide on how and what to do you decide on the language and that means that if you're very good in Java You could start in Java and the next people who come in might not know Java. Okay, that's part of learning And it's it's okay because what I've seen already I've seen people really Quickly grasping some basics and some of these things so you will learn some basics of a certain programming language You will learn some basic of programming in general if you've never done it. I've done it with testers I've done it with DevOps. I've done it even with managers that thought they were able to code but haven't coded in 20 years And so it's not always easy, but you'll learn so what we'll do so you can now start opening your your Environment to code and decide on what editor we'll start distributing Little exercises, sorry They need to be different exercises at the thing so that's why I'm looking And you only need to look at the The lowest number right now. There's two numbers. So if there's two pages, it's just the first one I Who else doesn't have a paper yet I'll explain So before before everyone has a every pair has a paper What and everyone has a pair that's also important no so I will ask you to join this gentleman because he's alone So I just cut a team You need one Okay Yes So Oh Oh Oh You just tell me and we'll give you another assignment Okay, but wait a minute. We said ten minutes and now is the moment we're gonna swap pairs Even if you're finished, we're going to swap pairs. It doesn't make sense to give you a new assignment So how does that work could I could I have everyone's attention, please? How does it work the person who's on the most so with every pair with three sums will we'll have to work it out So admitted that every pair one of you is on the right side, right? There's the right. This is right just to make sure that we agree on the same right So that means I'll just show here this this person who's on the right. Yeah, he'll move to this pair So you start work Not smart So I can't show you you start working on this computer and you gentlemen you move over there You're moving with marriage Very good the course that's true the person who stays stays with the exercise So you move to you even if you solve them almost I think you almost solve too bad. It's moving into another So and now we do that and we stay at the same table we move now we have one minute to move You So Okay, it's moving again So this is the second time we're going to move now the first sorry stop coding stop coding It's great. It's relaxed. It's ten minutes. Thanks. Now. It's a little bit. Okay, so we're now going to move again Typically how we do that is that the person who states before will move to the left now We we have to and stay at the same table. You need to so you need to go there But unfortunately we have only two groups there and then they they will go back to the For the first time it will quite Yeah, okay for left. Okay, so now you can do that for this time So we'll do that so move to the left so the person who stayed there move to the left To this place If you're done Let's first see Are you Wait if you work between one of you No problem because we have a team member who left This does this ever happen at work that you're there and so Some so somehow we need to figure out so I'm going to ask one of the people who's working with three to join there So that way you have a pair from a completely different department. Let's put it like this Okay, so we're done where we can start You're done, okay, let's see. Let's start the timer and I'll give you a new exercise I Know That's another 10 minutes we're going to do again Right so the first person who moved the very first time will move again except if you retreat and you have to figure out Who has not moved yet and move to the right? And here we will I know your two pairs. Yeah, I'm going to wait I'm going to ask a pair of you to just swap over here You just You just So it's the first person who moved you move again to the next one again to the right So you you moved you just moved right from this. Yeah, but I said, but you stay You always stay one time You What you mean with stop is that you don't find a solution or it's We'll have a debrief at the end. So well, I just want to have a few more Well, we'll have debrief And I already decided to have the debrief longer than I usually have so so we'll have a debrief So now it's again moving to the left side for the people who move to the left side So the second you move Yeah, you need to move to the left. So I don't I don't remember anywhere Who else moved the people who just sit down they need to move to the left And you move To continue coding, I know you want to finish it But well, we'll stop here. Can I can I have your attention? I have a few questions I wrote them that I'm not going to show them because otherwise people will start thinking about all of them But one of the questions I have is who and it's too show of hands who has introduced himself every time to the pair He said, hello, my name is Okay, not when you go back to the first pair. It's an interesting question because we forget to do this so often There is an interesting book. That's called the checklist manifesto. That's about In in hospitals and stuff like that turns out in hospitals. They don't have stable teams So they do surgery with people they've never done surgery both like like maybe once or twice every year They have the exact same team doing surgery If they start that surgery by introducing themselves and just saying hi, I'm if and who are you the number of deaths? Drop by 10% or something Wow Okay, this is lives Well, maybe you're not writing code that is so important, but I hope you're not writing code for airplanes Especially not when I'm going to take tonight But this is this is insane. So this is something I've learned that I'm asking all the time There's actually I've never seen so many hands when I do this exercise. So this is already a very great group Thank you very much But just take that with you that you keep doing that So another Another question who wrote unit tests today in this exercise one person a few more Okay, so yeah, but okay, so you'd of course I hope all of you tested the code that executed It's a little bit harder on paper. I know that I Could ask who compiled it They keep learning Is there something you want to share Yeah, there was I'm pretty sure there was a bug in the logic and we spent the 10 minutes on debugging that I still want to know how I'm sure they will send you the code and you can fix I Okay, I'm asking the unit test because some of the exercises were Continuous exercises. So a lot of the exercises were just completely independent But some of the exercises were a second exercise, and of course if it's completely independent You can throw away the code because we're never going to change it anymore But if you keep working on that Yeah, then you might need to be sure that the older ones still works or not depending on how the exit because some of the exercises are Continuing building and then you want to do and some of them are like this is one and the other one is another one But we don't care about the first one anymore, but it still is important to learn some of these things I'm asking this question because what I've noticed is I have been working with developers who keep telling me all the time Yes, I know how to work perfectly, but management they don't allow me to do that Probably these managers are not in the room these people that tell you that you can't write unit tests are not in the room and Still a lot of you have been through unit test You can decide here how you write and how you work on it a lot of people Don't realize that we're blocking ourselves from doing that and you could say it's not important for here I don't force you to do that. So if that's okay for you, that's fine But if you don't tell ever that your management doesn't allow you to do that when you're not encouraged to do that yourself when you have If you have and the next time you do some exercises try to think who's blocking me from not doing it Because if you didn't do it here, it wasn't manager except if he's was looking over your shoulder And you were bearing with that person the first time then I can understand but just realize that It's not a judgment call at all It's just learned that what is blocking me from doing that. That's an interesting question and What are some of the problems that you had Here there was a problem with the keyboard layout that was completely different who had same thing who had that So a lot of things that this is one of the things that does block pair programming If you're working in an environment where people have all different kind of layouts and keyboard layouts I've been working with people from Russia when they came to Belgium We actually bought Russian keyboards so they could work It was very strange to see people pairing with two different keyboards and two different mouses because you have to communicate really well Because if people start to type at the same time and it did happen it did happen a lot So me what actually happened is that it slows it down because you need to before you start typing You said can I type because if you start at the same time it slowed them down But it made them much more sure about communication. They needed to be much more Same thing with mouses if two people click mouses at the same time you get all over the place It's it helps a lot if you pair if you can work on in your own Keyboard layout so if you work with and it's harder now with with laptops because typically with laptops we might not work with With an extra keyboard And if but we can attach a keyboard So with if you want to do more pairing it can help if you have an extra keyboard with your Preferred keyboard layout and knowing how to switch between these layouts so that can help And no wait before Editor who was familiar with all the editors you worked with because you probably worked in multiple things who was Okay, so most people worked here today with an editor they never used That's also something that is hard if you start their programming I'm not saying everybody should use the same editor in the team, but you at least you need to have that conversation around it I Had a team where that I coached that I helped prepare programming But there were really some hot shots hero developers that insisted we should all work the one said Them and the other said whatever and so we had four different keyboard layouts No wonder they had troubles pairing together because and not just that they also like of course the typical Discussions tabs and spaces and all these kind of different things if you then work in the same thing. It's really hard It's in it. It's an important discussion to have people throw away Go away from that discussion because it's really always hard and in the end for me most of the time A lot of people might not agree with that, but most of the time What is decided is not so important. It's that there is a decision that we work on something similar That makes it a lot easier I prefer to always work on the same editor even if it's an editor I don't like because I will learn new shortcuts and learn other stuff as well so but that's an important thing try it out and maybe Maybe just two editors will work in a team as well if you swap a little bit But if it's five different editors, it will make life for everybody really help because that Because otherwise you will and the risk is you will always pair with the same person And you will end up with just being two that are exactly clones from each other that might not help What was the other questions I have? Sorry. Oh, that's an interesting one. Who learned something about programming today Okay, so not everyone who learned something in general some other things I hope that the people who learn from programming keep put their heads up because it's also anything okay, so that's already a lot more Who learned something? Or maybe let's give an example who wants to shout out something you usually So I was you know initially putting something which in C++ similar kind of problem When I paired with him with Python was quicker Okay, so for this exercise Python work, okay, and you learn that from from him. Yeah, okay Is that something that you already learned before or did you do this? Other examples other things that you learned Program we were writing in the Java So first thing I came to knew I am a cobalt developer So you can write something in Java and executed immediately. So if you have some basic functionality issue, you can do it online Like a state of mainframe. We need servers connectivity Second thing was the Mindside while working in team. So I was working in a team which I was aware after 10 minutes I will not be part of this team anymore. So whatever I am doing here I should hand over to the team so that they do not struggle after I moved from really really important who worked on that While he was doing thinking already in 10 minutes. I'm gone or in 20 minutes. I'm gone I need to make sure that so you work that so I see multiple people not everyone thinking about that That is something I talked earlier this week about staff liquidity the fact that we move things around Yeah But that's important to realize some things and we might think well I'm still here tomorrow, whatever, but you don't know anything can happen So it's really good to share some of that stuff a lot of people have the tendencies and the smarter you are This is really important for real smart people, which most of you are I think otherwise you wouldn't be here But for a lot of smart people it's really hard because they want to keep a lot with them Not everyone but a lot want to do that because they will if I have all the information I I keep my job because they need me right That probably works. That's probably is right Until that program is gone until that problem is gone And then they prefer to get rid of you as fast as possible because they know they will need you all the time. I Have worked with a team where we had such a hero that everybody is working there as an external I don't know between seven and ten years and they really tried to say you need to spread knowledge You never did it. I'm not saying he did it on purpose I think it's because of a lot of other circumstances, but that didn't help at some point We really give him the assignment now You need to start spreading your knowledge because we really have a dependency in you it still didn't happen We fire them because of that. I had business all over me They were like you're completely insane because he's the person who's solving all these problems at night But they didn't realize what because he was solving it that night. It wasn't really Thinking clear and it was creating part of the problems and indeed Two weeks after he left we had a problem in production at night It took twice as long to solve it after that we never had that problem again and like six minutes late I six six months later business came to me and really said we really want you to thank you We wanted to fire you because you took a very strong decision And and you had some bosses bag Making sure that you could do that and it was the right decision But it was a really hard call to do and it helped and what we saw in that team is that a knowledge spread much more After that ten people know the whole problem and that was much better What I've noticed is that the better you are at that The better actually people like you and keep you around for much longer because they know we all spread I had a person like a month ago leaving a team and so we we started with a meeting like okay What knowledge do you have that nobody else has that we need? Everything I know they know he just said for sure and he looked at each other and he said yeah, that's true And so he could leave just just like that because he was bored and for multiple other things But he wanted to leave and it was perfectly fine and it we saw that in the next two sprints They did some really complicated stuff and they did it without them and they were really proud like oh, we didn't need him at first they thought We can't tell him but actually it was really great thing of him because he spread that knowledge showed so hard And okay, that's not a interesting thing who was scared when I told you the Simon when we started that you should start and Start bearing every ten minutes having another different in a language. You didn't know Huh, so I saw a lot of people scared you might not some people might even be scared to tell them they're scared That's possible. I don't know your culture that well in Belgium that happens But a lot of people are scared when you do the exercise and and that's Not really on purpose, but it's an extra thing that I think a lot of times we are scared with juniors And we have no idea what the exercises and what language and with who will I do it? Okay, my computer Environment I do this also with students that's even worse because you have to ask students who like to pull tricks on each other on computers But it works. I got scared with my compilers. They could stop stop working as soon as they started But that and again these things happen in real life as well problem is now we have 10 minutes to solve it Like what you said, let's start my computer up because I have 10 minutes That's that's what you said That's that's a normal kind of reaction The goal was not to finish it. I understand you want to understand the book and you want to know how it's going For that what I can say is that these exercises? I'll put it on Twitter later There are completely written out in a booklet that you can download so you can replay it at your company There's some guidelines on how we did it. There is a story that's written out Just about how a typical pair programming session could work in Multiple different things if you have ideas to add to the book just tell us we can we can add other things a lot of So the larger exercises, for example came from a group at the conference as well because other people thought they might be good Yeah from everyone so I would call you now all programmers because you all program who would have called himself a Programmer before he came in a lot of them might might feel more tester or something else But that that's the thing. That's also what makes people scared. I'm not a programmer. Can I do this? What language will I know you can be both? You don't have to be just one exactly? Well, that's that's my goal This is it you can call your program. It's not just blocks. That is you just this or you just that That's you have been programming That's that's the definition of thing and You ended up with some tables you started they ended up with the starting pair Is there anything that you learned from that experience coming back? Did you interact in a different way? You became more comfortable to work with because you had already other people Okay, other things Okay, that's that's also really good and who did review the codes While starting with the exercise So you you swap pairs and then there is some code who started with reviewing the code This is a waterfall project they will review at the end so come back on Sunday but I found was Conflicts about the way of implementing Because the reviewer because it was halfway there. Yes, and then I thought of different way of doing it And that's something that happens also a lot with varying. They said when you join you have we I'll start for myself. I have the tendency to throw everything away because I want to do it my way But that doesn't help me entering a prayer programming session So it's much better to just first review and just learn from the code and learn from it and not change too much about layout About whatever things but it's it's a tendency. That's really hard that I have that a lot And so I try to suppress it to not do that too much But it's something that is that is what I'm talking about something like data structure that was used But even even there I agree that's even harder even there if people I assume that the people who work with me before have worked on it longer than me just looking at it for one minute and even if I'm really smart that There might be a reason for it It's interesting for them to start asking questions. Why is this and why is that not with pointing? This is wrong, but more like Will you explain to me because I don't understand it yet? That's that's the kind of questions to just understand why is that data structure and indeed? Yes, there will be moments that the data structure is wrong and you have a better solution And but if you have to throw all the way to code and have to restart all over them We lost a lot of time One of them is more skilled than the other one They can learn one can learn a lot from the pair When I started in the first point I was not having any knowledge of Java So my pair helped me learn that quite fast. There is a lot of questions in the community What is the ideal pair and people have the tendency to take what you say and I agree if you're a junior you will learn a lot from a senior and Seniors so there's multiple discussions a lot of seniors working together. They can pair also a lot And what is really hard is what I would call mid-level people. You're not senior yet So you're you're kind of okay, but your ego thinks you're a senior if you put two of these people together you have war So that's and if you if you feel if you feel that you have a kind of war Think about your ego. That's the kind of advice I would give you Because it probably thinks that you're better than the other person and it doesn't help you Even if that's true what I see with senior people and what I mean with senior people is that you also understand? I have a very big ego. I'm on stage here talking about it So of course I have a big ego and but if I understand that what my ego is I can understand that and I can try to let go of it and Ask these questions and learn because that's remark. I completely forgot about talking about that part And it's really important. So what I see junior junior. No problem senior senior. No problem Middle-level junior it still works Middle-level senior works also because we know that the other one is better than us But it's at the moment that we don't that it's not really clear and our ego thinks that we're the better and the other person Thinks the same thing. That's its problem Okay, I'll do a very dangerous Shout-out, it's usually mad It's not always so they don't hear me say that women never do that, but it's usually mad Maybe that's because of max masculine environment that we're in but I see that a lot and but we can learn a lot Also from seniors and then the most interesting experience that the very first time we did this it was in a school And it was like I said there was People from the first year the second year and the third year so they did about the first ones about four to six weeks of programming and then just the professors joined in and The first person who spoke in the feedback session was the head of the department So that let's call it the smartest professor and he said I worked with a lot of students And I learned from each of them and sometimes it was just a shortcut or something else But he said even these and he said a few names these two people. I know you've been programming just for a few weeks I've learned something So that's if he at the level that he's in doing that for 20 years being the head of the professor I assume that he's just one of the smartest people about programming learning a lot They were all working in the same language at that level and that first workshop and but even there he learns And it's the language that he was teaching That kind of thing so you don't underestimate what's what is what I would call the power of the junior as a junior You can ask a lot of questions that seniors and teams are sometimes afraid to ask Because we know that we should know it already And I literally see that I'm a as a consultant I might be I might be new to a company So I consider myself a junior to that Environment so ask sometimes a lot of stupid questions and I can just see people in room Finally somebody dares to ask this question. I Had it once I'll shut up after that I had it once that we had a very large discussion people were almost fighting nothing with bearing with in a meeting I had the idea was something not clear about a question So I asked could someone of you explain to me what this word means and one of the two people who was fighting was saying This means that the other looks at them. If that's your definition. I agree with you And the word we're talking about is product So product for one person it means the product we're selling and that was everything and the other one is a product Just a software So it's such a similar product at such a similar word But if you don't know but of course we talk about product all the time. I have that definition So I know very sure what I'm talking about and all of a sudden the other person Yes, I know we know so all of a sudden the other person Didn't know and they were all in the fight and me really at the second meeting at companies a very stupid question Sorry, I knew what is your product? I have no idea what it is and I cleared up a fight. I had been going on So, thank you very much, I'll tweet the book link. I hope you'll you'll try it out spread it use it Thank you very much