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
-
Wine 10 Includes Plenty to Excite Users
With its latest release, Wine has the usual crop of bug fixes and improvements, along with some exciting new features.
-
Linux Kernel 6.13 Offers Improvements for AMD/Apple Users
The latest Linux kernel is now available, and it includes plenty of improvements, especially for those who use AMD or Apple-based systems.
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.