協作性軟體開發平台與眾包

來源:互聯網
上載者:User

標籤:


本文最初刊登於IEEE Software雜誌,現由InfoQ & IEEE Computer Society呈現給大家。

“眾包,一度創造了非常成功的企業,比如Linux。同時,高效合作、眾包支援下的平台還在不斷湧現。本文作者Xin Peng, Ali Babar和我從整體上介紹了眾包的當前技術,我們歡迎讀者和專欄作者對本文提出評價和看法,也期望你提出自己希望瞭解的技術問題。”

--Christof Ebert

1991年,芬蘭赫爾辛基大學一位21歲的大學生,在Usenet新聞群組上發布了這樣一個著名的文章:“我正在為386(486) AT clones開發一個(自由的)作業系統(僅僅是出於愛好,該作業系統不會像Gue那麼廣泛,那麼專業)。這個計劃從4月份開始醞釀,現在已做好準備。我希望得到人們關於Minix優缺點的任何反饋意見,因為我的作業系統和它有類似的方面…”這個人便是Linus Torvalds,這則訊息發布之後,吸引了無數的軟體開發人員,在僅僅三年的時間內,便完成了這一新作業系統的第一個版本。

Linux 1.0於1994年公開發布,這是截至當時最大的眾包項目之一。截止到2008年,運行於Linux上的伺服器、虛擬桌面和軟體收入達到了近300億歐元。眾包,已不僅僅是軟體工程師的業餘愛好,它已經成為了一種成熟的商業模式。

軟體開發過程中使用眾包,意味著你可以從大量自發的線上社區中徵集服務,而不是再只有傳統的員工和供應商渠道。過去十年,作為Web 2.0發展進程的一部分,眾包也得到了快速的發展。

1展現了眾包、外包、開源和專有開發的差異。本質上來講,眾包使得各位眾包成員變成了企業所請求的軟體開發工作單位的供應商。同時,它還實現了提交方和請求方之間的價值轉移,而開源開發則無法實現,傳統外包方式則無法實現開放式的全員參與。

如今,眾包已經被用於資訊、知識和文化的大規模並行生產。企業的多個環節都可以採用眾包,比如內容建立、開放設計、資料分析、開發與測試。而眾包的主要目的,就是利用多個自願參與者的創新能力,他們最終會得到一小部分報酬,抑或是沒有,同時也沒有正式的管理結構。

軟體開發是一項創新的、知識密集的流程,需要利用全球人才的智慧、創新和生產力。

圖1

軟體開發的眾包過程中,企業(請求方)藉助眾包平台,將項目劃分為需求分析、設計、編碼和測試等任務,然後分配給外部的個人或團隊(提交方)。大型IT公司還利用內部眾包,在自己的員工中間分配軟體開發工作單位,從而達到利用閑置人員的目的。

平台需求

軟體開發眾包,本質上是協作性的。眾包軟體項目的相關人員組成了一個虛擬團隊,協作工具和社交媒體技術為其提供支援。請求方、提交方和平台提供方之間會有各種各樣的溝通、協作和協調(3C)。比如說,請求方和提交方就某任務的需求和評估標準進行溝通,請求方協調不同任務的進展和技術決策,提交方則通過共用工作區域彼此協作。

此外,開發人員還需要對協作型項目的各個方面,包括團隊和項目了如指掌,這就是所謂的團隊感知。成功的團隊需要有溝通、協作和協調,還需要有一定的感知,形成協作型軟體開發的“3C+A”模式。

眾包平台執行一項請求可以採取多種模式,比如說,在市場中打廣告,請求方公開招標,或者是舉行競賽,依照請求方設定的標準從競賽者中選取優勝者。這些方式,都要求平台必須能夠支援包含了多個請求方、提交方和平台提供方共同建立價值、實現共用的一些商業模式。

溝通

