Why Code For Free? Linux/FOSS Devs Speak!

By: Carla Schroder
Wednesday, July 29, 2009 11:36:11 AM EST
URL: http://www.linuxplanet.com/linuxplanet/reports/6807/1/

Why, How, Geekcreds, Skills

Last week I talked about some the advantages of Free/Open Source software for us end users. Today I'm going to do something no one has ever done in the history of punditry, and that is ask actual software developers why they prefer FOSS. I received so many excellent responses that I have split this into two parts, and the second part will run tomorrow.

Why and How?

Akkana Peck is a popular LinuxPlanet author who writes programming-for-beginners and Gimp howtos, is the author of "Beginning GIMP: From Novice to Professional", and is along-time open source developer. She says:

> How can a dev make a living writing Free software?

By working for a company that pays people to develop free software. There are lots of such companies for kernel developers, especially those who specialize in network and storage, but there are also companies paying people to develop other open source products -- Mozilla, Canonical, Redhat, Novell, Oracle and a number of smaller companies. And there are a lot of university people writing open source software as part (probably not all) of their jobs. I'd like to see government jobs doing that as well, but there don't seem to be many.

> Why should anyone code for free? Especially when they're seasoned professionals, and not noobs looking for experience?

  • Scratch an itch: create programs that do something you need, the way you wish they'd do them.
  • Chance to write the sort of code YOU want to write, not what your boss wants you to write or some committee says you should write.
  • Chance to learn new technologies, either because you find them exciting or as resume-building material you can't get through your job.
  • Chance to use a language you like better than the one they use at work.
  • Fame and glory. Okay, that's flippant, but it really is a chance to get your name on something that's useful to a lot of people, which a lot of programmers don't get from work (a lot of programming jobs involve writing little one-off stuff few people will ever see, internal websites, business apps, etc.)
  • Chance to get known in a community as a good developer, so you can eventually get paid for working on that or similar projects.

That last one is especially important for anyone trying to break into programming jobs: students, career changers, people with the wrong sort of connections who got stuck in a dead-end job instead of real programming.

Sysadmins Code Too

R. Daneel Olivaw writes:

Well, I'm not a programmer, but as a Linux Sysadmin, programming is kinda useful hobby ;)

There are some things that I like in open source software. When you write an app for your job, it has to ... just work ! Often, mainly in small companies, the code is reviewed only by yourself ... or the programmer who replaces you. In such cases, coding ugly is an option. No one will evaluate you correctly about your work, and if you manage never to patch or reuse the code, you seem to have "won" the "game".

If the code is released, there is a chance some other programmer will read your code. There is, in my view, something exciting about that. It means that some other "professional", a peer, may evaluate your code, maybe even learn from it. Knowing that, I'd be encouraged to write something clean, stable and, in some extent, smart.

Also, releasing the code in the wild, will need you to harden it : you never know what setup will run your thing, and I'd be fierce to know that "my" code was able to get through any platform. Therefore, the code has a chance to be better and cleaner.

Last but not least, there may be people that use your code. They may see it lacking a function or notice a bug. They may even write you back to get things fixed. But your free time is valuable, so the better the original code, the easiyer it is to fix errors. If the code is clean enough (always comment your code!), some other programmer may even patch it for you. And you won't waste your free time patching badly written programs.

Finally, the reward: when you post some code on a list or a forum, some other people you do not know, may compliment you for the "professional and solid work".

Doing What You Love, Community

Aaron Seigo is a lead KDE developer, and has some insights both the business and personal rewards of FOSS:

> How can a dev make a living writing Free software?

One can make a living writing Free software in just about as many ways as one can make a living writing proprietary software: consulting, working for a company that relies on Free software in some way (which is a huge percentage of technology companies, large and small, these days) or starting your own business. Business models vary from selling services around Free software such as installation and support to selling customizations to creating products that use Free software such as routers, PBXes, phones, mobile devices or web sites.

There is no end to the business model variety that includes Free software as a key component as can easily be seen by looking at the diversity in the Free software ecosystem today: Red Hat with their server operating system offerings, IBM with their hardware and services offerings, Nokia with their mobile devices, Google with their web services, etc....

