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
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
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.