Where's the Money in Free Software - Computerphile

Most people make their money from writing custom software and making improvements to existing software, as well as fixing software for other people. Free software is a wonderful place to do this kind of work. I've been doing free software for a long time.

I previously worked at NHS IT, the National Health Service's IT project based in Leeds, UK. My job there was to maintain some free software we were using to power our website. We had Plone, Apache, Linux, GNU, and Debian among other tools that made this thing happen. My primary responsibility was to ensure it kept working, add features, and maintain it. I was paid for my job, and after leaving, I went to the University of Manchester and had another job where I was also paid to make and maintain free software.

There's a pattern here in most of my jobs that involve making and maintaining free software. At the Free Software Foundation, my job was more focused on campaigning. I was the mastermind behind campaigns like Defective by Design, Windows 7 Sins, and PlayOgg for a couple of years. I would write articles and do editorial-type work on those things while also maintaining my own free software projects in my spare time.

Now, I'm at Creative Commons, where I get paid to look after free software projects, maintain them, and write new free software. If you want to work in this kind of field, I suggest becoming reasonably good at programming, knowing your licenses, having a strong desire to make free software a reality, and being part of a community that needs developers.

WordPress is a great example of very common free software that's not going away anytime soon. People will always need people to write plugins, help others, be supportive, write themes, and add-ons for WordPress. If you're good at free software development, you can even work on WordPress itself! WordPress is a community project, too, so people need developers who are volunteers in their spare time but some of them also work for the company behind WordPress.

The best WordPress developers in the world get to work full-time on WordPress because they have the opportunity. You don't just get a job in free software from nowhere; you can start somewhere by using free software tools and convincing your boss to allow you to release your changes out into the world. If you do that, find the right community and give them the changes back, and you could very soon be doing that for a living.

Most software that's free is developed in public, using sites like SourceForge historically or nowadays in things like Gitorious or GitHub. You can go along, get a copy of the code, find bugs, fix bugs, add new features, and push that code back to the main development team. In general, there's a process where you send in bug fixes and suggestions, and eventually, after a while, they get kind of like the community's attention.

To organize teams of developers for maintaining free software, it generally happens that if you are a developer who enjoys a piece of software, you can be part of its upkeep. Most free software is developed using public sites where you can go along, find bugs, fix bugs, add new features, and push your code back to the main development team.

