Welcome!

Java Authors: Elizabeth White, Pat Romanski, Michelle Drolet, Kevin Benedict, Liz McMillan

Related Topics: SOA & WOA, Java

SOA & WOA: Article

Crowdsourcing - A Best Practice or a Worst Practice?

How to know if crowdsourcing is for you

For the record, I am neither pro-crowdsourcing nor anti-crowdsourcing. For purposes of this article, I'm going to assume that we're talking about software development; however, crowdsourcing could be just as appropriate for situations as diverse as architecture, graphical design, PowerPoint slides or even developing a great pizza recipe.

The Ethics of Crowdsourcing
There has been some criticism of the crowdsourcing model on ethical grounds - for example, that it is unfair to the participants. For the most part, I'm going to stay out of that controversy. Though, if the rules are made clear and are posted up front, then each party can decide on their own whether to participate. To me, that makes it fair. If someone is cheated, that's a different story, and there are other (legal) remedies for that.

We've all engaged in things like job interviews or pitches to venture capital firms where we knew going into it that we would bear the burden of travel, preparation, etc., and that there were no guarantees whatsoever of results. I don't see how crowdsourcing is materially different. But the purpose of this article is to discuss crowdsourcing as a method of creating software - not to debate the ethical points.

Crowdsourcing: Deja Vu?
Crowdsourcing is in some ways like using a swear word. In some situations, it's appropriate and helpful, and in other situations, it's simply a terrible idea and entirely counter-productive. It's up to the business person to intelligently determine whether a particular issue is crowdsource-appropriate.

This is certainly not unique to crowdsourcing - the same can be said for outsourcing (or offshore outsourcing). In fact there are some similarities between the two, in that some years ago, offshore outsourcing grew in popularity - and briefly seemed to be promoted by many as a solution to every problem out there. I see the same thing happening with crowdsourcing today. I'm highly critical of organizations which promote crowdsourcing as a near-panacea. Apart from Duck Tape, nothing is a near-panacea.

With offshore outsourcing, there were some spectacular successes and even more spectacular disasters. If crowdsourcing truly takes off, we'll see the same pattern happen there too.  In time, rationality mostly prevailed and outsourcing/offshoring software development became "yet another tool" to be leveraged by the savvy business user.

Shortcomings of Crowdsourcing
Crowdsourcing has many of the same shortcomings as outsourcing, and a few more to boot. Some issues I see:

1) For the most part, the really talented architects and developers are busy with lucrative and demanding jobs. So if you think you're going to get someone to create something better than Hadoop without any compensation guarantees, think again. I'm not saying that there aren't some highly skilled people out there. But one needs to be realistic. You can't open something up to crowdsourcing and expect the world to come to you. On the other hand, your particular problem might be perfect for someone out there.

Although "contests", such as those promoted by organizations like TopCoder, can be useful for improving the quality of potential solutions, the quality of the end-solution is mostly determined by the quality of the talent pool and how well the contest is set up and managed. The fact that there is a contest doesn't change anything to any significant degree - it's still crowdsourcing.

And don't forget the overhead of managing and "judging" any such competition.  It's not as easy as determining the winner in a 100 metre dash.  As always, a badly defined and poorly run competition is almost certainly a failed one.

2) It's human nature that results and motivation go hand in hand.  In the working world, motivation takes many forms, and every person is different.  In general, people are motivated by compensation (monetary and non-monetary), respect and visibility from others, a sense of being part of a team, and the satisfaction of a job well done.

Because the nature of the relationship between a crowdsourcing participant and the business is so very ephemeral, the typical person simply doesn't have the underlying motivation.

3) The mathematics of complex systems are against outsourcing in general.  By this I mean that the effort to successfully manage such a project increases geometrically relative to the complexity of the problem trying to be solved.  Specifically, the effort to fully document the requirements of a project, to quality assure the results, to ensure that the proposed solution not only meets the requirements as set forth,  and provide a sound and extensible architectural base for the future increases MUCH faster than the actual effort required to solve the problem.

