Make XMPP Sprint Again
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Buquet, Maxime
This talk will be about how I approached problems organizing sprints, what issues I faced and how I solved them. This summer, on August 18-19th, was held the first developer event in the XMPP community for a long time. The idea came up at the Gulaschprogrammiernacht, in Karlsruhe earlier this year. I set a goal for myself to start a movement in the community, gather interested people, and work together to improve the ecosystem. I'm going to talk about how I approached the organizational problems, what issues I faced and how I solved them.
 I'm going to try to speak louder. It's my first talk. You'll see me crash at some point. I'll just have to reboot then. So make XMPP sprint again. It started with an idea that a few people in the XMPP community had, because I felt, and other people also felt that we weren't enough visible, that what was done in the open community wasn't enough visible. And so after discussing that with, I guess actually, I have. Yes, I forgot that. I'll start here. I might know my name, Pep, on the XMPP channels, almost all of him. I work at Collabra, free software consultancy. And I'm active in the XMPP community as a developer, mostly client-side development, and server operator, and also do support in a few chat rooms for different projects. Yeah, why? So as I was saying, the idea started because a few people thought we weren't visible enough in the public community, and there was quite a lot to improve in every implementation or even protocol still. So we decided to gather together and organize. The first event for me at least was in Karlsruhe in Germany at GPN. And I was there with JC Brand, the author of Converse.js, and Daniel, I don't know how to pronounce his name, the author of Conversation. And we worked on Omimo at the time, the end-to-end encryption mechanism. And from there, we discussed with JC that he had similar kind of events in the Plon community, the Python Plon community. And so I wanted to organize similar events. So that's where it started. And so why, to improve the ecosystem in general, but also it was my first event where I got to meet XMPFU. So that was a good opportunity to meet more members of the community. And in general, it's quite useful to get people who know what they're talking about, so you can also implement it in your client or server implementation. So transmission of knowledge, and for me, the best, what I get out of this is motivation. So it's really focused on two, three days, and I can do what I do in six months' time, usually. So this talk is mostly about how for you to organize your own sprints and how for these events to become, so I don't have to push you to do it then. So what do you want in a sprint? You want to be able, you want to define what you're going to do. So what is a sprint for? Choose a topic or maybe a few multiple topics, depending on the number of people you have. So the first sprint we had in Cambridge, there was a few disparate topics, but it was quite focused still. They were, we decided to work on in-band registration, so for easier onboarding. Or there were also a few people working on bookmark conversions, so from bookmark has been a fun story in the XMPFU community. So we decided to fix a few things, a few useful things I think. And then for whom, our sprint in general are really contributor focused, so we invite anybody who would like to contribute to the ecosystem in general. So mostly developers, but also translators or people willing to work on documentation or UX in general, user experience and also give us feedback on the implementations. So you're going to have to decide dates. We generally start thinking, so people, I know, people give the idea that they might want to do a sprint at some point somewhere, and then what usually happens is that it pushes them a bit to start organizing. And we make a poll, ask around for any interested people. And so we decide dates, usually one, two months before, not too long before and not too close to the date itself, so people can organize themselves for transportation and accommodation. It's usually organized during the weekend because, well, people might have to take holidays to get to the place, and yeah, they might prefer not to do that in the middle of the week. And putting these events closer to bigger events like FOSDEM, like we had one on Wednesday, I say Wednesday because Thursday and Friday were the XMPP Summit, so it was all packed together, might attract more people, so they just have to take holidays for that event, a big event. The venue, I feel the venue is the hardest thing to get, depending on, for my case, it was actually quite easy. I just had to ask a collaborator to sponsor the venue for the first event in Cambridge, in the UK. So I could use the office, they also sponsored food, but for others who don't have the opportunity, you could ask for any association around you. I know the last print in Brussels was in some association, I don't know the name of, and the one before in Düsseldorf was in Kelsdorf, one of the CCC local branch, so Hacker spaces, or you could even do it at someone's place, or BNB's, or I don't know, squats, or whatever you can find this place. It doesn't have to be, I mean, it can just be a place to hang around, it doesn't have to be official anything. I can help, I can ask people if ever you have an interest in organizing one, and we can help you find sponsors or anything. Accommodation transportation is, this might be the hardest bit for people coming to your event, it's going to be more costly. Not everybody can come and that's fine. Don't force people to come to your event if it's a bit too far. It might even be more expensive for people closer to you to come than people at the other end of the world because Ryanair or... So it's fine if not everybody can come. Few possible solutions for that is organizing more sprints in different places, so around the same theme maybe or not, depending on the interests. I wrote video conferencing for the first print in Cambridge, JC from Converse.js wanted to come but he couldn't and at the last minute we decided to have something video conference so it was there and we would communicate through that whenever we had questions or stuff like that. He also did a nice presentation on the client implementation and some details. It's not the same experience for the people participants but it might be useful sometimes. And the activity is what we actually do. Not everybody knows the whole community so introductions are useful. Then we have some kind of collaborative paths so we use the ESA paths or whatever you fancy to document what's happening in the event or even before the event what people want to talk about, where, when and any useful detail, what... If you have any recommendation as the organizer, if you have any recommendation for accommodations they could use or anything you can think of, mostly agenda and what you're planning to do after during the event. So then defining the agenda, we do that generally on the first morning. When we arrive at the place, we spend about an hour talking about what we're here for and really defining what we're going to do and who is interested in what topic. So we lay out the topics and we count the number of people interested and we form maybe small groups or maybe there are topics that are worth taking time at the beginning altogether. The agenda, it's also useful, it might be useful if not everybody knows what is going to happen in the sprint to define the agenda beforehand so they can come and having researched a bit and not lose time doing the sprint. Then we have the fun part, the hacking and discussions. So that's a big chunk of the weekend mostly. And food and drinks is usually done on the spot, it's not a regular hour. We will go whenever we're hungry or a small group will go to a supermarket to bring back stuff and often it happens on the place, we eat on the place or at night we decide to go out and go for dinner and rest on somewhere. And the last point is that's one of the most important things I think. Do a retrospective on what you've worked on, how it went and what's left, what's the progress. It helps you to know where you are, it helps the others that might not have been working with you and it helps the community in general to know what happened and how they can help you maybe. Then writing about it is also a pretty important point. Once you have all the data you've put in that pad, you can write about it. It helps, it will help promote the event and the technology in general or promote your project maybe or some projects. Thanks to sponsors if you had any and encourage future events and encourage people organizing more events of this type. And I think that's about it. That's some links for what we've done. And so the first one was at GPM in Karsgård. It wasn't technically at that spot, it wasn't really called a sprint yet but it was the idea. And then the one in Cambridge and the one in Düsseldorf and there's probably more blog articles coming, the one in Brussels just this week. I guess we'll do that soon and that's about it. Any questions? Thanks for your talk. What do you think is a good frequency for a sprint like this? How often, how far are they apart and was it like too soon or too long? It will depend. For the moment I don't think doing them too often is a good idea because we don't yet have the resources to do them too often. We might be missing people. I would like, ideally I would like to have one sprint every six months close to you. Maybe more if we managed to do that but that would be a good goal I think already. The bridge is made with other protocols in order to, and made by default, the XMPP protocol in some products also to sponsor even if they aren't ready developments. Do you communicate a lot with other promoters of all the protocols? Not at the moment but it could be an idea. Yeah, sure. All right, going once, going twice.
 I'm going to try to speak louder.  It's my first talk.  You'll see me crash at some point.  I'll just have to reboot then.  So make XMPP sprint again.  It started with an idea that a few people in the XMPP community had, because I felt,  and other people also felt that we weren't enough visible, that what was done in the  open community wasn't enough visible.  And so after discussing that with, I guess actually, I have.  Yes, I forgot that.  I'll start here.  I might know my name, Pep, on the XMPP channels, almost all of him.  I work at Collabra, free software consultancy.  And I'm active in the XMPP community as a developer, mostly client-side development,  and server operator, and also do support in a few chat rooms for different projects.  Yeah, why?  So as I was saying, the idea started because a few people thought we weren't visible enough  in the public community, and there was quite a lot to improve in every implementation or  even protocol still.  So we decided to gather together and organize.  The first event for me at least was in Karlsruhe in Germany at GPN.  And I was there with JC Brand, the author of Converse.js, and Daniel, I don't know  how to pronounce his name, the author of Conversation.  And we worked on Omimo at the time, the end-to-end encryption mechanism.  And from there, we discussed with JC that he had similar kind of events in the Plon  community, the Python Plon community.  And so I wanted to organize similar events.  So that's where it started.  And so why, to improve the ecosystem in general, but also it was my first event where I got  to meet XMPFU.  So that was a good opportunity to meet more members of the community.  And in general, it's quite useful to get people who know what they're talking about,  so you can also implement it in your client or server implementation.  So transmission of knowledge, and for me, the best, what I get out of this is motivation.  So it's really focused on two, three days, and I can do what I do in six months' time,  usually.  So this talk is mostly about how for you to organize your own sprints and how for these  events to become, so I don't have to push you to do it then.  So what do you want in a sprint?  You want to be able, you want to define what you're going to do.  So what is a sprint for?  Choose a topic or maybe a few multiple topics, depending on the number of people you have.  So the first sprint we had in Cambridge, there was a few disparate topics, but it was quite  focused still.  They were, we decided to work on in-band registration, so for easier onboarding.  Or there were also a few people working on bookmark conversions, so from bookmark has  been a fun story in the XMPFU community.  So we decided to fix a few things, a few useful things I think.  And then for whom, our sprint in general are really contributor focused, so we invite anybody  who would like to contribute to the ecosystem in general.  So mostly developers, but also translators or people willing to work on documentation  or UX in general, user experience and also give us feedback on the implementations.  So you're going to have to decide dates.  We generally start thinking, so people, I know, people give the idea that they might  want to do a sprint at some point somewhere, and then what usually happens is that it pushes  them a bit to start organizing.  And we make a poll, ask around for any interested people.  And so we decide dates, usually one, two months before, not too long before and not too close  to the date itself, so people can organize themselves for transportation and accommodation.  It's usually organized during the weekend because, well, people might have to take holidays  to get to the place, and yeah, they might prefer not to do that in the middle of the  week.  And putting these events closer to bigger events like FOSDEM, like we had one on Wednesday,  I say Wednesday because Thursday and Friday were the XMPP Summit, so it was all packed  together, might attract more people, so they just have to take holidays for that event,  a big event.  The venue, I feel the venue is the hardest thing to get, depending on, for my case, it  was actually quite easy.  I just had to ask a collaborator to sponsor the venue for the first event in Cambridge,  in the UK.  So I could use the office, they also sponsored food, but for others who don't have the opportunity,  you could ask for any association around you.  I know the last print in Brussels was in some association, I don't know the name of, and  the one before in Düsseldorf was in Kelsdorf, one of the CCC local branch, so Hacker spaces,  or you could even do it at someone's place, or BNB's, or I don't know, squats, or whatever  you can find this place.  It doesn't have to be, I mean, it can just be a place to hang around, it doesn't have  to be official anything.  I can help, I can ask people if ever you have an interest in organizing one, and we can help  you find sponsors or anything.  Accommodation transportation is, this might be the hardest bit for people coming to your  event, it's going to be more costly.  Not everybody can come and that's fine.  Don't force people to come to your event if it's a bit too far.  It might even be more expensive for people closer to you to come than people at the other  end of the world because Ryanair or...  So it's fine if not everybody can come.  Few possible solutions for that is organizing more sprints in different places, so around  the same theme maybe or not, depending on the interests.  I wrote video conferencing for the first print in Cambridge, JC from Converse.js wanted to  come but he couldn't and at the last minute we decided to have something video conference  so it was there and we would communicate through that whenever we had questions or stuff like  that.  He also did a nice presentation on the client implementation and some details.  It's not the same experience for the people participants but it might be useful sometimes.  And the activity is what we actually do.  Not everybody knows the whole community so introductions are useful.  Then we have some kind of collaborative paths so we use the ESA paths or whatever you fancy  to document what's happening in the event or even before the event what people want  to talk about, where, when and any useful detail, what...  If you have any recommendation as the organizer, if you have any recommendation for accommodations  they could use or anything you can think of, mostly agenda and what you're planning to  do after during the event.  So then defining the agenda, we do that generally on the first morning.  When we arrive at the place, we spend about an hour talking about what we're here for  and really defining what we're going to do and who is interested in what topic.  So we lay out the topics and we count the number of people interested and we form maybe  small groups or maybe there are topics that are worth taking time at the beginning altogether.  The agenda, it's also useful, it might be useful if not everybody knows what is going  to happen in the sprint to define the agenda beforehand so they can come and having researched  a bit and not lose time doing the sprint.  Then we have the fun part, the hacking and discussions.  So that's a big chunk of the weekend mostly.  And food and drinks is usually done on the spot, it's not a regular hour.  We will go whenever we're hungry or a small group will go to a supermarket to bring back  stuff and often it happens on the place, we eat on the place or at night we decide to  go out and go for dinner and rest on somewhere.  And the last point is that's one of the most important things I think.  Do a retrospective on what you've worked on, how it went and what's left, what's the progress.  It helps you to know where you are, it helps the others that might not have been working  with you and it helps the community in general to know what happened and how they can help  you maybe.  Then writing about it is also a pretty important point.  Once you have all the data you've put in that pad, you can write about it.  It helps, it will help promote the event and the technology in general or promote your  project maybe or some projects.  Thanks to sponsors if you had any and encourage future events and encourage people organizing  more events of this type.  And I think that's about it.  That's some links for what we've done.  And so the first one was at GPM in Karsgård.  It wasn't technically at that spot, it wasn't really called a sprint yet but it was the  idea.  And then the one in Cambridge and the one in Düsseldorf and there's probably more blog  articles coming, the one in Brussels just this week.  I guess we'll do that soon and that's about it.  Any questions?  Thanks for your talk.  What do you think is a good frequency for a sprint like this?  How often, how far are they apart and was it like too soon or too long?  It will depend.  For the moment I don't think doing them too often is a good idea because we don't yet  have the resources to do them too often.  We might be missing people.  I would like, ideally I would like to have one sprint every six months close to you.  Maybe more if we managed to do that but that would be a good goal I think already.  The bridge is made with other protocols in order to, and made by default, the XMPP protocol  in some products also to sponsor even if they aren't ready developments.  Do you communicate a lot with other promoters of all the protocols?  Not at the moment but it could be an idea.  Yeah, sure.  All right, going once, going twice.