"WEBVTTKind: captionsLanguage: enSo most people make their money from... uhnot writing boxed applications but actually writingcustom software and making kind ofimprovements to software, and fixing software for other people.And actually free software is a wonderful place to do that kind of work.I've been doing free software for a long time.Previously I worked... uh... way, way back now... 10 years agoin NHS IT. It's the National Health Service IT projectbased in Leeds, in the UK.And my job there was really to maintain... um...some free software we were using to power our website.So we had... um... a thing called Plone.And we were using Apache and Linux and GNU and DebianAnd all these other things to kind ofmake this thing happen.So my job was primarily to make sure that kept workingto add features to it, to add new functionalityand to kind of maintain it.And so I was paid to do that jobAnd I left there, went to the University of Manchester,And had a job that also paid me to make and maintain free software.And there's kind of an overriding pattern here, where I did that for a lot of my jobs.At the free software foundation, my job was more focused on campaigning.I was the masterhead behind some campaigns likeDefective by Design, Windows 7 Sins, PlayOgg for a coupla years.So I would write articlesand I would do a lot of editorial-type workon those things.But at the same time, maintaining my own free software projects... uh...in my spare time.And now I'm at Creative Commons,and Creative Commons - surprise, surprise -pays me to uh... look after free software projectsand to maintain and write free software.And so, um,if you would like to work in this kind of field,I would suggest you... become reasonably good at programming,you know your licenses, know your backgroundand kind of have a... strong desire to make free software a realityand people need free software developers.Um, WordPress is a great example of a very, verycommon piece of free software,that's not going away anytime soon.People will always need people to write plugins,help the people, be supportiveUm, write themes, write add-ons for WordPressAnd if you're really good at free software development,then you can even, y'know, work on WordPress itself!Y'know WordPress is a community project, too, so people need...The people who work on WordPress are volunteers, primarilyin their spare time.But, some of them also work for the company behind WordPress.And so I think... the very best WordPress developers in the worldget the opportunity to work, full-time, as their paid job on WordPress.You have to start somewhere,you don't just get a job in free software from nowhere, but you can uh...If you already have a job writing programming, doing programming stuffyou probably already use some free software tools.See if you can convince your bossto allow you to release your changesout to the world. And if you can, thenfind the right community and give them the changes backand you could very soon find yourself doing that for a living.How does it work in terms oforganizing teams of developers to kind of maintain free software.The way it really works is that, um...If you are a developer and you enjoy a piece of software,you can be part of its upkeep.So, generally speaking, most software that's free softwareis developed in public, using sites like Sourceforge historicallyor nowadays in things like Gitorious or Github.You can go along, get a copy of the code,find bugs, fix bugs, add new featuresand kind of push that code, that you've made,back to the main development team.In general, what happens is there's kind of a process wherebyYou send in a few bugfixes,a few, like, suggestionsand then eventually, after a while,they get kinda like, \"This guy's okaywe'll let him into the team.\"And then, you become part of that development team.If they use Git, for example,go and check out a copy of the Git codeand, make your changes locally,but also, as you make your changes, check those changes into Git.So that you have your own version of that code locallyYou can kind of back-and-forth through itand kinda see what you did along the way.And when you makes commits to that good Git projectmake good comments, so you kind of remember what you did.Don't just leave a one-line, sarcastic response, which is what I often do.Try and leave good commentsand that way you'll kind of be able to go back in timeand see what you did.And then when ultimately,when you eventually get those changes adopted bythe big community project,they'll be able to see the same thing you can seethey'll be able to see what you did.And so, it's not so important to structure your code super-wellbecause, as long as you kind of make it work and you make good commentsthen that can be cleaned up afterwards.Look at companies like MySQLand redhat, and they've made lots and lots of money from doing free software stuff.So, you would definitelyCanonical are one one of those are they as well?Canonical does have teams developingcertain pieces of free software.I think the difference between Canonical and redhat is thatredhat develops software that's generally widely usedby all the free software users,like Gnome Desktop and other thingswhereas I think what Canonical does is a different modeland they actually develop kinda their own free software.They release it as free software but it's mostly used forthe Ubuntu community and the Ubuntu users.It's not so widely used outside of Ubuntu.That's not an unreasonable thingthat's a, y'know, perfectly valid way to create software, y'know.And, of course, there's nothing stoppingthe teams at redhat and other companies and other organizationsfrom taking the Canonical code and reusing it for other things.y'know, so...If you are gonnatake code from other projects,and you can of course do that,then you make sure that the code you take is under a license that workswith the license of the project you're taking things into.So, for example, if you're taking code from, um...WordPress, you can't really take that code and put into a project that not under the GPL.You would have a hard time wrangling thatand you would have an even harder time getting your changestaken in by another projectbecause that file would then be underat least partially under the GPL.You should never let that kind of thingdissuade you from taking stuff,because it's free software, it's there to be takenbut, at the same time, you should just know the obligationsthat you then have, um, as a developerto kind of make your changes available to people.So that, y'know, when you take your widgetfrom something that's GPLand you put it on the web,you then have to make sure that people can get the source codeto your changes, too; you can't just uh...Is that the share-alike sign?That's the share-alike part of things, exactly, yeah.So if you have companies that for some reason don't want to use free software,well then, take advantage of themand sell them a copy for 2,000 dollars or 10,000 dollarswhatever you can get,but, the same product should be free software at the same timefor those of us who are in the community that wantto take it and improve it and share it.\n"