Don't Like It? Code it Yourself
codinghorror.com
codinghorror.com
Actually, I have submitted lots of (mostly small and inconsequential) bugs and minor features over the years, to projects such as the Linux Kernel, Tcl, Erlang, Ruby, Rails, Apache, and probably lots of others I'm forgetting right now. I actually enjoy it quite a bit, come to think of it - there's something cool about diving in and studying something new and different, and a thrill that comes with nailing the bug. Sometimes, the knowledge required to actually fix it is too much, and you have to settle for sending in a good bug report, but in other cases it's very much possible to hack up quick, useful things despite not knowing much about the system in question. And, no, I'm not really that great a programmer... I'd consider myself fairly average.
I suppose where he might be right is in more end-user oriented things. All the things I've listed above are programmer tools or closely related, where this sort of behavior is the norm (a cynic might note that Jeff comes from the world of Microsoft, where it is not). Things are a little bit more complicated when it comes to things that are not by/for programmers. I should write more on my own site about the economics of open source...
It's totally in-character for him to be unwilling to even try diving in himself.
http://journal.dedasys.com/2009/03/27/codinghorror-and-open-...
My conclusion is that he doesn't really have a lot of knowledge of open source business and economics, although to be charitable, it's certainly a more complex field than proprietary software.
Agreed. I think most programmers do this. I know I do, and I know all of my friends do. It is not hard at all -- first you check out the repository, then you make your change, then you send the patch. Making a change to someone else's software is just like making a change to yours, except they might indent a different number of spaces, or something.
You have to do this for your own code, too, unless you have a photographic memory.
By offering money for bug fixes/new features, it would bring new programmers to projects that wouldn't have had them before. This has benefits and issues:
It could (as Jeff suggests) reinvigorate dead or near-dead projects, and get specific updates completed that trouble a small set of users.
It could also infuse the open-source community with a bunch of mercenary programmers, who have no interest in the well-being of the project, and simply want to get their money and get out.
I'm not sure where I stand on the issue, but I think it's an idea worth a little more ispection.
In the long run, Jeff's idea could mean more people making a living by hacking open source. I would guess that it is a good thing on net.
Isn't this what companies like IBM, Sun, and the Mozilla Foundation already do?
A programmer that works on a single company's software has an incentive to work to improve it, rather than get simply get paid, as he is out of a job if the software fails. This is similar to a standing army--there will always be outliers, but more or less everyone is committed to achieving the final goal.
Mercenaries in both software and armies aren't interested in the goal--only the money. As their incentive is different, their output will be different. Just as I wouldn't trust mercenaries to follow the geneva conventions, I wouldn't expect software mercenaries to be focused on code clarity and bug prevention. Once the software works, they want their money, and they want out (Han Solo Syndrome).
As open-source developers today generally contribute from a general sense of goodwill and their personal interest in seeing the project succeed, they have much the same output as those in the rank and file. If I was going to add them to my (already quite strained) metaphor, they would probably be somewhere between the Peace Corps and Militiamen--committed to the cause, regardless of payout.
I realize that this metaphor is becoming a stretch, but I still think it rings true. There is a distinct difference between those doing work because of a commitment, those doing work because of a belief, and those doing work simply for money.
I guess this boils down to your premise that contractors are only working for money while someone working at a company is working for more than money. You have to make the case for this premise which seems wrong to me.
It isn't simple. But it is perfectly valid to hire a programmer to add a feature to an existing open source project and to offer the work product back to the project.
What doesn't work at all is attempting to guide a projects direction by playing political games with funding.
Psychologists talk about two kinds of motivation: intrinsic and extrinsic. Intrinsic motivation is what drives you to do something regardless of whether you will receive a reward. Why do you spend an hour cleaning the inside of your stove? Nobody looks in there. Your intrinsic motivation compels you to do a thorough job. We all have it -- in fact, most people start out with the desire to excel at whatever they do. Extrinsic motivation is the drive to do something precisely because you expect to receive compensation, and it's the weaker of the two.
The interesting thing, according to psychologists, is that extrinsic motivation has a way of displacing intrinsic motivation. The very act of rewarding workers for a job well done tends to make them think they are doing it solely for the reward; if the reward stops, the good work stops. And if the reward is too low, workers might think, Gosh, this is not worth it. They will forget their innate, intrinsic desire to do good work. </quote> http://www.inc.com/magazine/20090101/how-hard-could-it-be-th...
For instance, I'll add feature X for $ and provide a patch or new RPM as the result.
The intrinsic developers can avoid demotivation (!) through "lack of awareness" of the money or patch. The patch can later be incorporated if the intrinsic developers want it.
1. User identifies bug, posts on SO
2. SO participants try to fix, but realize it's an underlying code bug.
3. User puts up an eLance-like ad within SO, offering some money for the bug fix
4. SO participant accepts, and fixes. SO takes a cut for facilitating transaction
Still I think that there is a fundamental flaw about all this: even if without a business model even open source software is a product, and if you turn it into a service in order to make some money there is something wrong about it.
It is probably better to ask for sponsorship in a different way: donations, write a book about the project and put it on lulu, ship a pay-only version of the software with some kind of feature not really needed but most users but absolutely useful for Enterprise-style users, and so on.
Cheers, Salvatore
I don't understand what's wrong here. Lots of fast food restaurants just use the food to get you in the door so that they can make a killing selling you sugary drinks. So long as you're making money, what's wrong here?
this are, in many ways, more a product than a service. It's the same few things, with the same price, with the same organization, replicated N times in different places of the country.
Btw what's wrong is that if you are creating a successful product you should focus on the product. This is how sofware works.
Photoshop is cool? It wins on the market, sells a lot of copies, they can focus more on the product. Immagine this turned into a service.
Photoshop is cool? You run a service of help desk and consultancy about it. Tons of people needed and high costs. Want to serve N customers? You need N/K people. Does not scale, you don't focus anymore on the product but on the service you are selling.
Don't be ridiculous!
There is no "this is how software works." Software is the result of someone's work. If that person wants to sell that work, good for him. Who are you to decide how someone else should make a living?
Why do we persist in maintaining this silly premise that "Software" is somehow special or unique? It's a product just like anything else and as such it can be marketed, sold, rented, leased or just given away freely by anyone who makes it.
So you can focus on your product and make it better and better.
If I decide to make money from software by using it as a service, why shouldn't I? Maybe my natural gas prospecting software is world class OSS that I downloaded from SourceForge and tweaked a bit, but the real money comes in because I bundle it with my well-drilling services that I couldn't otherwise sell.
You're trying to limit what other people are doing to what you can imagine, and that's what I take issue with.
So branch. Nobody is forcing you to add the requested features to your main product... this will also encourage people to write good late-bound software - where extensions are trivial and play well together.
Check out http://www.fossfactory.org/ .
http://micropledge.com/ used to be similar, but they changed their model. The creator used to be on HN a fair bit, not sure if he still is.
I wondered if someone would mention microPledge here. Two major reasons we put it on hold: 1) issues with PayPal -- payment providers and CC companies don't like you holding funds in trust, and 2) it was just really hard to get paying customers to use it (we allowed open source projects to use it to collect funds for free, which may have been a bad idea).
Either that or you're a hobbyist in it for love and fun and you want to try doing it yourself.
What's being suggested here? Don't pay but then do pay? Atwood is so confused.
Pay but give the source back to the community.
I think it's brilliant.
However, it would probably be little more than the dozen "find a third-world-or-starving-student-coder" sites that already exist. It would just be branded differently.
http://news.ycombinator.com/item?id=510309
This wasn't uninteresting though.
What he is arguing for is called commercial software. Buy software from good software companies that use the money to feed, clothe, and house the programmers that write it.
Look, I'm all for open source software, but the current model is just ridiculous. Open source software is worse than herding cats, as my girlfriend would say, it's like "herding nerdy cats." Everyone has their language of choice, their platform of choice, their development environment of choice, their database of choice, their coding style of choice.
The end result is that every open source project out there has a system that is so different from all the rest that it would be almost impossible to participate on more than one or two without 6 boot partitions and 3 servers. I have tried to participate on multiple open source projects, but I only have 40 GB on my windows partition and I don't have the time to manage all those environments.
So what did I do? I started a company that builds a platform that enables anyone to build a website from top to bottom using only a browser. No development environments to install, no new languages to learn, only JavaScript, HTML, CSS, and SQL and these languages are required to build any website out there. You could use something besides SQL if you want, but none of the alternatives are standard. I wanted to use /standard/ technologies.
If we are going to move forward in this world, we have to stop expecting other people to do the work and if we want other people to do the work, we have to make sure they have food on the table and a roof over their head and clothes on their backs. If they don't, how are they going to write good software?
Open source makes me angry. It devalues our work. No one gets paid for it and if they are getting paid for it, it's rarely of the quality found in the commercial equivalent.
That's just reality folks.
and the quality argument is also ridiculous, the internet runs on open source software, this forum is on open source software (possibly a bad example), along with pretty much every single site you use.
and as for all these "multiple platform", open source desktop applications are typically build, unsurprisingly, on an open source platform, i think youll find if you ran a linux variant you could contribute to 90% of all open source project without having to switch.
and as for "devalues" your work, the market decides what your work is worth, not you, if your ability to make money is crippled by what people do in their spare time, I would suggest rethinking how you are going about things
I'd feel better about your rant if you weren't a) biased against the idea and ethos of FOSS, and b) selling something.
MySQL is not as good as either MS SQL Server or Oracle and you can pay for MySQL Support from the company that produces it. PostgreSQL was also started at a university by professors getting paid to eat and buy clothes.
PHP doesn't hold a Candle to either .NET or Java, which you should have listed if you wanted to really try to convince me I'm wrong. Java is pretty good, but is commercially funded and those programmers get to eat. There's a lot of fanboyism around PHP and I'm not one of those.
Perl is awesome. It was created by a programmer at a publicly funded organization - NASA. It should be open source and he also got to eat while writing it.
Ruby is a great language if you know how to "drop down into C."
Firefox is commercially supported by Google search results. They make millions of dollars a year and honestly, it should be way higher quality than it is considering the budget they have to work with. Opera kicks firefox's butt all over the place. Firefox is good, don't get me wrong, but it doesn't change my mind.
The examples you give are a tiny fraction of the open source environment and most of them do not contradict what I have said.
Here's a challenge for you. Get a fresh laptop running whatever operating system you want, then see how long it takes you to fix an open bug in at least 3 of those products you mention.
The fact that many of these projects were started by college students, grew out of commercial enterprises, or have a business model that allows people to get paid for working on them doesn't validate your claim that open source devalues your work. If anything, the opposite is true.
Here's a challenge to you: install any of your closed-source proprietary products that you're in love with and see how long it takes you to fix an open bug in one of them.
It has been a VERY rare case where a bug has been fixed for me in an enterprise package. Work-arounds are the norm (and are painful).
You are missing the point. Programmers, we love what we do. I know that. I know it makes us happy to write good software and to tinker and experiment. I do it myself. I give away work all the time. I find bugs, I fix bugs, I give away code I've written in community forums and talk to people and help them find solutions to the problems they run into.
When a business person comes up to you and says, "Why should I pay you when I can get it for free?" That means your work has been devalued by a free version. The person writing that free version feels good because more users are on the system, but more users on the system does not pay the rent.
The current system of open source is flawed at its core. It means that people's skills are not sufficient to feed them.
Take the example of social networks and free websites. How many have gone bankrupt and had to lay off all their employees?
Imagine if actors in hollywood worked for free? Writers worked for free? Singers and directors and bar tenders worked for free? There'd be no movies or only the movies on Youtube that people put up there to see how many hits they get.
Can't you see that mathematically the equation doesn't balance?
Imagine if bankers on Wall Street worked for free.
Just because we love what we do doesn't mean it that work should be given away for free. Someone in another thread mentioned this very hacker news site is open source and yes I know that and I also know that pg has a bazillion dollars in the bank. Why isn't he paying someone to build it? Because he loves hacking, I know, but he is taking a job from someone. He's making the world a better place, yes, I do not discount that.
I do not discount that the world is a better place -- right now -- for many because of free software. I would say it is disporportionately better for the business commmunity that doesn't have to pay the billions of dollars their software is worth and worse for the programmers that are now being laid off in silicon valley because no one needs them to write software they can get for free.
It doesn't work.
Did you know Computer Science graduation rates are on a steady decline? Why? Because the jobs are too hard and they don't pay enough? Why? Because the products those college graduates would get paid doing don't exist because they products can't be sold for wages that can support them.
The very foundation of our society is in jeopardy because we are not paying for the work that is increasingly more relevant to its existence. Not only are college graduation rates in the computer sciences declining, but employers are complaining about the quality of programmers they are seeing coming out of colleges.
As long as we give away our labor for free, this trend will continue. There are good examples of successful quality products that have come out of the open source community and great things have been done with those products that improve many lives. I do not discount this.
What I am saying is that if this trend continues, salaries will continue to decline and those who could get paid decent salaries that could feed a family and allow them to concentrate on building the information infrastructure our world needs to continue learning, asking questions, sharing and gaining knowledge will stagnate because the individuals with the capacity to be creative in the industry will take higher paying jobs in other industries like banking and finance and look what high paying jobs in those industries gets the world.
1. Demand for programming is variable, not fixed. Our demand for great programmers is arguably much higher today than it would have been without OS, because so many companies only exist today because they could afford to launch using OS, not to mention all the hybrid business models that make money off of OS (Sun, MySQL, Mozilla, etc).
2. Technology makes some people redundant. That's the nature of progress, and every major technological shift is accompanied by hand-wringing over all the jobs that will be lost. But in the end, technological progress almost always results in net job gains, net productivity gains, net wage gains. Adapt.
I think your main problem is with free market economics, not open source software.
Your comments here are pretty hard to parse.
90% of everything is crap that includes open source.
People do get paid for open source software. If you have a known OS project on your resume you will get better economic opportunities.
If woods was as cheap easy to copy and share as software, carpenters would be building giant Trojan horses in their spare time, to show of their skills and simply for the fun of it.
OS software does not devalue quality software.
If software is important to you, as in bottom line important, then you are not just happy to pay for it. If the software that works for you happens to be free you STILL look to pay someone to make sure it keeps working.
OS kills no-quality software.
I really like this analogy. Or whatever it is.
Or perhaps the builder knew that was going to happen and doesn't care. Or only cares that his reputation as a great builder is spread.
If some commercial horse building operation is put out of business by this, I'm surprised they were ever able to stay in business even without the free competition. Perhaps 100% of their market was pimply teenagers who only used wooden horses as toys.
You seem to be complaining that people are diverse. That's a pretty odd rant to be having. Also, why are you using a windows partition to participate in open source?
You condemned me for complaining about a diverse world, which is not true AT ALL. And then you imply that I should not be using windows. So you condemn someone for what you believe is complaining about a diverse world and then ridicule that person for using a windows partition to participate in open source as though there is no open source on windows?
How diverse of an opinion is that?
If you're running Windows on a 40GB partition, that implies that you are running something else as your main OS (or you need a new HD). That leaves OS X and Linux, and both are probably more widely used by and closely identified with the open source community, so why are you doing your open source work on Windows?
That's how I read it, anyway.
I'm all for diversity, but use the best tool for the job, or quit complaining.
May I kindly suggest a sticky-note at your desk: Don't drink and post.
Whether that is a labor of love or not is irrelevant. Love does not pay the bills.
If it did, I'd be a bazillionaire too...
I'm not sure who you think is getting hurt in this situation. Is it supposedly some third party who wanted to develop the same thing and charge money for it and now he can't? That's like saying that it's immoral for jobs to be replaced by technology. It's called progress.
Instead, we will be paid to build rockets and bombs that kill people. We will be paid to construct elaborate financial systems that make profit for a few at the expense of many.
I think the world around us is one that pays people to sacrafice their conscience for a dollar. Why not instead do we pay people to do what they love? If we paid people to do what they love, there would be more love. More people would love their jobs, more people would be doing good things.
Instead, we pay people to be greedy. We pay people to kill. We pay people to do bad things because if I'm going to do something bad, someone is going to have to pay. Actually, I got tired of using my skills to do bad things.
I would rather live on the street than build a missile that is going to kill a child, yet I had a conversation just the other day with employees of Ratheon. I said, "Why don't all the hyper intelligent people out there building the bombs and the missiles and the drones guided by operators in Las Vegas just stop building that technology?"
What was the answer? "Because there's /tons/ of money in it!"
* sigh *
We have replaced the love of money with the love of work. We are paying for the erradication of love.
Look, I know where you and many in this thread are coming from. I know why you are negging me. I understand it. I get it because I too give away my labor for free. I love the feeling I get when someone's life is made better because of something I /gave/ them. I know my Karma in the real world, though not in this thread, is increasing like wild fire -- the people who use what I build love it! They /love/ it! It makes their lives better.
But I am not talking about me. I'm talking about an industry. I'm talking about an industry that is working itself out of a job in exchange for a warm and fuzzy feeling. I do not believe it is sustainable.
Technology is sustainable. Technology will continue to improve. I will never go hungry, because the skills I have are in great demand and there are way more people looking for people who can do what I do than there are people who can do what I can do, so I am not worried about myself.
I am worried about society. I am worried that this is not sustainable. I am worried that free labors of love are going to support labors of greed and crime and death and destruction.
And it worries me. It feels like this hasn't really been thought through. The high we get from giving away our labors of love is just that -- a high -- and I feel a crash is inevitable, perhaps we are in the thick of it now.