We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Building Open Source Teams

00:00

Formal Metadata

Title
Building Open Source Teams
Title of Series
Number of Parts
542
Author
Contributors
License
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.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
This presentation highlights the challenges of motivating and managing an open source team of volunteers. Topics include motivation, communication, and project management. This talk is useful for anyone active in open source.
BuildingOpen sourcePresentation of a groupTelecommunicationData managementInternetworkingCore dumpProcess (computing)Computer fontSoftwareComputer programmingContent (media)Archaeological field surveyFormal languageTime zoneRoundness (object)Open sourceNeuroinformatikLevel (video gaming)Multiplication signDistanceCylinder (geometry)Projective planeSpectrum (functional analysis)Formal languageSoftware developerContext awarenessRelational databaseComputer programmingQuicksortTime zoneFitness functionData managementEmailSpeech synthesisTelecommunicationTerm (mathematics)Slide ruleBuildingReal numberDifferent (Kate Ryan album)MereologyFocus (optics)SoftwareProcess (computing)Metropolitan area networkGreatest elementEvent horizonBitWindowObservational studyFreewareMathematicsCore dumpScaling (geometry)DiagramComputer animation
Time zoneFormal languageTelecommunicationOpen sourceData managementInstant MessagingLocal GroupWikiEmailDistanceFormal languageMultiplication signGoodness of fitSlide ruleSoftwareMereologyRight angleElectronic mailing listEmailQuicksortGroup actionFocus (optics)Process (computing)TelecommunicationCausalityWebsitePatch (Unix)Game controllerData managementTerm (mathematics)Online chatOpen sourceStatisticsSequelArithmetic meanWater vaporPlane (geometry)Type theoryMathematicsStorage area networkPoint (geometry)BitDifferent (Kate Ryan album)Event horizonComputer animation
DistanceCellular automatonTime zoneBuildingTelecommunicationElectronic mailing listEmailFormal languageCodeProcess (computing)Position operatorMultiplication signCASE <Informatik>Electronic mailing listFeedbackHill differential equationGame controllerProjective planeRight angleBoundary value problemSoftware developerData miningEmailNP-hardWordFormal languagePoint (geometry)Real numberInformationDifferent (Kate Ryan album)Figurate numberMereologyFamilyGreatest elementException handlingTerm (mathematics)MultiplicationCore dumpType theoryTranslation (relic)Time zoneComputer animation
EmailMereologySelf-organizationConfidence intervalNatural numberSystem callComputer animation
Program flowchart
Transcript: English(auto-generated)
Can we get a round of applause for Bruce, please? Hello, everybody. My name is Bruce Mamjian. I am from Philadelphia. I am one of the Postgres core team members, and I'm going to talk for the next 30 minutes
about some of the nuts and bolts of building open source teams. I know the previous talk was more of a a little more high level. This is definitely trench-level activity here because that's what I've done for a long time. I'm basically a co-founder
of the Postgres Internet Development Group. We have a dev room downstairs. We had a big conference on Friday at a local hotel. We have a whole bunch of events coming up. Paris, Stockholm, Malta. We got one in Chicago. We're going to be at scale in a couple weeks.
And we have Ottawa and hopefully one in Singapore coming up. So a whole bunch of stuff going on. I travel a lot. I've been a core team member since the community started in 96, and I've worked for three open source companies. So I've been around the block, and I have some sort of insights into how we've built Postgres
and some of the things that work for us. So what I want to talk about first is motivation. This is something a lot of people don't talk about. We kind of take it for granted that people are going to come to us. But why do they come to us? Why do they want to be involved in open source? What interests them?
Why are they even giving their time to us? It's kind of a trench question. Talk a little bit about open source management and how we manage the open source project, and then I'll talk a little bit about the development process. So open source motivations. This is actually from a study done in 2002
published in the Register. URL here right at the bottom. By the way, these slides are actually on my website, so if you want to go here, feel free to get the slides and do whatever you want with them. So what they basically did a survey, and they found that the major motivations for people
getting involved with open source were professional advancement, learning new skills. That's probably what got me involved learning new skills. Practical need for the software. Maybe they have a business need for the software to be enhanced. There's a lot of people in the Postgres community like that. Or their business wants the software
to thrive. Now that's my employer, EDB, wants Postgres to thrive so they pay me to kind of do my crazy thing. Mental stimulation is actually a valid reason to get involved. That was actually one of my also reasons for getting involved. I was always curious how a relational database worked, and Postgres
was open source so I could actually see it work. It was exciting to me. And finally, the belief in open source. The belief that open source is a good and therefore I want to invest in that. So these are kind of the four big ones. I'll tell you the
real thing that nobody talks about is if you go up to somebody who works in open source you say, which one of these are you? They may not even know. They may not even know. And the weird part of it is that they all kind of work together. Yeah, I love the mental stimulation aspect and I actually kind of have a need for
and I'm learning new skills and that might help me in my career and the open source stuff is cool and I like helping people. And you're like, well which one is it? Well, it's kind of all of them kind of mushed together and I may be able to give you percentages a little bit, but that's part of the beauty of it. Usually you know, if I say somebody
go dig a ditch, they're going to say okay, how much are you going to give me for digging the ditch? They kind of know what's motivating them because they just don't want to dig a ditch. But for open source software it's like multiple motivations all kind of working together and flowing together and healthy open source projects
are able to have all of those aspects working at the same time. And if you focus on just one of them which I know some projects do you're really not taking advantage of the full spectrum of ways of attracting developers.
I know this is kind of I hope I never heard everybody talk of it before but when you see it in writing you're like yeah, I guess that does kind of make sense because that's kind of how I got involved and that's what motivates me. So there's all this kind of stuff that doesn't really make sense but actually it actually does.
I mentioned mental stimulation. Program is one of those unusual activities that does not require any upfront money. As long as you have a computer you can do as much programming as you want. You're not paying per hour or paying per piece or
paying for wire or paying for fabrication of some kind of equipment. It's basically a malleable and a cost free medium that you can continue changing. And that cost free aspect actually helps people get involved. With Postgres particularly it's kind of a puzzle to solve some
of the problems we have to do. So some people like how many people like puzzles, right? I mean it's kind of fun, right? Postgres has a ton of puzzles that are really hard and a whole bunch of people would love to work together to solve them. That's one of the things that attracts people, right? It kind of makes sense. They wouldn't say it this way
but when you look at the people and they look at the way they talk and you kind of look and you kind of like squint your eye a little bit and you're like yeah that's really what's kind of you know and the other parts as well because they have a good paying job and they like helping people and they like open source and they and it's helping their business and there's a whole bunch of things all going at the same time. They enjoy learning.
There's just a whole bunch of stuff and actually this comes out of a book from I think the 70s, the mythical man month, right? So you know we're going way way back here in terms of in terms of understanding why programming is interesting. But we're kind of I feel as open source people and of course the Postgres person
we're kind of there's a term in English you know you're running on all cylinders. All of your you have an engine and all of the cylinders are working in the same way in a uniform fashion for the same purpose. And that's kind of what we have here and that's kind of what we have here.
So what I'm saying is that to build open source projects you're not going to open with these things but be aware that these are aspects and aspects that you're going to attract different people who have different focuses and different things that motivate them. Let's talk a little bit about management. Obviously managing
an open source project is incredibly complicated. Having done it for so long and having done it really when open source was much smaller obviously communication is a key aspect. The ability to send free at that email we didn't have chat back then really
but the ability to send communication freely across the globe and harness the capabilities of people who are very far away from me is incredibly important. But you're all going to have issues with just being able to communicate potentially with email. You may not meet the people that you're
working with. You have travel distance challenges. You have time zone distance challenges. When I was working on the port of Postgres to Windows I would I had one person in Stockholm who's actually at the conference and another person in Sydney, Australia. So based on their availability I would wake up in the morning
and I would work with the person in Stockholm because he would prefer to work in his evening time. And then I would kind of go through the day and then at night I would work with the person in Sydney because that person liked to work in their day time.
So I had this weird thing where I'd work really hard from like 7 to 9 in the morning and like from 10 to midnight. And the rest of the day was kind of like, yeah. The culture's going to be different. People different cultures are going to have different focuses. One of the things I've tried to do
is to make, like sort of fit into the culture I'm visiting or the people I'm working with. Sometimes that's uncomfortable. But I think it's important. Language, obviously, that's a huge challenge. I'm speaking in English. You're understanding English. But I realize, A, I'm not
sure how successful I would have been if I had to do everything in French or Flemish or German. I don't know if I would have been capable of being the communicator I am if I had to go learn another language to be involved. How can we bridge that gap? I feel I'm very lucky and blessed to be able to speak in English
and you have to understand English. But that's not everybody. And how can we work with people who have trouble learning languages or just don't have the opportunity to learn languages? And how can we show that we value their contributions and we want them to be part of our community? I could have
a whole talk just on that. You can imagine. Funding, I'll talk about that in a minute. Communication. I'm pretty good at that. One of the people, one of our community members said you know, early on they said to
get new people in the community we just need Bruce Montanet telephone. Because I used to call people just in the middle of the day and talk to them about whatever they wanted to talk about who are regular community members. And I may be calling Germany, I may be calling the other side of the country, the United States. But
that personal contact meant a lot. It showed that I care about what you're doing. I want to know you. I don't necessarily want to know what you're doing for the community. I want to know you as you. And if you want to do something for the community that's fine. But that's not my focus. Okay. When I go to visit and I travel quite a bit maybe 30 some events a year
I'm not there to tell you about our software. I'm not here to tell you about my software either. Right. I'm here to get to know you. I'm here to understand how we can help you and how we can work together in whatever you feel you want to work on. But I don't have an agenda.
My employer fortunately doesn't have an agenda for me. So I'm basically, my title is evangelist. Postgres evangelist or open source evangelist whatever you want to call it. I am not here to sell you to use anything. I'm not even here to tell you to use Postgres. Right. I remember I was in Sri Lanka
once and somebody held up his hand and said why would I use Postgres instead of my sequel. This was like 20 years ago. And I said I don't know. Maybe, I don't know. It's not, if you want to use it fine. If you don't want to use it fine. I'm not here to tell you I'm not here if you want to know why it has some features
you might like it. I can talk about that. I'm not here to convince you. I am here to get you involved if you want to be involved. Instant messaging, I've actually found it to be really almost better sometimes in the phone now. Because everyone's on typically telegram is huge. If you're not using telegram that's usually what I use for Europe, Russia.
A lot, Asia is a little harder. You know there's WeChat in China and I'm not sure I do a whole lot of chatting with Japan or Korea. I have a couple Korea guys on telegram now I think of it. So yeah, I mean Google Chat and you know we don't do too much with Facebook or at least I don't.
I'm sure some of my people do but being able to just chat somebody and say hey did you look at this or how you doing or did this problem in your country cause you a problem or how are you feeling or wow that was an amazing email you sent or I loved that patch you did. These little things
doesn't cost you anything. Like I might send them a hundred dollars I'm just talking to them and I'm saying you did a great job. I frankly I was down there at the Postgres booth just before I came up here. I said this booth looks great. And I said the dev room we have looks fantastic. We got a Postgres banner out front of the building.
There's a banner right near the entrance to the room. We've got people in blue vests that say elephant herder on the back. They're sort of helping people get into the room. I'm like we look like a million bucks here. You know I don't know what you guys are doing. This is great. Didn't cost me anything. But they did a lot of work. Somebody had to make those vests. These people are volunteering their time. Somebody had to bring the banners. They got to put them in
their car and bring them here. Right? Nothing worse than doing something and having nobody care about it. There's a lot of people who do stuff and nobody cares. Nobody even if they even if people appreciate it. Nobody tells them they appreciate it. It does not cost you anything to tell somebody you appreciate what they do. It doesn't diminish you. It doesn't make you
look foolish. They're probably going to thank you. And it's going to mean a lot to them. Right? That's a key aspect of building any type of community. Particularly a community where nobody gets paid. Right? I mean I know this sounds like obvious. But a lot of people don't do it.
And that's my soapbox. Yeah I'm sorry about that. You know I travel a lot and there's a lot of people who help me get to where I am and help me get find things and help me in the hotels and airports and stuff. You know I say thank you. Thank you for
helping me. Thank you for working on Sunday. I know you'd rather be home. And you know I think it makes a big difference. It's a mind change. It's a mind change of what type of person do you want to be. And it's not just an open source. It's basically what type of person do you want to be? A grateful person who thanks others for helping them. Or you just want to worry about yourself
and just get your thing done. And whatever happens those other people helped you. Right? A lot of people that way. But you're not going to be a leader if you're that way. That's not the type of leader. In fact there's a really interesting I go to a lot of leader conferences and there's basically seven, six type of leaders. There's the
innovative leader. There's the managerial leader. There's the sort of organizational leader. And one of them is probably the most important for open source is the servant leader. This is the leader who is a servant to the people who report to them and wants the best to happen to everyone who's reporting to them.
That's the type of leader you have to be an open source because you have no money. You have no control over these people. They are helping you out of their own voluntary and if they stop doing it there's nothing you can do. And a lot of management focuses on rewarding people and paying them and stuff. But honestly the servant leader for open source
you can search for it. There's a lot of talks about it. It's actually really interesting. One of the things I found in terms of conferences and this is a good example. I travel about 90 days a year when COVID isn't happening. I found that going to somebody's country
and spending time with them and staying an extra day after the conference and just hanging out with them and doing whatever they want to do is gold. The conference itself, yeah okay people hear me talk and I'm talking about Postgres features and blah blah blah blah okay yeah maybe I'm good at that or maybe yeah they can see
my slides online and it's not the same maybe but a lot of what I do is not just peaking to small groups but spending time with individuals in their countries just doing whatever they want to do. Hey let's go to the park. Let's go to the zoo. Show me something interesting. It's unbelievable some of the stuff I've seen
by just asking somebody hey I'm here for an extra day after the conference if you want to do anything let me know. And you don't know what's going to happen to you. Honestly it's a little scary. You'll notice I have shoes on but they actually have high top shoes because a lot of times when I'm traveling I don't know what
climb I'm going to be going up. Particularly in Russia I seem to be ending up on top of a mountain or in a forest or like covered in snow or just places I never would have thought I'd go but again I have to be flexible I can't be this sort of like oh I'm scared anyway it's actually
it's actually kind of crazy and that investment that investment pays back. It really does. One of the issues I had is email's nice talking to somebody on chat is better talking to somebody by voice
is better than that going to them is the best. Right? So I'll tell you a story and Shirley are you here or are you left? Shirley's here? No. So in 2000 I want to say 3 I was at a show I used to work for OSCON I went to OSCON in
San Diego I fly out there I didn't travel very much at that point so I fly out to San Diego and it was in a hotel right on the water and I gave my and I had a tutorial and a talk so I gave my tutorial there's probably like 40 people there and then I gave my talk like the next day and there's like 30 people there and
I'm like okay so I talked to like 70 people and I'm on the plane flying home and I'm like that was a waste of time. I sent an email thousands of people see it I just flew across the country spent like 4 days, 5 days to talk to 70 people. I'm telling my wife I'm not doing the same one It's 2003
I think I've traveled like 1200 days since then but anyway the stats are on my website What I found out is the next week when I was looking at the Postgres email list there was a lot of activity that wasn't there the week that I left the week before OSCON the week after OSCON I had a lot more activity
after the week and what I realized was the people I had lunch with at OSCON were now the people who were actively working in Postgres I don't know how it happened I don't know what magic words I said who knows but the point is it wasn't I'm not even sure it was the people in my talk, I think it was the people
I talked to at lunch I talked to them, I got to know them I talked about, I guess I must have said something about Postgres or they asked me something about Postgres I talked about, and all of a sudden we were going and I don't know, Magnus Haagender who was actually one of the core team members as well, he's here and I went to a conference early on
probably 2004 in it was in Denmark, style Copenhagen yeah, I had my clock right here, I'm good away to Copenhagen and again, it was a very early trip, I remember flying it was a crazy flight out of JFK in the snow and I remember arriving and I don't know
I talked to the guy, it was Magnus I don't even know what Magnus meant I didn't know if Magnus was a name I'm from the United States so I'm talking to him and he's talking to me about stuff and okay, whatever, and I talked to a bunch of other people and then I came back from Copenhagen and all of a sudden, Magnus is involved
and he's working an email list and I'm like, oh, this is great, you know little did I know, he would end up being the president of Postgres Europe and a core team member, you know you don't know, right, you don't know who you're going to talk to so, I will tell you travel is time consuming there's only a few people in any one location but if you can do it
and you have the time to invest in a long term goal it pays off tremendously time zones, obviously we all work in multiple time zones I've always worked from home, so I don't have a 9 to 5 my days have always been very long so I work, you know I work
in the morning and then I work kind of through the day, but I may take two hours off, three hours off in the middle of the day to go shopping or go visit somebody, or go to church, I don't know, whatever and I'm never really worried about it because the work's always there right, and at night the people in Asia are awake right, and in the morning, so
it's actually kind of a long term, having a cell phone is nice because you can communicate when you're not home but it is a 24 hour cycle, right, there's something happening all the time and that is a little hard to get used to culture, show interest in other cultures don't be the person who, oh I don't do it that way
or that's wrong that you do it that way we had a case where there was an inappropriate something at a conference in Russia years ago, and I had to call somebody up in the middle of the night I called him at his 1 AM and he answered the phone and I kind of talked to him about the issue, and he had
he was able to resolve it by the time everyone got up the next day, right, so again, I had that I already had personal contact with that individual, that individual had already sent his daughter to live with me for a summer to learn English, so I knew him and his family very well and he answered my phone at 1 AM, I said there's
concern about this event, this thing that happened at the conference, I got all the information I need, I talked to the court committee, and we handled it very cleanly, but again, I had already invested in that in that relationship long before I needed to call that person at 1 AM to get an answer so that things didn't get
out of hand, turned out they didn't understand, this was part of the package they bought, and we're like what country has a package like that? But, whatever you have to be culturally understanding sometimes, I spoke at a Russia conference in June and people were saying don't do that, well we don't
discriminate against where somebody lives, right? So how do I do that? I start the talk and I said I want to say something before I talk about my material, I said I know it's a very hard time for people in Russia, but it's also an even harder time for people in Ukraine, and the people
and the Ukrainians, and but I said I work for a project that does not have boundaries between individuals, we don't discriminate on where somebody lives, and it's in that spirit I'd like to talk to you today, I said the one sad thing is that I have been in Russia many times, and I have, and I said I'm sad to think it's going to be a long time
until I can come back and see you again in Russia, and the feedback I got from them was they really appreciated me saying that. I was able to talk about Ukraine, I was able to talk about Russia at the same time, and I think in a balanced way, and they appreciated that somebody was willing to talk
about that, so again, I spent a lot of time thinking about what am I going to say to them, and how am I going to make sure that I say the right words, but they appreciated it, and I continued to have a regular dialogue with them. And we had a lot of developers in Russia still who continue to work on
our project, we don't discriminate against them basically. Language can be an issue, we do have some cases where we try and do per language, remember I talked about the language barrier, we have a French email list, we have a Spanish email list, we have a Japanese email list,
a Chinese email list, there's a whole bunch of per language lists to get people started. We have per language, I believe it's telegram channels, I know we have a big Russian telegram channel, I don't remember what other languages we have. I know we have Slack channels for particular languages, we have obviously conferences all over the world, many of them are in, some of them are in native languages, some of them are in
English, some of them are both, are translated, so when I go to Japan there's typically a translator there, when I go to Russia often there's a translator, China as well, so again depending, we have different documentation in different languages too. Funding, we don't have any, so just get over that.
Hopefully you'll find a company like mine who's worried about the health of the community and is willing to invest in somebody as crazy as me who just says these things and goes around and does whatever. And the reason is because they're investing so that if there's a problem he already knows everyone who can get the problem fixed real
cleanly, and that's again one of the investments. Development process, we try and involve everybody, find each person's motivation, remember different people are motivated by different things, so figure out what they're motivated in and try and put them in a position where they're going to be strong. I don't know how to
put this, but none of us is perfect, we all have problems, things we do wrong, so I try and look at a person and say, what is your strength and what are the weaknesses, how can I put them in a place where your strengths are going to shine and we kind of have somebody backstopping the weaknesses so that it doesn't become a problem. Right? Reach out to individuals, again that
personal contact is important. Harvest the strength of the team, there's always somebody smarter than you, I learned that early on. There was a guy in Krasnoyarsk, Russia who was so smart early on, not only could not answer his questions, I didn't even understand why you'd ask him a question, so I'd say I don't know the answer, but why are you asking the question? He's like, oh, because of this, it's this. Oh, okay,
I understand it, but now I at least understand why you asked the question. Produce work that people are proud of. You know, I'm not always Mr. Sunshine sometimes, if I think, if I'm embarrassed by something, my community members will hear about it. In fact, somebody just told me today, I railed against how a website looked, it was kind of stuck
in an ugly, years ago, in Dallas, he remembered where it was and what year it was, and he said, you didn't like the website, and you basically said you were going to, he like, yelled at everybody, and he said, I don't care what you do to the website, do something, because we were stuck and we couldn't, we were stuck trying to look for something perfect, I said, just do
something, and that kind of like got us over the hill. Produce clean code, remember we're not paying people to code, so we better make it easy, alright? And finally, manage the team, lead by example, not from authority. This is a big thing, I didn't realize it myself, but
if the leadership, the leadership really has an unspoken control over how the project and how the team works. If you have toxic leadership at the top, you're not going to have a well run team at the bottom. If you have a servant leadership at the top, you're, the people underneath you would be servants
to those below and so forth, and will continue promoting people up and up into more powerful positions. That is absolutely a key aspect. I've been surprised at how well that works, except failure gracefully when I make mistakes, I'm like, I'm sorry, and when I say I'm sorry and I say I made a mistake, it opens
the door for other people when they make mistakes to also say, I made a mistake, because if Bruce can say he was wrong about this thing and basically take the lumps on it, then, oh I guess, look, it didn't hurt, I guess I can do that too, right? If I'm the type of person who ignores any mistake I make, then that's going to, that's how other people are going to do it.
So, seek consensus, the Postgres community does that a lot. Okay, let me take some questions. We can have one question. I have one minute for one question. Who would like to be our one question in our one minute?
I see a hand. I love it. It's Elia, she's Elia. She's going to give me an easy one, I'm sure. So here's my question. How do you find balance? I mean, you said you take calls at 1am, you travel 3 months a year, blah blah blah. You have wife, you
have children, how do you do that? Right, so the question is how do you find balance? Basically, you have to just accept your failures. You have to accept that I'm not going to be everywhere, that I'm not going to be able to fix every problem, I'm not going to be able to do everything, right? And you now rely on your leaders. So for example,
a great example, when I'm here at the conference, I have no idea what's happened in the community. No idea, because I trust all of our people who have been working for years on this, so when I travel, I don't even bother reading the community email list. When I get back, I'll take a look at it and you know, nothing bad happens when I'm gone.
So what I've realized is not to be anxious about things, to trust the people who are part of your organization to handle it, and by showing confidence in them, they become confident. If you show you're not confident, then they will not be confident. It's kind of natural. Thank you. Appreciate it. Bye-bye.