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

From Fun to Business - How Open Source Changed my Life

00:00

Formal Metadata

Title
From Fun to Business - How Open Source Changed my Life
Title of Series
Number of Parts
160
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
From Fun to Business - How Open Source Changed my Life [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] Coala (https://coala.io/) began as a fun project. We never believed there would be anything useful growing out of it - and yet it did. Contributors all over the world came to us and helped creating the community as it is. But how did all of this happen? What does this mean for the main contributors? How can we make a living of an open source project? This talk tells our story. What we did - good and bad things - so we can learn from it. From my personal open source contributions over founding an open source project to building a freelance agency and founding a startup. Participants will learn how they can grow an open source project, automate newcomer processes and gain insights into how they can start making a living of it, possibly founding a company eventually. There is no single recipe for this but we can - and should - exchange the tips and tricks we’ve gained with our ventures. This talk is for entrepreneurs, wanna-be-freelancers and future or past open source project founders. This talk is completely new and has not been presented at any conference yet although it overlaps with previous talks of mine which have received much positive feedback at previous regional PyCons. It will be tested at a local meetup to ensure proper timing
95
Thumbnail
1:04:08
102
119
Thumbnail
1:00:51
Right angleForcing (mathematics)Open sourceMultiplication signNormal (geometry)CASE <Informatik>Physical systemLine (geometry)Universe (mathematics)Student's t-testProjective planeCoroutineComputer programmingOperating systemKernel (computing)Source codeTouchscreenRevision controlStructural loadFormal languageProper mapDataflowArithmetic progressionMessage passingBitReal numberCodePatch (Unix)Video gameSoftware frameworkPattern languageGoogolDifferent (Kate Ryan album)Office suiteFreewareSystem callMachine codeGroup actionParallel portOperator (mathematics)Presentation of a groupLecture/ConferenceMeeting/Interview
Software maintenanceNumberComputer programmingPoint (geometry)Graph (mathematics)CASE <Informatik>Right angleMultiplication signPhysical systemOpen sourceMachine codeLogicFreewareProjective planeStress (mechanics)Inclusion mapBranch (computer science)Universe (mathematics)Level (video gaming)User interfaceSystem administratorMathematicsMereologyView (database)WebsiteBitWritingMathematical analysisFormal languageSoftware frameworkNegative numberMoment (mathematics)Software testingArithmetic meanProper mapLecture/Conference
FeedbackSoftware testingUsabilityDecision theoryMaxima and minimaPower (physics)Software maintenanceTerm (mathematics)Multiplication signLecture/Conference
FreewarePairwise comparisonOpen sourceProjective planeMultiplication signFreewareBitMereologyJSONXMLUML
ProgrammierstilMessage passingFrequencyMathematical analysisMachine codeCommitment schemeWave packetUML
Right angleMachine codeCommitment schemeDemo (music)FeedbackDifferenz <Mathematik>ChatterbotRepository (publishing)RobotMereologyApproximationLatin squareLecture/Conference
Software maintenanceMultiplication signOpen sourceLecture/Conference
FreewareBit rateError messageBitIterationBusiness modelMultiplication signOpen sourceFeedbackProjective planeJSONXMLUML
Information managementBuildingBasis <Mathematik>Open sourceWebsiteProduct (business)Goodness of fitForcing (mathematics)Computer animation
Open sourceBookmark (World Wide Web)Lattice (order)CodeBasis <Mathematik>Projective planeOpen sourceWebsiteBusiness modelComputer animation
Product (business)Projective planeUltraviolet photoelectron spectroscopyMultiplication signRight angleBitSuite (music)UMLLecture/Conference
AutomationState of matterOscillationXMLUML
Source codeClient (computing)Differenz <Mathematik>Right angleXML
Open setCore dumpOpen sourceProduct (business)Endliche ModelltheorieXML
CASE <Informatik>
CASE <Informatik>Lecture/ConferenceJSONXMLUML
Roundness (object)Right angleUMLLecture/Conference
Projective planeError messageCellular automatonAuthorizationForm (programming)Execution unitJSONUMLLecture/Conference
Multiplication signInformationUML
RobotTube (container)CuboidDirection (geometry)Lecture/ConferenceMeeting/Interview
RandomizationStructural loadWeb pageRobotRight angleSystem administratorCartesian coordinate systemPasswordChatterbotComputer fileRootLecture/Conference
Bookmark (World Wide Web)GoogolGamma functionWebsiteProxy serverRobotSystem administratorRight angleCuboidProgram flowchartComputer animation
RobotGroup actionElectronic program guideSign (mathematics)MereologyMeeting/InterviewSource code
Bookmark (World Wide Web)Coma BerenicesMeasurementOpen sourceMeeting/Interview
Metropolitan area networkLecture/Conference
Transcript: English(auto-generated)
Thank you Okay Let's get started so this talk named from fun to business is about
Maybe like three main things. The first one is the most important thing fun Have more fun, please. This is like my major call to action. I want you to have more fun And It's also a bit about open source. It's a bit about how we grew the koala open source project
and Then in the end we will be talking about like Even what what do you do if your open source project takes over your life and you're like 30 hours a week in your free time Maybe you can try making business with that while keeping the stuff that makes fun
So fun is really essential That actually means Or can mean in my case sometimes making less money Can help you making more money per hour like just like do only stuff. That is fun
and if you have like not enough time and People are willing to buy the time. It's a normal freelancer You can just charge more per hour for example So we will be talking about this kind of stuff as well as then being an entrepreneur
So the red line through this is basically just my personal story because I Basically started out as a student in university, and I was bored so when you're bored, there's Basically nothing better you can do with your time than writing operating system, right?
So that's what I did and and that was called yahfoss yet another free operating system and That was like a I was a colonel it even had like Multiprocessing in the end and it was printing ace and B's and parallel on the screen, and I was very very
Excitedly showing that to my girlfriend, and she was looking at me like a sheep But you know it was fun, and I learned a lot about it, and I never regretted doing this kind of project
But what went from this project? Eventually we had lots of code and it was lots of shitty code and I hate a friend I was like hey, do you want to join this this is really fun writing an operating system kernel and see He was like no way I'm going to try something new python And I was like very skeptical a language that uses indentation
But he did his stuff, and then he wrote He wrote basically the first version of koala back then which was a Code checker that actually already dynamically loaded python routines that would check my source code because it was also ugly and badly readable
To go to be a bit little sidetracked from that story What happened then was my introduction to open source, and that was a google summer of code short g sock For those who don't know a google summer of code who knows google summer of code?
Great who raises his hand when they ask him to raise his hand like everyone raises hand Okay, that didn't work interesting and Google summer of code For those few who didn't raise their hand is a program of Google and they set out
Scholarships for Pete for students to work on open source projects over the summer the motto is basically flip bits instead of burgers It works pretty well, and I had a google summer of code at gnome So I was working with gnome, and I was learning a lot especially about get Get and get commit messages
And more about get so that really shaped the way I'm nowadays working and thinking and it was the first time I worked on real life project and that and that was way beyond University stuff because much of that like especially like how you work together in a team is never being taught properly in universities and
All that people know outside universities seems to be the git flow Which half of the people think they use but don't use and the other half of the people maybe use I don't know But due to this Google summer of code I got involved in open source and
Eventually we made koala like a proper open source project And we renamed it and we rewrote it and out of sudden people became interested And this was really unexpected this whole project was just done so we can have our fun
You see a pattern here, right? So eventually people got interesting interested and helped us doing this Because a lot of people are asking also last time after the talk like what is koala anyway? I will do like very very quick presentation of what koala is
Koala I mentioned this earlier it analyzes source code it finds problems in the source code and it also can fix some of them So it can give you patches. It's like a linter, but it's a linter framework so if we look at the world of linters, we have Lots of different tools like really lots and lots and lots of tools and we have lots of ways to use those tools
And it's basically like rewriting LibreOffice just a spell checking for another language, which is kind of stupid But that's how the world currently looks like So koala is a framework that allows you to write code analysis And it gives you the whole user interface for free. So you just write the logic
And what we also did was we wrapped the existing tools So koala is one central API I can take all tools wrap them to it and then again you can use all those tools in Sublime if I want to or maybe directly in github So currently the code analysis provided is for more than 60 languages and
If you want to know more you can come to our stand which we have in the hall. We're also some foodies At some point we had a problem a Very comfortable problem to say so so this is the graph of the github stars, but the contributions
like the number of contributors behaved similarly and With programs like Google Summer of Code and with hackathons we had lots and lots of people joining the project Lots of people also only for a short amount of time
But some not and we had a community that was steadily growing And we really had a problem of we have those great maintainers who are all helping us And they are all busy Inviting newcomers assigning them to issues GitHub permission system is totally broken in case you don't know it like you can't
Give somebody access to take an issue without giving a full right access of everything Also, you don't want to have all your maintenance have administration access being able to change everything like inclusion including branch protections I wish even I couldn't change that
So With that we had the need for automation and also, we Investigated like what makes people come to open source projects and what makes it easier for them to get started So as for the last thing I basically took like what I learned from gnome and what I think that so to say went wrong or that could have been better
And a few of I'm now presenting like a few things a few tips and tricks if you want to if you want to make an open source project if you want to get contributors and It basically is down to make contribution easy and make contribution also rewarding if you can
Because in the beginning as a newcomer you have two problems You need to fix an issue in a code base that you don't know and at the same time You also need to learn a new workflow and that is the git workflow Usually the workflows and open source projects are like more complicated than what people know from their company or from the university
Especially if you have like a proper workflow Meaning no merges and fast forwards because you want to have your passing CI also passing on master So you can for example introduce issue levels and
That is a very simple tool it basically says like whenever you see a typo in your documentation or anywhere Something that is really really simple to fix something that you can you can grab any person on the world Tell her to who can speak a little bit of English tell that person to fix it and that person can fix that issue
That's a newcomer issue And the newcomer issue is critical so people can learn the git workflow People can learn the git rebase people can learn how they can make pull requests And if they can do all that now, that's fine. Then they're done with this in five minutes. And if not, then they learn this and
Usually like I think almost every contributor and that includes an experienced people because workflows are special every contributor learns something The next thing is that You also have the problem like you have few maintainers and you have lots of newcomers
At the same time like those newcomers you want them to be part of your community and you want them to grow up you don't want them to feel like I'm just a Contributor and there's those holy mighty maintainers So what you can actually do is like let them review code of the maintainers and the maintainers review code of the newcomers
Because The maintainers are maybe more experienced but the newcomers are also providing a fresh site a fresh view on the code and They they are a good complement to each other and at the same time newcomers feel respected and their opinions are taken into account
and then they also grow up faster and they can become a maintainer eventually and This this whole border of maintainer and newcomers just like a permission thing. There's nothing more
Yeah, so those quotes I sometimes have quotes here Those are things like when I asked the caller community about like what do you like or not like about our newcomer process? We I don't think we had any negative comments on stuff that we did except that reviews are not fast enough that is
Problem for us at the moment so the next thing is same A bit in the lines of before we can learn from newcomers like we the holy mighty
Maintainers we can learn from the new people Especially when it comes for example to the newcomer workflow, like how did this go for you? Did you have any problems? Where are your problems? It's like you can usability test your newcomer workflow and then you can make it very easy to contribute and then you can get more
contributions It's basically as simple as that. So you have to iterate and you have to think like a start-up and That is a decision that you really have to make Because you can't really Progress like super fast with the maximum of power that would be like having all maintainers working on all important features
And instead you can decide you don't have to to grow your community and that will cost time It will cost a lot of time for the maintainers and everyone But you will you will grow as a community and you will have to think like a starter because the start-up usually doesn't think about like revenue or short-term goals, they want to grow as fast as possible and
So I think this comparison is like really an interesting thing and that is something that an open source project has to decide What is my priority? so eventually This became the full-time free time occupation as I hinted earlier
And now we're getting a bit into the automation part so We started writing a tool that Reviewed the pull requests of our people automatically using Koala. We already had the code analysis tool
So Why not use it? Why not have the newcomers automatically being told hey your commit message is not an imperative tense Or you have a trailing period in your commit message Those are like the most common issues for newcomers are they have to learn the commit message guidelines or also the code style and
This way newcomers get an instant feedback on github for the code Yeah, I I don't have a demo for this right now, but It's it's basically just a bot that automatically comments right in the github diff
And you can go further you can automatically label issues if the issue label is in the issue text So people who don't have access to labeling issues can just mention them in the body You can build a chat bot to assign people to issues
So they can self-assign them without having right access to the github repository. I will do a lightning talk about the chat bot right after this talk in the lightning talk session And The next steps for us are we definitely want to look into finding duplicate issues, for example Because the issue base grows and this is all stuff that sucks up maintainer time and that you can automate
So Thinking about how can we turn this into business we have this I'm working on this. This is all great It's totally fun But it's not really sustainable forever an open source community can only grow so far with love and air, right?
So I personally start to go freelance at some time A problem with freelancing is it's kind of hope business As the founder of an open source project, you usually have something that you can show to people and that definitely works
It's usually being perceived as a very impressive thing although like It's just luck, right? Plus a bit of like iterate and take feedback seriously, but it's nothing really special So
What I try to do with my freelance business is I basically try to make a sustainable business model And then I tried building this website and this totally failed. So I'm not showing an advertisement here, right? This is a failed product
Because I think it's also important to show things that do not work. This was for example, like hey, we're good with open source We can grow open source communities and we have shown success here we can show off stuff and let's just Try to build packages that companies would pay on a monthly basis
That to help companies building open source projects and like we didn't fully check that business model like to the book with some lean startup methods, but I did talk to a few people here and there and
We had the website up and there was No interest at all in this like nothing so we screw this and I found a new project new product which is
Working on MVPs for startups, which seems to go better I think one lesson here is if things are screwed up Just throw them away like that's okay. And then maybe you wasted a bit of time, but that's no reason to waste more time, right? So apart from this freelance business we were like, how can we make a
Business that suites more than one person. It's again, like how can we make a product? Also, especially a product that is related to koala and that is basically what we try with get mate or what we are currently trying with get mate and We're a startup. It's completely chaotic. We have no idea where we going
I think it's good that way. It's very fun. It's exciting Actually, I can show it like this was the automation that I talked about earlier so every pull request would get a pull request state
and You can you can have comments right in the diff that basically show you how to build better source code and We're not fully sure how we are going to make a working business out of this We got some government funding. We have a first client that pays us for
GitLab support for this basically But It is possible to Go out with open source products to build solutions that are free or at least largely free We are still considering the open core model, which is what GitLab also does
But it is possible to do that and I'm saying you can do that and I can do that like you just have to just do it And The main lesson is again have fun in whatever you're doing and don't be afraid of
I Need a hundred bucks more in my bank account If you don't really need it, I don't know there may be cases where it really matters, but In my case like it does not really matter. I can pay my rent. It's not a lot but
It works and I can have fun doing what I want And I think that's more important than having way more money that I would need or can eat And that's basically the main message and with that I'm opening up the round for questions
With the hint if you want to speak more like if there's any questions that we can't talk about We have a koala stand in the main Hall where all the other stands are I'm mostly there and you can approach us with any question you like
I don't know and if it's what you take per hour. I don't know be blunt, right? Just come around and Also consider coming at the hackathon if you want to get hands-on on Anything koala get made or your own project right Okay, so any questions, thank you lassa for this wonderful talk we have some question
Okay, do you want to add more about the project itself we have some minutes sure there's no questions, okay
Is there anything that anyone would like to know I Hear more information and we can just close this and if you have questions Yes, so you just just take some time for the first question to come
Hello, my name is Henry and I have the same issue that describe you forget have nothing being allowed to give Other uses to tag the issues or assign tubes people to fix. Did you try any other?
Workflow instead of like having a bot to try to do that work Sorry, you're you're asking about the permission problem. Yes, and if we tried any existing bots or solutions to that, I don't know just wondering because I
think it's a big issue for any community that you are trying to build to like not being blocked just because Someone decide no, this is a feature that we're not going to implement like giving permission for random people So, do you know the s-flag for Unix executables
Sorry, do you need the s-flag for Unix executables? No So basically it says like this application has administration rights, even if a non administrator runs it, right? It's used for for example past past WD like for changing your password You need access to a normally read-only file
So you have applications that have root access that otherwise don't have root access We basically did the same with github by having a bots I Can show you? so we have a chat bot and
when newcomers come and the page loads They have to wait until the page is loaded and After that, they basically just write hello world into the chat And then we have a bot the bot has a github account that has full administration rights
Okay so much for that The bot has a github account that has full administration rights. So
So when you write hello world the bot can just invite you to the organization and Tell you like here take care of that take care of that we have documentation about newcomers guide and everything and Then you can just do Cordoba assign me assign me to that issue. Give me that issue and
All those newcomers don't have access to the repository but through that bot like this executable which can perform actions for you But only selected actions the bot can assign people and then you don't have this permission problem anymore And that's this is open source at github.com
Slash koala slash kodoble this one. I will present it later in the lightning talks Did this answer your question? great We can take
Okay, I think probably they're waiting for your lighting talk do it happen soon, so Thank you so much lassie again