眾包平台可以實現請求方和提交方之間的資訊交換,能解決溝通不暢的問題。提交方需要與請求方協調需求和一些條款,而需求方需要瞭解提交方的能力、經驗和信譽。眾包各成員之間需要通過平台彼此溝通技術或組織問題。此外,同一項目不同的任務提交方還可能需要進行溝通,以便各個任務能夠協調。

協作

眾包平台還支援各種協作,它提供設施實現工作區的共用,鼓勵使用者與工作的同步或非同步互動。開發人員可以在不同層面上進行協作,他們可能是在協作性開發項目中,共同完成一個項目的同一塊工作(原始碼或UML模型),也可能是在版本控制系統的支援下,共同協作完成多項工作。在項目層面上,不同任務的開發人員也可能會協作,完成各自任務的整合工作。

表1 不同軟體開發平台的眾包支援

協調

最後,眾包平台支援技術和組織層面的人與流程的管理和協調。事實上,平台提供了建立、指派、執行、評估和獎勵眾包任務的工具,同時監督請求方和提交方的完成情況。比如說,平台可能需要解決存在於請求方和提交方之間的爭議;如果一項任務是以競賽的形式發布,那麼或許還需要協調不同提交方之間的競爭。

同時,平台還需要為請求方提供支援,協調同一項目不同任務的開發流程。比如說,對於組件開發項目,請求方需要為所有參與的提交方匯總並提供所需的組件說明書、開發工具、資料庫、測試資料和環境。

感知

群體感知是指虛擬團隊的成員能夠理解流程、任務、實際表現和項目狀態,從而對整個工作環境有必要的瞭解。群體感知可分為四類:非正式的(或表象的)、組織圖、工作環境和社交。群體感知在軟體開發眾包過程中非常重要,因為眾包成員之間具有開放性和高流動性。成員之間是以鬆散的、臨時的虛擬社區的形式組成項目團隊。群體感知能協助眾包成員更好的理解他們的任務、開發環境、協作方和競爭方的最新狀態。此外,瞭解別人的工作能激勵團隊成員,相互學習,增強創造力。

商業模式

通過眾包,企業作為請求方,能夠以較低成本獲得豐富的人才資源,並利用其創新的能力。而個人或團隊作為提交方,也能通過自己提交的成果獲得報酬。平台提供方則通過從成功完成的項目中抽成,以及收取平台資源比如儲存資源和工具的使用費用而獲益。

眾包這一商業模式亟待解決的是有關智慧財產權的問題。對於眾包任務,平台必須提供請求方和提交方不同智慧財產權問題的協調機制。此外,就提交成果的IT產權問題如何轉移給企業,由雙方共用,需要請求方和需求方需要達成一致。

眾包平台

目前的眾包平台有,TopCoder、CoFundos、Genius Rocket和Innocentive,它們提供了一個企業和個人開發人員均可註冊並加入線上社區的網路平台。

眾包平台有成型的商業模式,激勵著眾包成員參與到開發工作單位中,提交他們的解決方案。平台通常向企業收取發布任務的費用,但是不向平台成員收取任何費用。成功中標的成員可以獲得經濟報酬,或者其他形式的獎勵,比如按照事先約定的條款,提交方可以成為企業的一員。通常情況下,提交者獲得獎勵後,智慧財產權就相應的轉移到眾包企業手中。

眾包平台會協調眾包企業和成員之間的關係。對於每個項目,平台通常會指定一個協調者(TopCoder稱為copilot),這個人也可以從眾包成員中選出。協調者幫企業將任務分解成一系列微任務,然後將這些微任務指派給眾包成員。協調者會協調整個過程,包括項目說明、執行、評價和彙報。

眾包平台將論壇按照任務進行細分,從而為成員提供了溝通渠道,每個成員都可以提問問題,可以彼此之間進行溝通。任務協調者可以管理和回答成員的問題;一些平台還支援提交方和請求方互發資訊實現溝通。但是,一般的眾包平台對成員之間的協作支援很少。其中一些允許成員共用工作成果,但是卻不提供版本控制。

協作性軟體開發平台與眾包

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.