|By Hollis Tibbetts||
|September 7, 2011 10:00 AM EDT||
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.
The cloud is everywhere and growing, and with it SaaS has become an accepted means for software delivery. SaaS is more than just a technology, it is a thriving business model estimated to be worth around $53 billion dollars by 2015, according to IDC. The question is - how do you build and scale a profitable SaaS business model? In his session at 15th Cloud Expo, Jason Cumberland, Vice President, SaaS Solutions at Dimension Data, discussed the common mistakes businesses make when transitioning t...
May. 27, 2015 07:30 AM EDT Reads: 3,456
Storage administrators find themselves walking a line between meeting employees’ demands to use public cloud storage services, and their organizations’ need to store information on-premises for security, performance, cost and compliance reasons. However, as file sharing protocols like CIFS and NFS continue to lose their relevance, simply relying only on a NAS-based environment creates inefficiencies that hurt productivity and the bottom line. IT wants to implement cloud storage it can purchase a...
May. 27, 2015 06:30 AM EDT Reads: 3,029
In this scenarios approach Joe Thykattil, Technology Architect & Sales at TimeWarner / Navisite, presented examples that will allow business-savvy professionals to make informed decisions based on a sound business model. This model covered the technology options in detail as well as a financial analysis. The TCO (Total Cost of Ownership) and ROI (Return on Investment) demonstrated how to start, develop and formulate a business case that will allow both small and large scale projects to achieve...
May. 27, 2015 05:30 AM EDT Reads: 3,464
Python is really a language which has swept the scene in recent years in terms of popularity, elegance, and functionality. Research shows that 8 out 10 computer science departments in the U.S. now teach their introductory courses with Python, surpassing Java. Top-ranked CS departments at MIT and UC Berkeley have switched their introductory courses to Python. And the top three MOOC providers (edX, Coursera, and Udacity) all offer introductory programming courses in Python. Not to mention, Python ...
May. 27, 2015 05:00 AM EDT Reads: 1,468
After a couple of false starts, cloud-based desktop solutions are picking up steam, driven by trends such as BYOD and pervasive high-speed connectivity. In his session at 15th Cloud Expo, Seth Bostock, CEO of IndependenceIT, cut through the hype and the acronyms, and discussed the emergence of full-featured cloud workspaces that do for the desktop what cloud infrastructure did for the server. He also discussed VDI vs DaaS, implementation strategies and evaluation criteria.
May. 27, 2015 04:00 AM EDT Reads: 4,750
Let's just nip the conflation of these terms in the bud, shall we?
"MIcro" is big these days. Both microservices and microsegmentation are having and will continue to have an impact on data center architecture, but not necessarily for the same reasons. There's a growing trend in which folks - particularly those with a network background - conflate the two and use them to mean the same thing.
They are not.
One is about the application. The other, the network. T...
May. 27, 2015 04:00 AM EDT Reads: 1,651
The stack is the hack, Jack. That's my takeaway from several events I attended over the past few weeks in Silicon Valley and Southeast Asia. I listened to and participated in discussions about everything from large datacenter management (think Facebook Open Compute) to enterprise-level cyberfraud (at a seminar in Manila attended by the US State Dept. and Philippine National Police) to the world of entrepreneurial startups, app deployment, and mobility (in a series of meetups and talks in bot...
May. 27, 2015 01:15 AM EDT Reads: 2,794
Containers Expo Blog covers the world of containers, as this lightweight alternative to virtual machines enables developers to work with identical dev environments and stacks. Containers Expo Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. Bookmark Containers Expo Blog ▸ Here Follow new article posts on Twitter at @ContainersExpo
May. 26, 2015 11:00 PM EDT Reads: 1,219
Right off the bat, Newman advises that we should "think of microservices as a specific approach for SOA in the same way that XP or Scrum are specific approaches for Agile Software development". These analogies are very interesting because my expectation was that microservices is a pattern. So I might infer that microservices is a set of process techniques as opposed to an architectural approach. Yet in the book, Newman clearly includes some elements of concept model and architecture as well as p...
May. 26, 2015 09:00 PM EDT Reads: 3,684
Docker is an open platform for developers and sysadmins of distributed applications that enables them to build, ship, and run any app anywhere. Docker allows applications to run on any platform irrespective of what tools were used to build it making it easy to distribute, test, and run software. I found this 5 Minute Docker video, which is very helpful when you want to get a quick and digestible overview. If you want to learn more, you can go to Docker’s web page and start with this Docker intro...
May. 26, 2015 09:00 PM EDT Reads: 2,332
The 5th International DevOps Summit, co-located with 17th International Cloud Expo – being held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the...
May. 26, 2015 05:30 PM EDT Reads: 4,578
You use an agile process; your goal is to make your organization more agile. But what about your data infrastructure? The truth is, today's databases are anything but agile - they are effectively static repositories that are cumbersome to work with, difficult to change, and cannot keep pace with application demands. Performance suffers as a result, and it takes far longer than it should to deliver new features and capabilities needed to make your organization competitive. As your application an...
May. 26, 2015 05:00 PM EDT Reads: 3,688
Over the years, a variety of methodologies have emerged in order to overcome the challenges related to project constraints. The successful use of each methodology seems highly context-dependent. However, communication seems to be the common denominator of the many challenges that project management methodologies intend to resolve. In this respect, Information and Communication Technologies (ICTs) can be viewed as powerful tools for managing projects. Few research papers have focused on the way...
May. 26, 2015 05:00 PM EDT Reads: 2,119
As the world moves from DevOps to NoOps, application deployment to the cloud ought to become a lot simpler. However, applications have been architected with a much tighter coupling than it needs to be which makes deployment in different environments and migration between them harder. The microservices architecture, which is the basis of many new age distributed systems such as OpenStack, Netflix and so on is at the heart of CloudFoundry – a complete developer-oriented Platform as a Service (PaaS...
May. 26, 2015 05:00 PM EDT Reads: 2,015
There’s a lot of discussion around managing outages in production via the likes of DevOps principles and the corresponding software development lifecycles that does enable higher quality output from development, however, one cannot lay all blame for “bugs” and failures at the feet of those responsible for coding and development. As developers incorporate features and benefits of these paradigm shift, there is a learning curve and a point of not-knowing-what-is-not-known. Sometimes, the only way ...
May. 26, 2015 05:00 PM EDT Reads: 1,778
The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential. The DevOps Summit at Cloud Expo – to be held June 3-5, 2015, at the Javits Center in New York City – will expand the DevOps community, enable a wide...
May. 26, 2015 03:00 PM EDT Reads: 2,680
How can you compare one technology or tool to its competitors? Usually, there is no objective comparison available. So how do you know which is better? Eclipse or IntelliJ IDEA? Java EE or Spring? C# or Java? All you can usually find is a holy war and biased comparisons on vendor sites. But luckily, sometimes, you can find a fair comparison. How does this come to be? By having it co-authored by the stakeholders. The binary repository comparison matrix is one of those rare resources. It is edite...
May. 26, 2015 03:00 PM EDT Reads: 1,998
Cloud Expo, Inc. has announced today that Andi Mann returns to DevOps Summit 2015 as Conference Chair. The 4th International DevOps Summit will take place on June 9-11, 2015, at the Javits Center in New York City. "DevOps is set to be one of the most profound disruptions to hit IT in decades," said Andi Mann. "It is a natural extension of cloud computing, and I have seen both firsthand and in independent research the fantastic results DevOps delivers. So I am excited to help the great team at ...
May. 26, 2015 02:00 PM EDT Reads: 2,237
Enterprises are fast realizing the importance of integrating SaaS/Cloud applications, API and on-premises data and processes, to unleash hidden value. This webinar explores how managers can use a Microservice-centric approach to aggressively tackle the unexpected new integration challenges posed by proliferation of cloud, mobile, social and big data projects. Industry analyst and SOA expert Jason Bloomberg will strip away the hype from microservices, and clearly identify their advantages and d...
May. 26, 2015 01:00 PM EDT Reads: 2,433
Container frameworks, such as Docker, provide a variety of benefits, including density of deployment across infrastructure, convenience for application developers to push updates with low operational hand-holding, and a fairly well-defined deployment workflow that can be orchestrated. Container frameworks also enable a DevOps approach to application development by cleanly separating concerns between operations and development teams. But running multi-container, multi-server apps with containers ...
May. 26, 2015 12:00 PM EDT Reads: 2,503