Do Volunteer Programmers Produce Better Code?
Oct 13, 2011 5:00 AM PT
Those of us who love Linux and other free and open source software are already well-acquainted with the many benefits of FOSS: flexibility, security, customizability and freedom from vendor lock-in, to name just a few.
Quality, of course, is another big one, at least in part because there are typically so many people around the globe constantly improving the code.
There may also be another reason behind that superior quality, however. Specifically, it was recently suggested that volunteer programmers actually write better code than paid ones do.
'One Word: Dilbert'
"Why do volunteers write better code? One word: Dilbert," wrote Carla Schroder in a recent story on LXer. "It's not that devs who work for big companies have inferior skills -- it's all the roadblocks businesses put in the way of the people who care about the work: the marketers, the useless in-the-way managers, the corporate goals which are so often antithetical to releasing quality products that customers like, and all the time- and talent-wasters that make corporate America more like adult daycare."
Schroder's piece was spurred by the comments of Michael Meeks, SUSE's desktop architect and senior LibreOffice developer, in a discussion of the behind-the-scenes goings-on at the LibreOffice project, she explained.
Schroder herself, however, clearly agreed.
"There is another reason for volunteers writing better code, and I'm far from the first one to mention this -- reputation," she added. "FOSS developers sign their work; there is nowhere to hide."
'It's Human Nature'
As for the rest of the FOSS community? Well, let's just say the topic seemed to strike a chord.
"Of course volunteers do better work as long as they are in it for the long haul," opined blogger Robert Pogson, for example.
"Brief involvement does not count for much except bug killing," Pogson added. "It's human nature to do better work when you are doing something you choose to do instead of something the boss orders. That's true for chopping wood, gardening or making software."
'I Certainly Agree'
"My experience is that independent contributors indeed write better code than employees," agreed Chris Travers, a Slashdot blogger who works on the LedgerSMB project. "Although there are exceptions, a project that is up and running can reject those easily."
So, "in that regard, I certainly agree that volunteers do in fact write better code, but I'd have to include those who do sponsored development as a consulting practice."
Consultant and Slashdot blogger Gerhard Mack agreed with Schroder's "reputation" point, in particular.
"Volunteers don't always write better code, but a skilled programmer will often produce better code when his/her peers are watching," Mack told Linux Girl.
'The Busted Toilet Problem'
For Slashdot blogger hairyfeet, on the other hand, the idea was downright laughable.
"Do volunteers write better code? BWA HA HA HA HA," hairyfeet exclaimed. "Oh wait, you were serious? BWA HA HA HA HA!"
In fact, "volunteers are exactly what is WRONG with FOSS," hairyfeet opined.
"I call it the busted toilet problem," he explained. "Like fixing a busted toilet, doing bug fixing and QA is long, boring, nasty and thankless work, so if the guy isn't getting paid to do it? It don't get done, PERIOD."
When software has "show-stopping bugs" that don't get fixed, "then free as in beer becomes free as in worthless, because if it don't do what I need it to, what good is it to me?" hairyfeet concluded.
Last but certainly not least, Barbara Hudson, a blogger on Slashdot who goes by "Tom" on the site, took a more measured view.
"I know it's going to sound like a cop-out, but I say, 'It depends,'" Hudson told Linux Girl. "It depends on the task at hand, the final objective, and what resources (time and money) are available."
For trivial tasks, for example, "if whatever you can throw together quickly gets the job done with no errors, then it's 'the best code' even if it's something so bad you hope nobody ever sees it," Hudson explained.
On the other hand, "when it comes to code that's going to be used for years, whether in a commercial or non-commercial project, even the definition of 'better code' is subject to debate," she added. "For example, do you try to anticipate future needs and change requests by including extra code, or put in the minimum necessary to get the current job done?"
'Empowered People Are Motivated People'
What's not debatable, though, "is that micro-managing by non-programmers leads to bad code," Hudson agreed. "We all have our horror stories. A lot of them come from management implementing new 'controls' on developers to avoid dealing with the fact that they caused the problems in the first place."
On volunteer projects, by contrast, "contributors -- whether they're managers, programmers or artists, testers or documentors -- are all in it for a common cause," she noted. "While the give-and-take can get intense, there's no 'I'm paying you to do this so you're going to do it this way or you're fired I don't care what you think.'"
Instead, "people are expected to be accountable to each other and are owed an explanation if there's a need to change something, or to do something differently than previously agreed upon," she added. "This two-way accountability empowers people, and empowered people are motivated people. Motivated people put more of themselves into their work, both in terms of effort and the extra personal touch."
'In Vino Veritas'
Because of the distributed nature of volunteer projects, meanwhile, "there are far fewer Powerpoints," Hudson said. "Powerpoint kills more brain cells than booze ever will."
In fact, "the time and money wasted in paying people to prepare and sleep through Powerpoints would probably give a better return if it were invested in a round of drinks and frank discussion at a local pub or restaurant," Hudson suggested.
Of course, "the risk is that management might not like what they hear after a round or two of 'in vino veritas,'" she added.