Crowdsourcing Software Development to the Masses
Lucas123 writes "Computer World is running a piece on Crowdsourcing. That's a catchy term for the practice of taking a job traditionally performed by employees or a contracted company and outsourcing it to an undefined, large group of people in the form of an open call on the Web. Article author Mary Brandel views it as a viable way to develop cheap but innovative software. Sites like TopCoder and their coding competitions are becoming more popular with big name companies like Constellation Energy because programmers who take on the job are global, offering many different perspectives on any one job. 'The creativity and innovation of how people are rationalizing these designs and building components enables us to interject a perspective and approach that normally we wouldn't have access to,' Constellation's director of IT said." Is there any potential here, or is this just a buzzword bad idea?
All of "open" and reward based programming schemes are merely ways to avoid hiring programmers. "Let's find someone to do it for free." Only morons would do it.
This is my sig.
TopCoder has nothing to do with people accomplishing work. It's a competition, nothing more.
I bet this will be about as successful as my last idea, cokesourcing. I'd open my garage door in the morning and there would be piles of cocaine for anyone to walk up and snort in huge mounds. While they were there I merely encouraged them to add some code on the computers sitting in my garage.
I've never seen so many confusing drug related delusions put into comments! Luckily the comments made for a great book and that was how I, L. Ron Hubbard began Scientology!
While this definitely isn't new it's always a good thing to get another pair of eyes on code. Turning it into a competition has the tendency to trick programmers into doing better or working harder with a (sometimes false) sense of personal gain.
Excuse me while I gather the virgin sacrifice and assemble the pentagram required to solve your problem
Whatever kind of software we are talking about, you'll most likely get a horrid UI and the resulting usability headaches.
On one hand, you get design by committee. A UI that is not great, but just didn't offend anyone, the software equivalent of a meal at Olive Garden. Many MSFT apps have a designed by committee feel.
On the other hand you get no real UI conventions so various parts of the application look like what they are: a patchwork. Some F/OSS software has this type of design shortfall.
Sounds like a less focused version of an open source project. F/OSS embraces a certain ideal. I don't know if providing a free service for a for-profit corporation falls under that idea.
blah blah blah
"Crowdsourcing" usually means getting people to do stuff for you for free, where you own the results and the people who created them cannot use them except by paying you (if at all). This is why people should be sure that projects they contribute to as volunteers release their results under some kind of Free license. For example, contributions to Wikipedia are free-licensed, and even if Wikipedia died or turned ultra-evil tomorrow, you could use the articles yourself under the GFDL, or set up a fork based on them. The same is true of contributions to MusicBrainz (Open Audio License), among other such projects.
For a good early example of the opposite, recall the CDDB fiasco---lots of people submitting data that ends up owned by someone who won't let you use it except under onerous licensing terms. The rise of "Web 2.0" has basically taken CDDB-style business models and made them much more common, so it's important to make sure you aren't enabling that sort of thing that in the long term ends up working directly against your interests.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
So, the company describing this task had their architects divide the "project" into a hundred or so pieces to be worked on separately. Then, the best designs, submitted confidentially, get picked and used the company, with some "royalties" getting paid out. The company developers combine the best of these components into the finished product...
Something just doesn't seem right here... MobSourcing, RiotCoding, I mean CrowdSourcing. Seems like a good way to get all sorts of stolen code, easter eggs, and pretty much crappy code into your codebase.
Jeesh - Doesn't anyone read the classics anymore? It's only been available for over 130 years...
Anyone who can turn this into Crysis 2 by noon tomorrow gets a lolipop and a free In Soviet Russia joke
DEF width = 1280
DEF height = 800
OPENCONSOLE
IF CREATESCREEN(width,height,16) 0
MESSAGEBOX NULL,"Failed to create DirectX screen","Error"
END
ENDIF
FILLSCREEN RGB(255,255,255)
sx = 0.1f
sy = 0.2f
speed = 1
Building new things is great and all but any sane software engineer will understand that maintaining the software is a much harder and more complex problem than building the first version. Even if you pick the best built components, at some point later your customers are going to want a new feature or want a broken feature fixed. I don't think you can simply hold a competition to figure out who can submit the best maintenance job. Additionally, once the competitors submit their entries, they have no further obligation to work for you. So you've essentially lost the most important assets (the people that wrote the stuff) on the day you receive the finished the work. You could always have your own people maintain it but they will be much more costly than had you kept the original authors who do not need to re-learn the code.
That's a catchy term for the practice of taking a job traditionally performed by employees or a contracted company and outsourcing it to an undefined, large group of people in the form of an open call on the Web
You mean like a few days ago when a story submitter commanded us "slashdotters" to go rifling through Microsoft's OOXML documents for them so, that IBM and friends wouldn't have to pay staffers/paralegals/lawyers to do so?
Please help metamoderate.
I put a job on Rent-A-Coder once. The job was to take an existing GPL piece of Python code that understood how to query some, but not all, of the various registrar WHOIS servers, and make it understand the output from each of them. The existing code was years out of date, but did approximately the right thing. Each registrar has a slightly different format for the same WHOIS data, so you need a collection of parsing modules, or something smart enough to do it generically. It's not a difficult problem, just time-consuming.
The code, and a test file of 1000 test domains, was provided. The statement of the problem said that all the test cases had to work. The resulting code would be re-released under the GPL.
Four programmers in succession took that job, with bids from $200 to $500 and locations from Ireland to Russia, and none of them produced any working code.
Crowdsourcing can work if enough people participate. The laws of probability take over from there. What drives the success and stability of this counterintuitive approach is The Law of Large Numbers and some of the Central Limit Theorem. Basically, with enough random contributions, the counterproductive/arbitrary elements tend to cancel and the coherent parts add up over time. Ironically, this is probably why democracy tends to be a reasonably stable form of government. From a business's point of view, it is great because you essentially get free labor. However, the drawback is that if you don't have enough people participating, you essentially get white noise as your output subject to large fluctuations. You will also have to be patient before you hit the right critical threshold of users to get projects done on any meaningful time scale. Software projects have different needs but, using Wikipedia as a working example, this means you need roughly a hundreds of thousands of rabid, active users to achieve modest stability over several years. In other words, SourceForge. You may needs something on the scale of the open source movement itself for it to work in software.
i\hbar\dot{\psi}=\hat{H}\psi
They must have added the '-' in their address lately. Guess they got way too many requests from confused individuals.
Everybody uses broad generalizations.
....until you get one crap piece of code that goes into an infinite loop on bad input or just some odd input and kills the whole shit. Unless you've written a good set of unit cases, and if you did you'd probably easily write the code yourself with that level of understanding. Reviewing code is IMO a very time-consuming and difficult skill, and putting good people to review bad code to look for the best is usually a waste of time. Either they will skip the checking, or they're skilled enough to write it themselves and on better time. Though I suppose it's better than putting bad people at reviewing, which is the deaf leading the blind. Honestly, would you like a product that's put together by a hundred different indian code shops, only somewhat worse?
What every software company wants is predictability - they want to know if you typically turn out good code or poor code, then they can review accordingly. And by that I don't mean nothing, everyone has a bad day and everyone makes mistakes, but if it's the new intern you know it needs much more review. There's no way they could be just as thorough on all parts and still deliver this century. Crowdsourcing sounds to me like a lemon market, where you'd want reliable contributors rather than the fly-by-night lemon sellers. That's exactly the opposite, where you go into long-term relationships and both side want long-time commitments rather than this micromanagement.
Live today, because you never know what tomorrow brings
Crowdsourcing?
You mean..
Open source?
Difference?
Hey I know, let's make up buzzwords for things that already have them. Yes, that's going to help.... I say we brick this idea.
I do not respond to cowards. Especially anonymous ones.
Why pay for something when you can get it for free (even if you're only paying pennies on the dollar by outsourcing)? Comedy clubs have used this model for years with "Open Mike" nights, and media outlets have their unpaid "interns".
There is an endless supply of desperate, talented people who will do anything for free in the hope that their gifts will get them noticed by an employer. Employers, of course, are quick to exploit this reservoir of free talent without mercy or restraint.
I've calculated my velocity with such exquisite precision that I have no idea where I am.
Seems to me that doing this sort of thing could, assuming minimal checking of the results, open one's code up to widespread abuse in the form of 'back doors' or 'logic bombs' that anyone not pleased with the idea (say, programmers unhappy with the entire outsourcing/offshoring pattern) could manage to slip in.
As others have (accurately) pointed out, this is also little more than a way to be lazy about doing a job, and not caring if it's done right as long as your company gets paid for it. What benefit do those actually writing your code get for their efforts?
There are right ways and wrong ways to go about doing any task. This strikes me as just plain wrong. I certainly wouldn't want to do any project I come up with this way. It would be like Boeing throwing open their design process to the world, and saying "OK, you design our next plane for us, but we get to use any idea you come up with and not pay you." Ludicrous, hmmm?
Bruce Lane, KC7GR,
Blue Feather Technologies
because programmers who take on the job are global, offering many different perspectives on any one job.
This is PHB speak for "cheap foreign labor". I recognize phrases similar to this from pro-H1B (visa-worker) business lobbyist websites. "Many different perspectives" is just fluffy "global community" talk to hide the real i$$ue.
Table-ized A.I.
See it everywhere. .com with all the tech outsourced. Apparently if you kiss enough asses and make enough powerpoints you start to believe that that's what makes shit happen. The leaches go from one very important golf game to the next while the engineers are busy making shit and rolling their eyes at the douchebaggery. Engineers make the world go round. The eyerolling I mean, something about angular velocity or some shit. Kind of slept through physics class. I was a business major at the time, didn't think it was very practical.
Overstock.com Divulges Secret To Its Cyber Monday Success
Their secret? They hired engineers. I shit you not, they were a
Truly, if one has the masochistic desire to experience cringe-worthy job requirements, go to rentacoder. You too can develop code for $50 that would otherwise be worth thousands of dollars. A few years ago, I thought I would join and make some extra cash.. But it turned out to be an opportunity to troll assholes trying to get something for nothing.
.wav and convert it to a midi ring tone. Guy in India wants it done for $50-ish dollars. I've written something similar in Matlab, so I know how freaking non-trivial it is.
Some projects I recall off the top of my head:
-Write software that will take in a
- Create a solid state disk drive for somebody's extra RAM. Willing to pay $300. Har har. I, ahem, told them I could make a prototype for $50k, plus the cost of Xilinx tools.
I've done bits of consulting, and doing projects for small, clueless companies is by far the worst job you can do as an engineer. They are technically clueless, don't understand that engineering costs money and want it done yesterday. Rentacoder and its ilk only magnify these problems, because they troll for technical people who will work for relatively nothing.
Recently, I offered to hire myself out as an embedded systems engineer at $60 an hour, and that is pretty much whoring myself out compared to what other people charge for consulting, but the Indian dude who wanted to hire me only wanted to pay $20 an hour. F off.
All I can say is, if these site works for somebody, good for them. I have bigger fish to fry. It's quite hard for me to see how this attracts any real talented people.
A witty saying proves you are wittier than the next guy.
One of the "Tricks" to the Crowdsourcing phenomenon is to provide a way for users to create value without feeling like they are working. Slashdot has done that to the extent that you have created content (your posting) questioning whether anyone has done this. Tom Sawyer indeed.
Check out the Carnegie Mellon projects, The ESP Game, Peekaboom, and Phetch for more examples where users are providing valuable services FOR FREE while playing a game. Similar to how you and I are creating value for free in this forum with our witty banter. It feels rewarding to post a comment. And it creates a valuable end product for Slashdot.
One "crowdsourced" concept that I find to be totally unethical is the archival of student papers. Force students to submit papers to your service, in the name of plagiarism-checking, and then hold them FOREVER, and build a database of content so that you can use other people's Intellectual Property. The McLean trial starts around January 23rd. Hopefully Slashdot will be covering it.
What y'all are saying is that RAC is a buyer's market. I agree.
I tried it once and survived. My trick was to use it as a resource for non-experts looking to break conceptual logjams. I went into it knowing not to expect a clone to Yahoo for $1000.
All I needed was to fix an irritating spacing problem on a little website of mine. I made a point of going against the grain of the site and "overpaid" on purpose. For $100, I got 2.5 solutions (depending on if I wanted to use tables or CSS plus some tutorial PDF's so I could have a clue about how to muck around with it all afterward.)
I figured it would be something like 2 hour's work for the "warm-shots" here, so at a random $50/hr "Journeyman coder rate", $100 became my fee. I would like to be known for paying close to sensible value for jobs I post.
I'd use the service again because I'm sure I'll come up against another silly problem that I'm just not able to crack open. That's why I'm not a designer.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine