The secret life of open source developers
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: 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 | 10.5446/43466 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Open sourceComputer clusterVideo gameOpen sourcePresentation of a groupMaizeSoftware developerBoss Corporation
00:43
View (database)Presentation of a groupOpen sourceBoss CorporationBitMedical imagingPlanningOffice suiteComputer animation
01:07
GoogolTexture mappingGamma functionGreen's functionPlanningMedical imagingOffice suiteGraph (mathematics)BitLie groupDiagramRight angleDifferent (Kate Ryan album)Computer animation
02:17
Representation (politics)Software developerProjective planeComputer animation
02:41
FamilyBus (computing)Projective planeStatisticsMathematicsSoftware developerOpen sourceProcess (computing)QuicksortTwitterSoftwareCASE <Informatik>FamilyMultiplication signSet (mathematics)CodeComputer animationXML
04:05
Software maintenanceAxiom of choiceOffice suiteOpen sourceTwitterMultiplication signSoftwareOpen sourcePoint (geometry)Projective planeCodeMaxima and minimaVideo gameProcess (computing)System callQuicksortFamilyCondition number
05:57
Multiplication signFamilyLecture/ConferenceComputer animation
06:21
FrequencySoftware development kitFamilyOpen sourceException handlingHidden Markov modelSheaf (mathematics)Demo (music)Video gamePower (physics)Multiplication signDot productAdditionDiagramComputer animation
07:52
Open sourceInheritance (object-oriented programming)IRIS-TDependent and independent variablesSoftwareOpen sourceComputer programmingReading (process)Projective plane1 (number)SoftwareException handlingRoundness (object)FreewareProgrammer (hardware)Software developerKey (cryptography)Computer animation
08:52
Strategy gameInternet service providerSoftwareGoodness of fitLecture/Conference
09:17
Software developerCodeSoftware maintenanceBitOpen sourceStack (abstract data type)Software maintenanceTwitterMoment (mathematics)Multiplication signEmailSoftware bugGreatest elementMereologyElectronic mailing listCodeSoftwareRight angleBlock (periodic table)TrailXMLComputer animation
10:19
Link (knot theory)Extension (kinesiology)Installation artWeb pageTwitterXML
10:44
Revision controlWeb pageServer (computing)Web pageInstallation artRevision controlCoefficient of determinationPlug-in (computing)TwitterRight angleComputer animation
11:51
Self-organizationOpen sourceDataflowInstallation artMaxima and minimaData storage deviceServer (computing)Open sourceBitSoftware testingPoint (geometry)MereologyXML
12:54
CodeLaptopSoftware testingSoftwareComputer hardwareOpen sourceModal logicComputer programReduced instruction set computingProof theoryIntegrated development environmentMereologySoftware testingCodeLine (geometry)Computer programmingMultiplication signBeer steinComputer hardwareDesign by contractOpen sourceWindowModal logicSoftware developerVirtual machineService (economics)Table (information)SoftwareResultantTwitterXML
15:33
Computer programmingCodeSoftware bugTraffic reportingBlogLecture/Conference
15:55
SoftwareSoftware developerBitSoftware developerDesign by contractTwitterSound effectMathematicsEngineering drawing
16:45
SoftwareBitOnline helpHeegaard splittingMereologySoftware developerOpen sourceSoftware testing
17:13
Software developerOnline helpRight angleTwitterDesign by contractPhysical systemPartial derivativeException handlingProjective planeSoftware bugForm (programming)Shift operatorOrder (biology)Different (Kate Ryan album)Multiplication signPoint (geometry)Modeling languageClosed setDemosceneOpen sourceProgram slicingService (economics)BlogSoftwareSubsetArmInternet service providerInteractive televisionEndliche ModelltheorieCodeView (database)CommutatorComputer animationMeeting/Interview
21:45
Slide ruleComputer clusterProjective planeDesign by contractMultiplication signSoftwareExpert systemOpen sourceMereologyField (computer science)Software maintenanceProcess (computing)Event horizonFile formatCommitment schemeCode
Transcript: English(auto-generated)
00:07
Welcome everybody. I'd like to introduce two folks who I'm terrified of right now. Ian Turton and Andrea Amy, because they're about to talk about the secret life of open source developers,
00:22
and I'm an open source developer, so I'm going to go hide in the corner. Over to you guys. They weren't kidding, it's really hard to see the audience when you're down here. Why do you think they wear a hat?
00:44
This is a joint presentation. The first thing is to disclaim that our bosses have got absolutely no idea what we're going to say, and they shouldn't be held responsible for that. In fact, Andrea has got no idea what we're going to say because I only finished this talk in the last session, and he hasn't seen the end of it yet.
01:04
So, it's a bit of an image problem in open source. Lots of people think that it's like the top image. There's hundreds of people there discussing reasonably about what the plan is, and they've got a plan. Actually, it tends to be one or two of us sitting alone in our offices late at night,
01:24
while our spouse says, aren't you coming to bed, dear? And you say, I've just got one more thing to do. And she comes in and she says, but that looks just like work. Why are you doing that in the evening? So, here's a little bit showing, a little graph showing how commits by different contributors.
01:47
On the left are the actual active individuals. The bar on the first bar on the right, no, yes. On the right, the first bar is everybody else, and every other bar is an individual contributor.
02:02
So, by looking at the diagram, you can see that, for example, GeoTools, GeoServer, and GDAL, they have this large blue bar. The GDAL large blue bar is sitting somewhere here, but there's too much light. There it is. There he is. What happened?
02:21
Oh, I don't know. It's still working here. Oh, there he is. Okay. Nice. So, in those projects, I took out GeoTools, GeoServer, GDAL, MapServer, QGIS, just to get a representative set, and you can see that in every project, there is one developer or two developers or five developers tops that do, what's going on,
02:49
that do 90% of the work by themselves, or, I mean, not 90% of the work, but 50%, 70% as a small bunch of people, and everybody else,
03:00
and those everybody else might be 100 other people over a year. This is a one-year statistic. They commit very few changes. So, well, very small bus factor, and it's not like we have this huge set of people. We have very few people keeping the project alive and going,
03:23
and it's the same for most of our OSG open source projects. In fact, I suspect if we looked at some of the smaller projects, we'd have found an even bigger bar. So, this is sort of leading into some of the discussions we had on Twitter, you know,
03:40
what do people think open source developers do all day? Because there seems to be this opinion on Twitter that we sit around, we laze around by the pool in our mansions, drinking in cocktails, and occasionally just jump up and review a pull request if we feel like it. Mostly, we work. We've all got real jobs. In some cases, our real job is looking after open source software,
04:03
but that's for paying customers. We write some code, you know, when our spouses aren't watching. We spend some time with our families, and occasionally we actually go to sleep. This is one of Andrea's favorite tweets. Yeah, I took one comment and re-captioned it,
04:20
and while the situation is real, everybody wants well-maintained open source software. Like, everybody wants it. Yay! Who wants to contribute fixes, which is kind of the minimum code contribution that you can do? It could be also writing documentation and whatnot. Everybody's there like, hmm, but nobody raises their hand anymore.
04:43
And the key point is that projects are kept alive by maintainers, people that offer their time to answer questions, review pull requests, and so on. When the guy says, who wants to be a maintainer, everybody's gone. And it is pretty much the quickest way to empty a room,
05:01
is to ask people for contributions. When I posted this on Twitter, it got liked like 3,000 times, and I tweeted a couple of thousand times. And this is one of the responses, yes. First answer I get when I tweeted that is like, people have jobs that eight hours of work plus time to move from the office,
05:22
they have to sleep eight hours a day, that's 16 plus hours, they might have to do other stuff like college kids, exercise, shower, eat. So is it a want issue or a can't issue? And I'm like, wait a second, I sleep, I code, I have a family, I'm probably not a person because people have these problems and apparently I don't.
05:44
So this is my timetable. My life got so regular during the last five years that I can actually show you what it's like day by day. So I sleep eight hours a day like a baby, that's to keep my sanity.
06:01
I work out one hour a day in the morning because if I don't, I get really nasty and nervous. I work nine hours a day, I cook it and clean twice a day because I work from home, okay. So I do my own cooking and my own cleaning. The rest of the time is eaten away from the family.
06:22
Basically what you see here is that the hours in a week are two hours a day, one from 10 to 11 more or less and one in the morning to do the workout, period. Everything else is eaten away by either work or family. During the weekend, my wife is a pharmacist, she works also today.
06:44
So guess who looks after the kids? That would be me. The blue bars that you see are me doing open source activity like reviewing pull requests, trying to answer questions and stuff like that. You can see like three hours between Saturday and Sunday
07:01
in which I can do it like concentrated without anybody bothering me plus a couple of extra hours in Saturday morning and Sunday morning where I have my son and my daughter painting, drawing on the side and every five minutes, hey daddy, should I use red or yellow? And you are trying to review a pull request, I'm like, hmm.
07:24
So welcome to my life. You don't see me going out, I don't have a section for going out because I don't go to the restaurant, I don't go to cocktails, I don't do anything like that, okay. I'm pretty much living like a monk except that I have a wife and kids.
07:43
So when people show up and tell me, can't you just do this in addition? I'm like, ah. No, I don't have time anymore. And it has to be said, my timetable looks very much like this but I don't spend an hour doing a workout in the mornings. I do more sleeping instead. I find this much more practical.
08:04
You probably can't read these ones but it's basically the main one is I like open source but once it's no longer a toy project it should be maintained by paid programmers rather than volunteers. Well that's an excellent idea. I've never met Andrew Grimm.
08:21
I don't know if he's in the audience, probably not. But I've never had a check from him either. So the majority of the users of our software, why should I pay you for free software? You gave it away for free. I want your full support, I want you to come round to my house and fix it for me but I don't want to pay you for it
08:40
because it's free software. You said it was free. Basically, a problem that we keep on seeing is that people switch away from proprietary software to open source but they keep on their way of doing things except that they didn't pay at the beginning but for the rest they keep on acting as if it was a proprietary software. So they go to the developers, please fix this
09:01
and well sometimes with the software that you bought bullying the provider is actually a good strategy so they start being nasty with us and well that doesn't work at all. Just to throw in, this is the oatmeal's famous can I eat exposure thing.
09:23
Yeah, you know, it's great. I come to Phosphogee and everybody goes oh, you're Ian, yes, I use your software, I've seen you on Stack Exchange. It's cool but it doesn't pay the mortgage, it doesn't pay the food bill. And we're starting to see maintainer burnout.
09:42
We're answering questions on the mailing list. That's cool, that's part of being a maintainer. I answer questions on Stack Exchange a lot. We review pull requests. Then we also have to answer questions that people have put on the bug tracker. That's not where you post questions. And then we answer so-called questions on Twitter and that actually eats up a lot of time
10:01
until I got, I've been doing a lot of work on that this year, I'm much better now. If you post snarky comments on Twitter, I'm just gonna block you. I'll never see your comments ever again. It's great. And finally, I write code. That's actually what I, that's the bit of open source that I enjoy and it's right at the bottom of the pile at the moment.
10:22
So this is an example, let me call it Marlin Jones whose Twitter handle is, interestingly, is doing it right. It didn't. So apparently we're idiots. It's weird. Yeah, that's one of the encouragements
10:42
that we get to do things better. I can tell you it's not quite working. I'm with Adrian Lincoln on this one. Better to remain silent before to fall than to speak and be removed all doubt. There's a reason we sent you to the download page. You have to pick which version of girtoot server
11:00
you're using to get the right plugin. Now for all I know, Marlin is still out there on Twitter whining about how poor our documentation is or how poor our download page is. But as I say, I blocked him after I did a screenshot of his tweet. So I'm never gonna see anything he says ever again. Another common one we get is why didn't they test that before they released it?
11:24
To which the thing that came to me the other week is there's no they in community. Some of you may have seen I had a long, somewhat involved discussion with a guy called Stace
11:41
who was whining that his QGIS wouldn't install on his Mac. Now to be honest, I've got no dog in this fight. I don't have anything to do with packaging QGIS up. I'm just a QGIS user. I don't have a Mac so I've never ever tried to install QGIS on a Mac. I just said, well, you know,
12:01
have you offered to pay for somebody to write us an installer for Macs? Because I know that GIS server, we dropped our Mac installer because it's a pain in the ass and we didn't have a Mac to test it on. Or, you know, did you volunteer to test the release? Again, I know that GIS server produces a release candidate that we encourage people to test for us
12:21
so we find problems before we make the final release. And I imagine QGIS does the same thing. To which apparently that was a really shitty way to respond to the chronic problems that we all know QGIS has with serving the Mac OS users and frankly it's not an excuse. So Howard came to my defense at this point
12:41
and suggested that maybe serving Mac OS users was not what open source was all about and pointing out that OS X is a bit of a pain in the bum. Nobody really likes it. And then I was a code snob for suggesting that, you know, actually you were part of a community.
13:01
I wasn't suggesting that he wrote some code, I just suggested maybe he ran a test and told somebody it didn't work before it got released. But it got descended quite badly after that and that was when I introduced my new policy of blocking people who were rude to me on Twitter. So again, I have no idea whether he ever resolved his problem.
13:21
So open source software is a duocracy. You want something tested or fixed then you're going to need to do it. I don't care whether it works on your machine or not. It works on my machine. Particularly if you have a hardware or OS that I don't use then you're going to need to test it. I haven't got a Mac. I can't test if GIServer works on a Mac.
13:43
It's just not possible. It's the same with Windows. I can't test if it works on a Windows machine. I don't have a Windows machine. You want it to work on a Windows machine, you need to test it. And if you would like me to do it for you or even explain to you how to do it, you do need to be polite. I don't react well to people being rude to me.
14:01
I know I do. This is the GPL license that we use for GIServer. This is the contract. So people have all this bizarre idea of what open source developers should or shouldn't do. We distribute the code within a certain license.
14:21
It's GPLv3 for GIServer. It is the same for QGIS as far as I remember. This license is the contract. The license says, should the program prove defective, you assume the cost of all necessary servicing, repair or correction. So it's not working. It's your problem, not mine.
14:42
That's the contract. That was the thing you clicked through when it said do you accept this license? And I might volunteer to do it for free in my time. Might. But this is a contract. Everything else is gravy
15:01
that we put on using our own time or our company's time. You cannot demand any of that within any deadline with any kind of insurance that it will be done or not because it's volunteer time. And if you tell me that it's costing your company money
15:21
because this program's not working the way you think it should, I'm definitely going to suggest to you that you need to buy a commercial support contract. I don't care about your losing money. Not unless you're going to put some money on my table, pay my mortgage. So we are pushing code into the program. We are volunteering it out for everybody to use.
15:40
You want to do the same. Volunteer your bug reports. Make them as good as possible. But just like we don't ask money out of you, don't ask us to fix it just like that, okay? So this is, you know, a final suggestion.
16:01
Ineffective tools of persuasion. We don't have a contract with you, in fact, other than the click-through GPL license that you didn't read. So we're effectively, we're there with a whiffle bat, which is apparently a baseball bat with holes drilled in it, made of soft plastic. Okay, that's as persuasive as we can be.
16:22
We can't make you do this, but the flip side of that is we don't have to help you if we don't want to, right? So our conclusion, we probably aren't going to change anybody's mind here. With any luck, people who've made the effort to come to Phosphogee are already committed to being good members of the community.
16:41
The people who argue with us on Twitter aren't the people who come to Phosphogee. But with any luck, we'll make you think a little bit more about what the software developers are going through, what we do to make you support your software. Seriously, we do think of our users as part of a community. We don't see it as a developer-user split.
17:01
You're not customers, but you guys have got to think the same thing. You're part of a community with us. There's no us and them in open-source software. And when we say, did you test that or would you like some help to fix that, we really are trying to be helpful. It's not us being snarky. That is the help we give to people in our community.
17:22
If we didn't want to help, we wouldn't answer at all. Yeah, trust us. I write a lot of tweets that I then delete. Okay? That's all.
17:46
Questions? Do we have a microphone? Yes and no.
18:18
Yes, it's becoming more common for people.
18:23
Oh, are we seeing a shift in the mindset of our customer that they realize they should be paying for support contracts in order to keep the project going and to get bug fixes and whatnot in the time they need and so on? Partially. Business is growing,
18:40
so definitely we are seeing more and more companies that realize that if they want to have any guarantees, they have to arm themselves with a support contract because otherwise the GPL warranty clause kicks in and says, it's your problem, right?
19:00
Before doing that, I normally suggest people to just open a ticket. You might get lucky and have it solved quickly, but at the same time, don't get pushy. Whenever I see anyone getting pushy and they start telling us, why didn't you fix that bug? Why didn't you fix that bug?
19:20
I'm like, okay, this bug is not going to get fixed. Yeah, and to be honest, you said customers, and do you remember customers are either a customer of Aston or a customer of Geosolutions. They're not a GeoServer customer or they're not a Geotools customer. The customer relationship is not with the project. The customer relationship is with the support company.
19:43
Yes, we are selling a few more support contracts per year than we used to, and that's one of the reasons that Aston employs me, so they can service these support contracts, which is great. I love that, but there's still a lot of people out there who don't realize that that's something they should think about doing
20:02
if they're running a business-critical system on open-source software. Actually, from my point of view, if the business situation is going good, the community situation is getting worse, in my opinion, because we get more and more people that show up that are used to the proprietary software model of interaction,
20:22
and they literally just show up and assume that they should behave the same way with a customer-provider relationship except that they didn't pay. So they don't try to get involved. They don't try to help. They just want something, and sometimes it's really bizarre
20:41
because you tell them, look, I'm a volunteer. I just cannot follow up with everything you want because my spare time is what it is in that table, right? And then they go and try to try dorces. Oh, yeah, if I write some documentation or if I try to help answering questions, then will you fix that bug?
21:05
And I'm like, no, that's just a different form of payment. It doesn't give me more time. So when I donate code, I donate code, and I'm not asking you of anything. So don't come at me and try dorces with me, okay?
21:20
You want to participate in the community. Do so in a free way. Do so because you think it's right, but don't try to get something out of the developer.
21:41
The chart. Oh, right, yep. Was one of the first slides. Yep.
22:23
So the question is we have this project in which there is one or two contributors doing most of the stuff and then everybody else. It is that distorted because the people that you see
22:40
are the two blue bars at the top. Here's the blue bar in the middle. Because you end up doing so much work. On one side, because you are recognized as an expert, so commercial work tends to go towards you.
23:02
I mean, like 80 to 90% of what I do is paid for. It's part of contracts. So I work in a company that's recognized as a leader in the project, and I am recognized as a leader in the project, so work tends to go towards me. But also because I'm a maintainer.
23:21
So if you want something to go into the project, I have to code review it. I have to have a look at it. So my activity shows up also because I'm looking at somebody else's software, somebody else's contribution, and that counts as a commit. It's a merge. You also did the code reformat in that year.
23:42
True. I mean, the percentages would not change if I switched to another year. Because the reformat was one commit. It was touching everything, but it was one commit.
24:03
But this is volunteer activity. Those people have to step in and work more, but they have to want it because it's not like...
24:21
These are not companies where you say, oh, yeah, I'm going to hire one more person and stick it into the project. You do that, somebody did that. It happened multiple times. You don't get a new volunteer. You get a new mercenary in the project, someone that works only during the hours, that does the job provided by the company,
24:40
and then disappears. You don't get a new maintainer. And those people tend to maybe do something really big in a small amount of time and then disappear. And that's not how open source projects work. It's like working in a farm. You can do something huge for the farm in a couple of weeks,
25:01
then you leave for months, you come back, the cows are dead or gone, the fields are full of weeds, the project is dead. It's a day-to-day caring activity to keep an open source project going. It's not doing something gigantic once and then poof, you're gone. Okay, I think we have to stop.
25:24
People, you've got five minutes to get to your next talks.