If you get involved in trying to manage multiple disconnected or semi-connected parties with varying competing or complementary solutions, that makes things even worse.

4) Who's going to maintain all that code?  Years ago, I had to write a utility that extracted data and metadata from a proprietary column-store database and stuff it into Oracle 10.  A year after I wrote the utility, I needed to go back and modify it.  It was a difficult task.  It's difficult to maintain your own code.  Maintaining someone else's code is far more difficult.  Although turnover is common in any organization, supportability of in-house developed code is significantly easier than externally acquired code.

5) Collaboration with internal team members is an important part of most development efforts, and this is something that is difficult with a crowdsourcing solution.

Advantages of Crowdsourcing
All that said, crowdsourcing has some real benefits.  True advantages.  For some projects (or project components), it's a great idea.

1) It can be highly cost effective when used properly (i.e. managed properly and employed for an appropriate class of problem).

2) The wide range of potential problem-solvers out there mean that some very interesting and innovative solutions can pop up.

3) External people aren't constrained by the mental "boxes" and preconceived notions that internal people create for themselves.

4) When used properly, the downside of crowdsourcing can be minimized.

Is Crowdsourcing Right for Your Project? How Do You Minimize Risk?
Anyhow, all this comes down to the old maxim: use the right tool for the job.  Some projects just aren't cut out for crowdsourcing, and some are.

That being said, you can't fix stupid, and some people insist on using a hammer where a screwdriver is the correct implement.  So if you cut off your finger using a bandsaw while trying to open up a can of tuna fish, don't go blaming the bandsaw.

If you are considering crowdsourcing, consider your answers to the following questions.  They may help you determine if your project is truly crowdsource-appropriate, and help you minimize the risk and/or impact of failure.

a) How much effort is required to appropriately define the problem as well as requirements for the solution...up front.

b) How much effort will it take to manage the crowdsourcing process?

c) How much calendar time will be expended if the crowdsourcing process fails to yield a useful solution?

d) What is the impact on the business if crowdsourcing doesn't work for this particular problem?

e) What is the impact on the business of using internal people instead of crowdsourcing? What is the "opportunity cost" of using internal people?

f) Can you define "pull the plug" points for a crowdsourcing project?  For example, how many parties express interest in working on your problem?

g) Can you establish some preliminary indicators that allow you to predict success likelihood for the final solution?

h) How do you decide between "pull the plug" vs. "go back and try to remedy the situation" if the leading indicators aren't looking good?

i) Can you define "success"? Do you have criteria in place for judging and testing solutions?

Crowdsourcing: Post Script
For an excellent followup on this article, please read "Maximizing CrowdSource Success" - perspectives from CrowdSourcing pioneer and TopCoder founder Jack Hughes.  Jack gives additional insight into many of the "must ask" questions to help readers determine whether crowdsourcing is appropriate for them - and, if so, how to maximize chance of success.

More Stories By Hollis Tibbetts

Hollis has established himself as a successful software marketing and technology expert. His various strategy, marketing and technology articles are read nearly 50,000 times a month. He is currently Director for Global Marketing Operations for Dell Software Group.

Hollis has developed substantial expertise in middleware, SaaS, Cloud, data management and distributed application technologies, with over 20 years experience in marketing, technical, product management, product marketing and business development roles at leading companies in such as Pervasive, Aruna (acquired by Progress Software), Sybase (now SAP), webMethods (now Software AG), M7 Corporation (acquired by BEA/Oracle), OnDisplay (acquired by Vignette) and KIVA Software (acquired by Netscape). He has established himself as an industry expert, having authored a large number of technology white papers, as well as published media articles and book contributions.

Hollis is a regularly featured blogger at ebizQ, a venue focused on enterprise technologies, with over 100,000 subscribers. He is also an author on Social Media Today "The World's Best Thinkers on Social Media", and maintains a blog focused on creating great software: Software Marketing 2013.
He tweets actively as @SoftwareHollis

Additional information is available at HollisTibbetts.com

All opinions expressed in the author's articles are his own personal opinions vs. those of his employer.