> Why should anyone code for free? Especially when they're seasoned professionals, and not noobs looking for experience?

Money isn't the only reward that motivates people; in fact, in surveys of working professionals in various fields the amount of money made is usually not in the top few reasons for working where they do. Those involved with Free software get a lot from their involvement besides just monetary reward (though many get that as well) including networking and being in a community with others with similar interests, the pure enjoyment of creating things and even the achievement of social goals such as increased freedom in the world around us.

For many it simply comes down to doing something we love to do. Often the phrase "I'd be doing it even if I didn't get paid for it" is uttered by people in jobs they really enjoy; some of us actually put that into practice.

> What does a person get out of writing Free software?

Personal satisfaction from creating personally interesting things, recognition from one's peers, a great community of people to belong to, networking with other professionals, skill improvement, the freedom to work on things you'd like to work on and the fulfillment of seeing others use and even improve on things you've made. It's a great opportunity for young developers to improve their chops, for people in the industry to find opportunities and meet some great people, for entrepreneurs to create their own magic and companies and for those who simply enjoy creating things with computers to indulge in a great hobby.

Getting Closer to Users and Other Coders

Kathryn A, an IT professional since 1989, codes both professionally and as a hobby, and offers insights into both worlds:

I've moved away from hardcore professional coding (C/C++/X) to smalltime coding (Perl/PHP/XSLT web stuff), webmastering, and technical writing. Still at the same workplace, though.

So. Why do I code for a hobby? What do I get out of it?

1) Scratching an itch.
I write stuff that I want to use for myself, to solve some problem I have. I think like a tech: if something doesn't work quite the way I like it, if something I do regularly takes more than three steps to do, and it's in an area I'm confident about coding for (or an area I want to learn how to code for), then I'm likely to write some code for it.

2) Sharing the wealth; a gift culture.
If I've written something that I use, that's more than just a scrappy little script, then I think "Wouldn't it be cool if someone else found it useful too?" I get a little warm glow when someone uses my stuff, just like I get a warm glow when someone reads and likes my fan fiction (which is another arena where people don't comprehend why someone would want to do this stuff without being paid for it).

2a) Positive feedback.
Another aspect of this is positive feedback; with professional coding, it's just a job, people don't *thank* you for it. With FOSS, yes, I've gotten emails with people bitching, but more often I've gotten emails with positive remarks along with the bug reports. I know that *I*, as an individual, am helping people. Which is cool. (and this also is one of the reasons I write fan fiction - the feedback is much closer and much quicker than with pro writing)

3) My own master.
I can work on what I want, when I want. When I feel like hacking Fvwm, I can do that; when I feel like writing my own static photo album script, I can do that.

3a) Biting off what I can chew in one mouthful.
Part of this is also being free to work on small projects (or modules) where I can understand the whole thing. I like understanding the whole thing; it's a contrast to my professional coding life, where the projects are too large for any one person to understand in depth.

4) I want to code, not run a business.
If I wrote shareware rather than FOSS, the tiny amount of money I would get for it would not compensate for the huge hassle of having to handle the money: setting up as a business, setting up accounts, yadda yadda yadda.

What kind of FOSS do I work on?

Generally one-man projects, or modules of a larger project (see comment above about not liking large projects).
- a number of Perl modules/scripts on CPAN
- a few PHP modules for PmWiki
- a theme for fvwm-themes (which I contributed, but no longer maintain)
- some DTP-related styles for LyX

A big thank-you to Akkana, Aaron, Kathryn, and R. Daneel for contributing to this series. Come back tomorrow to hear some more perspectives on why be a FOSS coder and how the heck do you make a living?

Carla Schroder can write "Hello World!" in 12 different languages. And is the author of the Linux Cookbook and the Linux Networking Cookbook (O'Reilly Media), the upcoming "Building a Digital Sound Studio with Audacity" (NoStarch Press), a lifelong book lover, and the managing editor of LinuxPlanet and Linux Today.

Copyright Jupitermedia Corp. All Rights Reserved.