 First of all a little bit of us Okay, just to say that we are not developers. We are organizing We are organizers in 5CN, but not really Python developers. I'm instrumentation engineer in Fesic in Spanish-Rosier Council. I'm working in marine technology But I use Python in everywhere I can. Hi, I am Ignacy. I am an infrastructure engineer. I am working at DevEx.com Media site about NGO and international development. I'm coming more from the system administration part of the thing. I like to write programs since I was a kid, so I'm kind of a wannabe developer. Not very good. A little bit worse than a system administrator, but trying to balance both. By the way, if you ever come to visit Barcelona or something and you can check in www.pibcn.org about our activities or meetups or dojos or whatever. So if you are around you can feel free to come and give a salute. So we're going to give a very introductory talk on what we have been doing for the last nine months, one year because we started with doing some dojos. Is there anyone who knows what a cutting dojo is right now? Well, quite a few. We will start with a brief story of five Barcelona dojos, how we started doing them, what we have been doing a little bit. Then we will give a small introduction to what a cutting dojo is and what related concepts are with it. We will do a small recap on the sessions we're on, just choosing some of them. Not all, because it could be quite long. Then we will take a look back on to see what things we learned doing dojos, about what you need to prepare, what things you need to be aware of. Then we will be talking about the dojos sessions we are going to be running at the Euro-Python this year. We will give a very small set of ideas to start with your community. Actually, it's a pair of points. The five Barcelona dojos were not related to the five Barcelona group before. We started with a small group of system administrators, people who were interested in learning some programming stuff. Then we decided to start using Python, because it looked like a very low-variant level language, easy to learn and to start working with. The big problem we had is that we did very frequent sessions. We barely did one every two months. After having these sessions, or during having these sessions in another conference, we were commenting with some Pivas and other members about what we were doing. They were quite interested in setting up these sessions for the whole Python Barcelona community. With them, we started running these sessions monthly, determining the dates every three months, and having different kinds of sessions. We felt that there were a lot of different skill levels among the people that were kind of interested in having them. So we are going to talk about what has passed for the last nine months. For those who don't know, coding does this as the Hanson session. The first very important target or goal of these sessions is to have fun with code colleagues and people with similar interests. The second is learn from others, because usually it comes that there is someone attending that says, yeah, I'm very new by it. I don't know anything where I barely use Python, but there are also other people that master some subjects on Python, or even on just the kind of audience we are proposing. And for the people who know more about Python or master some subjects, it's to share the individual knowledge. We get that because we try to use several techniques that I'm going to explain later. Also, we use coding dojos to practice new technical tools which we don't use to do them in our daily jobs. For example, testing or writing tests or doing TDD or such. Then the related concepts. More important to be aware of when you are attending or organizing a dojo are those of here. The first one is the Cata. Cata is the trivial exercise. We are going to stay for the session to complete. It's trivial because it's usually not very difficult. And it's trivial because it doesn't matter if we come to a solution. We're not trying to cure cancer or to find anything big. And it doesn't matter if individually or within the team we form off, we find a solution. What we are trying is to learn from what others are doing within the team or with other teams. Usually we use paper arming also because this is a very good technique. Especially when you use paper arming with TDD, for example, it can be kind of fun. Also, we do interactive development. So when we prepare the Cata, we tend to have some preparation before in order to have the steps, the iterations we are going to have. So we can guide people attending. These iterations are done within a time box test structure. We use the Pomodoro Technique, which is just having 25 to 45 minutes to have every iteration. We tend to change the times and it's kind of chaotic sometimes, but it's important to try to enforce these techniques. Also, we put a very strong emphasis into differentiating testing versus TDD. This doesn't mean that we need to write tests for everything. This doesn't mean that we use TDD in all the sessions. There are some sessions where we enforce much more TDD. There are some sessions where we only want to see some tests to check that everything works, and even we have some sessions that we are not even looking at the tests in case they are. Also, on each session, after all the iterations, we have... Well, it should be small. Usually it is not. Retrospective session with all the attendants. So people can explain what they like, what they don't like, what they learn, and what they are taking off from the session. So we can learn what we are doing good, what we are doing bad and we need to improve, or what we should be taking care of. Sometimes it's very stupid. Sometimes it's just a format, the air conditioner of the room, or the quality of the projector, or something like that. But sometimes people explain, yeah, this kind of problem was very nice, but we hadn't an statement before, or we hadn't a statement to check when we were coding. Things like that can be helpful to improve the sessions. So this is a small recap on three of the most cool or interesting sessions we had. Some months ago, we had the Pytest versus Unit Test session. It was intended to be a hands-on on Pytest, with comparing with the Unit Test version on the same cat, very simple and small. One of the big problems we had with Pytest on versus Unit Test session, it was that we didn't have so much knowledge of Pytest. We just had the very introductory knowledge. So it was very hard to answer certain doubts that people get. We were trying to, when we did that session, we were trying to provide something more interesting for people with some experience that are not so interested in starting with TDD, but learning about what they can get from using other tools. And this was one of the problems we had there. In the Syriq and Python session, which was based on a Peter Hinge workshop at EuroPython 2014 last year, it was quite interesting. We had, I think, 18 people attending. It was quite stress, but it was very, very nice. The feedback was very good. So we are quite happy. Maybe we should have some more time to learn more about Siren QE4. We used to be kind of the procrastinating people. And, well, the feedback was very good. We had a lot of people working with engineering, with infrastructure engineering, also, and so on. And, yeah, sorry. Then we had another session with Mocking which introduced the session of the mock library, which it's not re-included, but it's very useful to find out, to fake things happening around our code in the architecture. This session was kind of bad, at least, because we hadn't been very prepared. This was one of the first new kind of sessions we had. We went with a supposed cata that we invented, which we haven't tried. This is one of the very first things you need to do if you want to organize those sessions. Okay, and a little bit of a resume about what we have learned doing this, because in these sessions we also learn about people who come from that. One, the first seems very elementary, but you have to practice your cata before to do other people. And usually we find, we try to think what could be the different solution that people we are going to find just to guide the session to be fun and to be fast and not to be worried by the people here. You have, obviously, if you guide the session, you have to have a specific knowledge, but you don't have to be a master. You only have to have a main idea, and usually people who come to our dojos when we guide, usually the solution that they show is that they are almost better than us or have some points that we, all the people in the session learn something. Then, okay, if you introduce a new library, probably you have to take care to show the basics of this library. You have to take time to, all the people start with the same knowledge. And to guide the session is really important to have learning skills, okay, to learn teaching skills and these kind of things. I think it's the most important to feel that, to feel, to make feel comfortable all the people in the room. Yeah, and then that it's useful. Okay, and then it's open to other programs that come from other languages, but we try to focus on Pythagonic solutions, of course. Okay, and a little bit about the session we are going to do in EuroPython. Okay, on fly sensations, we are going to focus, to explain a little bit baby steps and how it works. And, yeah, practice per programming. I don't know if you ever program it in pairs, but I think it's quite fun, not just to be three hours alone programming. Programming alone, okay, sorry. And it's just, it's just a game, but programming usually a pair program the test and the other program the program, the code to solve and then change the roles. I think it's, you learn how to do the test, how to program. And one of the important parts is, yeah, if you have a Mac and a PC who manage this session, which editor, which, and sometimes you learn new things sharing with your partner, even more than in the group. Okay, on the Saturday session it's going to be a little bit complex, but okay, these two sessions are related to the typical algorithmic problems, which are going to be classical algorithmic problems, okay, just to practice TDD. Okay, Friday is more for Q's and TDD. Saturday is just texting. And in a more complex scatter, probably you are going to, if you come, you are going to practice some refactoring about the problem, okay. The seats are really, really limited because we, our sessions in Barcelona are in a small group, and we will. We won't want to be very personal in every group, know what it's doing, and we think that 20, 25 people in the room it's how to manage, okay. Then come soon, we are going to publish in Twitter or, I don't know, in that way. We are going to make it even brighter. You are going to sing it up. Okay, I think you are going to sing it up and I want to see you in these sessions. Okay, a little bit about. And if you are interested in piping dojos, I think it's a good way to spice your community. I'm a piping organizer, and since two years ago, about, and I feel that, okay, you organized meetups and conference, but it's a little bit cold, okay. People come, people sit here and go away. I think it's, with piping dojos, we have a community that you know what is developing, what it's like a family now. We do piping dinners and these kind of things. I think it's a relationship more, okay, it's more warm. Okay, I think if you are interested, if you want to ask how to start piping dojos in your community or if you want some examples or some experience, if you want to share some experience with us, we are here all the week. And we recommend to read this book about piping dojos handbook, my Emily Wange, and of course, you can contact us with using Twitter and in person here these days. Any question? Yeah. How about the catas? Yeah. How about the catas? Yeah. Did you prepare it in advance? Yeah. Or do you just go and you ask people what they want to do? Yeah, we know a lot about people who usually come. People repeat. That's an important point. Well, yeah, we ask people, new libraries, if you want to try new libraries, we try different formats. Yeah, it depends on the people. For this reason, we think that the feedback that we get at the sessions are really, really important for us just to know that it's interesting or not or what to change in the next session. How about the cata preparation? It also depends how much time do you need because sometimes you can have a very complex cata and then you need like more than a week to prepare it. That doesn't mean that you need to be careful because if you prepare the cata during one week, you can easily have a cata as long as at the time you have for running the session. But if it's simple, you can have it easily in 23 one hour. I've got lures, actually. I organized the London Python code. Okay, I know. We asked, actually, we talked with someone, we talked with Rashid about that. Yes. And then we were consulting what you were doing because you were not doing so much today, right? Yeah, I think we're doing quite differently, actually. How does yours work? You have only two persons at the front and everyone is looking? No. We have been thinking about trying out different kinds of sessions for the dojos. This is one of the ones we have been considering, but we never did one of those. Okay. What we need is to start with pairing people and commenting the cata, explaining what the details that the cat can have for what complex and things. And then with the people working in pairs, start working with that. If the cata is simple enough to run the session, you can do that. If the cata is simple enough to run just one iteration, then we try to enforce people to switch the team so they can share with more people in the same session. If the cata is more complex, then we just stand with that and go on with programming complex integration. Yeah, and usually, then we, well, we aim the people to share the code and explain the control. Yeah. How it works. Okay. Now how many iterations are you doing roughly? Three, four. In the rest of the cases. Why? Like she said before, there's always someone attending that masters much more than you. So we had, for example, one guy with one cata, the guy just solved the first iteration, the second iteration, and the third iteration using the first one. So, yeah, you're going to have to have this kind of... You always have to think more stuff, more than the time you have because of the people who is coming. Yeah. Not to people who try to enjoy all the people. We also started doing something by the end of the year. It was... We prepare the sessions every three months, every quarter. So we use... We do a very simple cata in the first month. In the second month, we do a more complex cata with less TDD or less test focused. And then we have a third session with, for example, a certain queue. With a specific library, yeah. Can I ask more questions? Sure, but the last one. Okay. How many of you are coming every dojo? Well, it has been... Depending also on the lack of STDs and so on, it's very important, especially if the Barça football team is having a match. We have to... We choose the dates in advance. Yeah. Really three months in advance and sometimes we don't know. But we used to be like 10, 15 people. Okay. And do you provide beer and pizza or something like this? Well, we had some kind of things. Yeah, cookies. Yeah. We used to... Sometimes I cook pizza and those kind of things. Yeah. But we're planning to talk with some local brewery to get beer or something. And we're paying for... We're paying for the cookies and the beers and the location. Yeah. We are within the pirates on our hook, so everything comes together. Okay. And is it free to attend? Yes. Yes. Well, we have only the... We are publishing the heaven ride with 25 seats. Yes. Much more people could be kind of difficult to manage. Meaning... Thank you very much. I mean... Yeah. Talk later. Okay. Right now there will be a coffee break and we'll start at quarter to five sharp. And don't forget that you can read this talk at the guidebook, sorry. And that's it. That's it. See you after the break. Thank you for coming. Thank you.