Paid vs. Unpaid
maddog's Doghouse
"maddog" takes a look at various factors that go into creating good code.
Recently, I was talking with a member of the Free Software community who made a statement that showed disdain for programmers that were paid versus those that volunteered their time. When I questioned this person more closely, he expressed the view that volunteer programmers take more time and are more careful in writing code than paid programmers. "You can see it in their code," he offered.
I have been in the computer industry since 1969. I have known good programmers, not-so-good programmers, and downright poor programmers, and I really have not seen any correlation between volunteering and doing a very good job in programming. There are more important factors that determine "good code" from "bad code."
One factor is the programmer's experience level. Are they just starting and, therefore, do not have all of the necessary skills for writing well-structured code? Perhaps they have not had a lot of practice making their code follow the coding style of the project they are working on – making it look like only one person has written the code, rather than many people.
Do they have a good understanding of the underlying principles of the project, exactly what it is trying to do, and what the parameters of the project are, or are they just trying to put in a patch and not seeing the overall picture?
I will grant that sometimes "paid programmers" are under a managerial time constraint in getting their code submitted to the code pool, and sometimes quality assurance people do not give the testing the coverage it needs due to schedules driven by staffing and time constraints.
Volunteer projects and programmers can also have monetary, staffing, and time constraints. Volunteers have to eat, too, so they typically work at some other "day job," so their time for programming and testing of their volunteer job can be limited.
The biggest difference, I think, is that volunteer programmers usually work on projects that really interest them, and which they might use in their daily lives. Some paid programmers (not all) may take a job simply for the money and not even use the software that they are developing. However, this is not a solid indicator of programming quality.
Looking at the history of Free and Open Source Software, however, many people currently paid to work on projects started as volunteers. The core kernel developers are a good example of this. Many started as volunteers, but various companies and agencies rationalized that if they paid the kernel programmers to develop the code, the programmers would be able to work on Free Software many more hours each week and therefore bring desired features out faster. And even when paying these programmers a good salary, it was cheaper overall for the different system vendors (IBM, HP, Dell, etc.) or chip vendors (Intel, AMD, ARM, Motorola, IBM) to have these skilled programmers as paid employees (with health plans) than to develop their own complete operating system groups.
This "paid volunteer development" is not limited to operating systems. Other projects are also sponsored or funded by groups who are making money off Free Software.
Many times, volunteers are also paid because they make their own living off Free Software. They use the software in their day jobs, and by improving the projects they are working on, they make their own day jobs more efficient.
Over the years, there have been many attempts both in the amateur and professional space to improve the code that programmers develop – project reviews, testing grids, language sensitive editors, IDEs, and more – but none of these are real differentiators between the unpaid and paid programmers. I believe the difference lies in each programmer's skill and work levels, paid or unpaid.
When I started programming in 1969, most programs were distributed in source code, and most programs were written by the people who would later use them. There were few people who programmed for someone else exclusively: the professional programmer.
Right before I graduated from college, a professor said to me, "Jon, you will never be able to earn a living as a professional programmer." I am still trying to determine if he was right.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.
-
SUSE Offers CentOS 7 Support with Liberty Linux Lite
SUSE's Liberty Linux support offering now includes CentOS 7, which means businesses won't be forced to migrate those servers for some time.
-
Ubuntu's App Center Finally Supports Local Installs Again
If you regularly download .deb files and would prefer a GUI method of installing, Ubuntu has your back.
-
AlmaLinux Now Supports Raspberry Pi 5
If you're looking to create with the Raspberry Pi 5 and want to use AlmaLinux as your OS, you're in luck because it's now possible.
-
Kubuntu Focus Releases New Iterations of Ir14 and Ir16 Laptops
If you're a fan of the Kubuntu Focus laptops or have been waiting for the right time to purchase one, that time might be now.
-
NixOS 24.05 Is Ready for Prime Time
The latest release of NixOS (Uakari) has arrived and offers its usual reproducible, declarative, and reliable goodness.
-
Linux Lite 7.0 Officially Released
Based on Ubuntu 24.04 and kernel 6.8, Linux Lite version 7 now offers more options than ever.
-
KaOS Linux 2024.05 Adds Bcachfs Support and More
With updates all around, KaOS Linux now includes support for the bcachefs file system.