Make_XMPP_Sprint_Again_egJ21xpU07E_0_47.png Make_XMPP_Sprint_Again_egJ21xpU07E_48_95.png Make_XMPP_Sprint_Again_egJ21xpU07E_96_143.png Make_XMPP_Sprint_Again_egJ21xpU07E_144_191.png Make_XMPP_Sprint_Again_egJ21xpU07E_192_299.png Make_XMPP_Sprint_Again_egJ21xpU07E_300_347.png Make_XMPP_Sprint_Again_egJ21xpU07E_348_1463.png Make_XMPP_Sprint_Again_egJ21xpU07E_1464_1631.png Make_XMPP_Sprint_Again_egJ21xpU07E_1632_2387.png Make_XMPP_Sprint_Again_egJ21xpU07E_2388_3959.png Make_XMPP_Sprint_Again_egJ21xpU07E_3960_5711.png Make_XMPP_Sprint_Again_egJ21xpU07E_5712_8387.png Make_XMPP_Sprint_Again_egJ21xpU07E_8388_10439.png Make_XMPP_Sprint_Again_egJ21xpU07E_10440_12839.png Make_XMPP_Sprint_Again_egJ21xpU07E_12840_15023.png Make_XMPP_Sprint_Again_egJ21xpU07E_15024_19583.png Make_XMPP_Sprint_Again_egJ21xpU07E_19584_20567.png Make_XMPP_Sprint_Again_egJ21xpU07E_20568_21311.png Make_XMPP_Sprint_Again_egJ21xpU07E_21312_24059.png Make_XMPP_Sprint_Again_egJ21xpU07E_24060_24189.png