Collaborative software development platform and crowdsourcing

Source: Internet
Author: User
Tags version control system


This article was originally published in IEEE Software magazine and is now presented to you by Infoq & IEEE Computer Society.

"Crowdsourcing, once created a very successful enterprise, such as Linux. At the same time, high-efficiency cooperation, crowdsourcing support of the platform continues to emerge. The author Xin Peng, Ali Babar and I have introduced the current technology of crowdsourcing in general, and we welcome readers and columnists to comment on this article, as well as the technical questions you want to know. ”

--christof Ebert

In 1991, a 21-year-old university student at the University of Helsinki in Finland published a famous post on Usenet newsgroups: "I am developing a (free) operating system for 386 (486) at clones (the operating system will not be as broad as GUE, just out of hobby, So professional). The plan has been brewing since April and is now well prepared. I would like to get any feedback on the pros and cons of Minix because my operating system and it have similar aspects ... "This man is Linus Torvalds, and after the news was released, it attracted countless software developers, in just three years, Completed the first version of this new operating system.

Linux 1.0 was released in 1994, one of the largest crowdsourcing projects of the time. As of 2008, revenues for servers, virtual desktops and software running on Linux amounted to nearly 30 billion euros. Crowdsourcing, is not only a software engineer's hobby, it has become a mature business model.

The use of crowdsourcing in software development means that you can solicit services from a large number of spontaneous online communities, rather than just traditional employee and supplier channels. Over the past decade, crowdsourcing has also grown rapidly as part of the Web 2.0 development process.

1 shows the differences between crowdsourcing, outsourcing, open source, and proprietary development. In essence, crowdsourcing makes the crowdsourcing member a provider of software development tasks requested by the enterprise. At the same time, it realizes the transfer of value between the submitter and the requester, while open source development cannot be realized, and the traditional outsourcing method cannot realize the open full participation.

Today, crowdsourcing has been used for large-scale parallel production of information, knowledge and culture. Many aspects of the enterprise can be used in crowdsourcing, such as content creation, open design, data analysis, development and testing. The main purpose of crowdsourcing is to take advantage of the innovative capabilities of a number of voluntary participants who will eventually receive a small amount of compensation, or none, and no formal management structure.

Software development is an innovative, knowledge-intensive process that takes advantage of the wisdom, innovation, and productivity of global talent.

Figure 1

In the software development crowdsourcing process, the enterprise (requester) uses the crowdsourcing platform to divide the project into tasks such as requirements analysis, design, coding, and testing, which are then assigned to external individuals or teams (submitting parties). Large IT companies also use in-house crowdsourcing to distribute software development tasks among their employees to achieve the purpose of using idle people.

Platform Requirements

Software development crowdsourcing, in essence, is collaborative. The people in the Crowdsourcing software project are comprised of a virtual team, collaboration tools, and social media technologies to support it. There will be a variety of communication, collaboration and coordination between the requester, the submitting party and the provider (3C). For example, the requester and the submitter communicate about the requirements and evaluation criteria for a task, the requester coordinates the progress of the different tasks and the technical decision, and the submitter collaborates with each other through the shared work area.

In addition, developers need to be familiar with all aspects of collaborative projects, including teams and projects, which is known as Team awareness. Successful teams need to have communication, collaboration and coordination, but also need to have some sense to form the "3c+a" model of collaborative software development.

Crowdsourcing platform to execute a request can take a variety of models, for example, in the market advertising, the requesting party to open the tender, or to hold a contest, according to the criteria set by the requester to select the winner from the competitor. In these ways, the platform must be able to support a number of business models that contain multiple requesters, the submitter and the provider to create value together, and share.

Communication

Crowdsourcing platform can realize the exchange of information between the requester and the submitter, and can solve the problem of poor communication. The submitter needs to coordinate the requirements and some terms with the requester, and the requesting party needs to know the author's ability, experience, and reputation. Crowdsourcing members need to communicate technical or organizational issues to each other through the platform. In addition, the different task authors of the same project may also need to communicate so that the individual tasks can be reconciled.

Collaboration

The crowdsourcing platform also supports a variety of collaborations that provide facilities for sharing workspaces, encouraging users to interact with work synchronously or asynchronously. Developers can collaborate at different levels, perhaps in collaborative development projects that work together on a single project (source code or UML model), or with support from a version control system to work together on a number of tasks. At the project level, developers of different tasks may also work together to complete the integration of their respective tasks.

Table 1 crowdsourcing support for different software development platforms

Coordination

Finally, crowdsourcing platforms support the management and coordination of people and processes at the technical and organizational levels. In fact, the platform provides the tools to create, assign, execute, evaluate, and reward crowdsourcing tasks while overseeing the completion of the requester and the submitter. For example, the platform may need to resolve disputes that exist between the requester and the submitter, and if a task is published as a contest, then there may be a need to coordinate the competition between the different authors.

At the same time, the platform needs to provide support to the requester to coordinate the development process of the different tasks of the same project. For example, for a component development project, the requester needs to summarize and provide the required component manuals, development tools, repositories, test data, and environment for all participating submissions.

Perception

Group perception refers to the ability of members of a virtual team to understand processes, tasks, actual performance, and project status, so as to have the necessary knowledge of the entire work environment. Group perception can be divided into four categories: informal (or representational), organizational structure, working environment, and socializing. Group awareness is important in the process of software development crowdsourcing because of the openness and high mobility among crowdsourcing members. Members are composed of project teams in the form of loose, temporary virtual communities. Group awareness helps crowdsourcing members to better understand the latest state of their tasks, development environment, collaborators, and competitors. In addition, understanding other people's work can motivate team members, learn from each other, and enhance creativity.

Business model

Through crowdsourcing, companies, as requesters, can get rich talent resources at lower cost and leverage their innovative capabilities. The individual or team, as the submitting party, can also be compensated for the results they submit. The platform provider benefits from a successful project, as well as the cost of using platform resources such as storage resources and tools.

Crowdsourcing this business model urgently needs to be addressed in relation to intellectual property issues. For crowdsourcing tasks, the platform must provide a coordination mechanism for different IP issues between the requester and the submitter. In addition, how to transfer the results of it property issues to the enterprise, shared by both parties, requires the requester and demand side need to reach agreement.

crowd-pack platform

The current crowdsourcing platform includes TopCoder, Cofundos, Genius rocket and innocentive, which provide a web platform where both business and individual developers can enroll and join the online community.

Crowdsourcing platform has a molded business model that inspires crowdsourcing members to participate in development tasks and submit their solutions. The platform typically charges the enterprise for publishing tasks, but does not charge the platform members for any fees. Successful winning members can receive financial rewards, or other forms of reward, such as in accordance with the agreed terms, the submitting party can become a member of the enterprise. In general, when the submitter receives the reward, the intellectual property is transferred to the crowdsourcing enterprise accordingly.

Crowdsourcing platform will coordinate the relationship between crowdsourcing enterprises and members. For each project, the platform typically assigns a coordinator (TopCoder called Copilot), which can also be selected from among the package members. Coordinators help businesses break down tasks into a series of micro-tasks, and then assign these micro-tasks to crowdsourcing members. The coordinator will coordinate the entire process, including project description, implementation, evaluation and reporting.

Crowdsourcing platform to segment the forum according to the task, so as to provide members with communication channels, each member can ask questions, can communicate with each other. The task Coordinator can manage and answer the members ' questions; Some platforms also support the communication between the submitter and the requester for mutual information. However, the general crowdsourcing platform has little support for collaboration among members. Some of these allow members to share work results, but do not provide versioning.

Collaborative software development platform and crowdsourcing

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.