クラウドソーシングソフトウェア開発またはソフトウェアクラウドソーシングは、ソフトウェアエンジニアリングの新興分野です。これは、ドキュメント作成、設計、コーディング、テストなど、ソフトウェア開発のあらゆるタスクへの参加を公募するものです。これらのタスクは通常、ソフトウェア企業のメンバーまたは企業と契約した人々によって実行されます。しかし、ソフトウェアクラウドソーシングでは、すべてのタスクを一般の人々に割り当てるか、一般の人々によって対処することができます。個人やチームがクラウドソーシングコンテストに参加することもできます。[1]
目標
ソフトウェアクラウドソーシングには複数の目的がある可能性がある。[2] [3]
品質の高いソフトウェア: クラウドソーシングの主催者は、具体的なソフトウェア品質の目標とその評価基準を定義する必要があります。品質の高いソフトウェアは、厳格な評価に耐えうる優れたソリューションを提出できる有能な参加者から生まれることが多いです。
迅速な取得: ソフトウェアが開発されるのを待つ代わりに、クラウドソーシングの主催者は、同一または類似のものがすでに開発されていることを期待して、コンペティションを投稿することがあります。これは、ソフトウェアの取得時間を短縮するためです。
才能の発掘: クラウドソーシングの主催者は、主に、競争でのパフォーマンスによって示される才能を発掘することに関心があるかもしれません。
コスト削減: クラウドソーシング主催者は、賞金に表彰賞が含まれる場合があるため、開発コストのごく一部を支払うことで、低コストでソフトウェアを取得できます。
ソリューションの多様性: チームは同じ問題に対して異なるソリューションを提出するため、これらのソリューションの多様性はフォールト トレラント コンピューティングに役立ちます。
アイデアの創出: 目標の 1 つは、出場者から新しいアイデアを得ることであり、これらのアイデアは新しい方向性につながる可能性があります。
参加の拡大: 1 つの目標は、最善の解決策を得たり、関連する知識を広めたりするために、できるだけ多くの参加者を募集することです。
参加者の教育: 主催者は参加者に新しい知識を教育することに関心があります。一例として、STEM科学、テクノロジー、エンジニアリング、数学を教える目的でDARPAが後援する nonamesite.com があります。
資金の活用: 目標は、資金を活用するために他の組織が同様のプロジェクトを後援するように促すことです。
マーケティング:クラウドソーシング プロジェクトは、参加者間でのブランド認知に利用できます。
エコシステム
アーキテクチャサポート
クラウドソーシング サポート システムには、1) ソフトウェア開発ツール (要件ツール、設計ツール、コーディング ツール、コンパイラ、デバッガー、IDE、パフォーマンス分析ツール、テスト ツール、メンテナンス ツール) が含まれている必要があります。2) プロジェクト管理ツール (製品と参加者のランキング、評価、表彰システム)。3) ソーシャル ネットワーク ツール (参加者が互いにコミュニケーションを取り、サポートできるようにする)。4) コラボレーション ツール (参加者が共通領域を確認し、共通領域で提示されたソリューションを改善するためのアイデアを提案できる黒板プラットフォームなど)。
ソーシャルネットワーク
ソーシャル ネットワークは、コミュニケーション、ドキュメント、ブログ、Twitter、Wiki、コメント、フィードバック、インデックス作成などを提供できます。
組織
プロセス
ソフトウェア開発のどのフェーズでもクラウドソーシングが可能であり、そのフェーズには要件(機能、ユーザーインターフェイス、パフォーマンス)、設計(アルゴリズム、アーキテクチャ)、コーディング(モジュールとコンポーネント)、テスト(セキュリティテスト、ユーザーインターフェイステスト、ユーザーエクスペリエンステストを含む)、メンテナンス、ユーザーエクスペリエンス、またはこれらの任意の組み合わせが含まれます。[4]
既存のソフトウェア開発プロセスは、クラウドソーシングを組み込むように変更できます。1) ウォーターフォール モデル、2) アジャイル プロセス、3) モデル駆動型アプローチ、4) オープン ソース アプローチ、5) サービス コンポーネントを公開、検出、構成、カスタマイズ、シミュレーション、テストできる Software-as-a-Service (SaaS) アプローチ、6) 形式手法: 形式手法はクラウドソーシングできます。
クラウドソーシングは、競争型または非競争型にすることができます。競争型クラウドソーシングでは、選ばれた参加者のみが勝者となり、競争の激しいプロジェクトでは、多くの参加者が競い合いますが、勝者となるのは少数です。非競争型では、1 人の個人がクラウドソーシングに参加するか、複数の個人が協力してソフトウェアを作成します。作成された製品は、製品の一貫性と品質を確保し、才能を見極めるために相互評価することができ、その相互評価はクラウドソーシングによって評価できます。
クラウドソーシングによって開発されたアイテムは、クラウドソーシングによって評価され、作成された作品がどのようなものかを判断でき、評価の評価はクラウドソーシングによって評価の品質を判断できます。
注目すべきクラウドソーシング プロセスには、AppStori プロセスとTopcoderプロセスがあります。
参加者の事前選択は、質の高いソフトウェア クラウドソーシングにとって重要です。競争的なクラウドソーシングでは、ランクの低い参加者がランクの高い参加者と競争すべきではありません。
プラットフォーム
Apple社のApp Store、Topcoder、uTestなどのソフトウェアクラウドソーシングプラットフォームは、ソフトウェアエコシステムの拡大と製品品質の向上という点でクラウドソーシングの利点を実証しています。AppleのApp StoreはオンラインのiOSアプリケーションマーケットで、開発者はクリエイティブなデザインや製品をスマートフォンの顧客に直接提供できます。これらの開発者は、App Storeのマイクロペイメントメカニズムによる評判と支払いの両方のために革新的なデザインを提供するよう動機付けられています。わずか4年足らずで、AppleのApp Storeは150,000のアクティブなパブリッシャーを擁する巨大なモバイルアプリケーションエコシステムになり、700,000を超えるiOSアプリケーションを生み出しました。App Storeの周りには、スマートフォンアプリケーションインキュベーター向けのコミュニティベースのコラボレーションプラットフォームが数多くあります。たとえば、AppStoriはクラウドファンディングアプローチを導入し、新しいiPhoneアプリケーションに関する有望なアイデアを開発するためのオンラインコミュニティを構築しています。IdeaScaleはソフトウェアクラウドソーシングの別のプラットフォームです。[5]
クラウドソーシングのもう 1 つの例であるTopcoder は、プログラミング タスクをコンテストとして投稿し、最優秀ソリューションの開発者が最優秀賞を獲得するソフトウェア コンテスト モデルを作成します。このモデルに従って、Topcoder はエコシステムをサポートするオンライン プラットフォームを確立し、100 万人を超える登録メンバーと 5 万人近くのアクティブ参加者からなる仮想グローバル ワークフォースを結成しました。これらの Topcoder メンバーはすべて、要件分析、アルゴリズム設計、コーディング、テストなどのソフトウェア開発タスクで互いに競い合います。
サンプルプロセス
Topcoderソフトウェア開発プロセスはいくつかの異なるフェーズで構成されており、各フェーズには異なる競争タイプがあります。[引用が必要]
- 建築;
- 部品製造;
- アプリケーションアセンブリ。
- 展開

各ステップはクラウドソーシングの競争になる可能性があります。
BugFindersのテストプロセス: [6]
- BugFinders を活用します。
- プロジェクトを定義する。
- BugFinders によって管理されています。
- バグをレビューします。
- バグを修正する
- ソフトウェアをリリースします。
理論的な問題
ゲーム理論は、さまざまなソフトウェアクラウドソーシングプロジェクトの分析に使用されてきました。 [2]
情報理論はメトリクスの基礎となり得ます。
経済モデルは、クラウドソーシングの取り組みへの参加に対するインセンティブを提供することができます。
リファレンスアーキテクチャ
クラウドソーシングによるソフトウェア開発は、さまざまなプロセス モデル、手法、ツールを使用するさまざまなソフトウェア エンジニアリング方法論に従う場合があります。また、入札タスク、専門家の割り当て、品質の評価、ソフトウェアの統合などの独自のアクティビティを伴う特定のクラウドソーシング プロセスもあります。[要出典]アウトソーシング プロセスをサポートし、コミュニティのコラボレーションを促進するために、通常、必要なリソースとサービスを提供するプラットフォームが構築されます。たとえば、Topcoder は、競争ルールが組み込まれた従来のソフトウェア開発プロセスに従います。また、AppStori は柔軟なプロセスを許可し、クラウドは、資金調達、プロジェクト コンセプト、設計、コーディング、テスト、評価など、ソフトウェア開発のほぼすべての側面に関与できます。
したがって、リファレンスアーキテクチャは、ベスト プラクティスと研究成果を統合することにより、クラウドベースのソフトウェア開発の包括的な活動と構造を定義します。一般に、リファレンス アーキテクチャは次のニーズに対応します。[引用が必要]
- 一般的なプロセス モデルをサポートするようにカスタマイズ可能。
- さまざまな機能コンポーネントを構成するように構成可能。
- さまざまな規模の問題解決を容易にするために拡張可能です。
特に、クラウドソーシングは、大規模で複雑なソフトウェアを仮想化された分散型の方法で開発するために使用されます。クラウド コンピューティング は、リアルタイム通信ネットワーク (通常はインターネット) を介して接続された多数のコンピューターを含む、さまざまな種類のコンピューティング コンセプトを説明するために使用される口語表現です。クラウドソーシング アプリケーションをクラウドに移行すると、多くの利点が得られます。このプロセスをサポートするインフラストラクチャではなくプロジェクト開発に重点を置き、地理的に分散したチーム間のコラボレーションを促進し、プロジェクトの規模に合わせてリソースを拡張し、仮想化された分散型のコラボレーション環境で作業できます。

ソフトウェア クラウドソーシング システムに対する要求は、新しい開発哲学や技術が支持されるにつれて、常に進化しています。上記の参照アーキテクチャは、さまざまなソフトウェア開発方法論、インセンティブ スキーム、競争的/協力的なアプローチなど、多くの側面で汎用性を取り入れるように設計されています。データ アナリティクス、サービス ベースの配信、フレームワークの一般化など、アーキテクチャを強化するために調査できる明確な研究方向がいくつかあります。システムが成長するにつれて、プラットフォームの使用を理解することが重要な考慮事項となり、ユーザー、プロジェクト、および両者の相互作用に関するデータをすべて調査してパフォーマンスを調査できます。これらのデータは、タスクの開発や参加者の選択に役立つ洞察を提供することもできます。アーキテクチャで設計されたコンポーネントの多くは汎用であり、ホストされたサービスとして提供できます。これらのサービスをホストすることで、参入障壁が大幅に削減されます。最後に、このアーキテクチャを展開することで、さまざまなソフトウェア開発クラウドソーシング プロジェクトに、またはより広く他のクラウドソーシング アプリケーションに使用できる汎用フレームワークを導き出す可能性があります。このようなフレームワークの作成は、ボランティア コンピューティングにおける BOINC の主流の使用など、他の領域にも変革的な影響を及ぼしました。
側面と指標
クラウドソーシングは一般的に多面的な研究テーマです。ソフトウェア開発におけるクラウドソーシングの利用には、考慮すべきいくつかの重要な緊張点、つまり側面が伴います(下図参照)。同時に、クラウドソーシングにおける3つの主要なプレーヤー、つまり顧客、労働者、プラットフォームの観点から研究を行うこともできます。[7]

タスクの分解:
調整とコミュニケーション:
計画とスケジュール:
品質保証:ソフトウェア クラウドソーシング プロセスは、ゲーム プロセスで説明できます。ゲーム プロセスでは、一方の当事者が目的関数を最小化しようとし、もう一方の当事者は同じ目的関数を最大化しようとします。これは、両者がゲームで互いに競争しているのと同じです。たとえば、仕様チームは、コーディング チームがコードを開発できるように、品質の高い仕様を作成する必要があります。仕様チームは、仕様内のソフトウェア バグを最小限に抑え、コーディング チームはコーディング前に仕様内のバグをできるだけ多く特定します。
最小最大プロセスは品質保証メカニズムであるため重要であり、多くの場合、チームは両方を実行する必要があります。たとえば、コーディング チームは仕様内のバグの特定を最大限にする必要がありますが、作成するコード内のバグの数を最小限に抑えることも必要です。
Bugcrowdは、参加者が囚人のジレンマに従ってセキュリティテストのバグを特定することを示しました。[8]
知識と知的財産:
モチベーションと報酬:
レベル
クラウドソーシングには以下のレベルがあります: [要出典]
レベル 1 : 個人、明確に定義されたモジュール、小規模、限られた期間 (2 か月未満)、高品質の製品、Topcoderや uTest などの最新の開発プロセス。このレベルでは、コーダーがランク付けされ、Web サイトにはオンライン リポジトリのクラウドソーシング マテリアルが含まれ、ソフトウェアは参加者によってランク付けされ、Wiki、ブログ、コメントなどのコミュニケーション ツール、IDE、テスト、コンパイラ、シミュレーション、モデリング、プログラム分析などのソフトウェア開発ツールがあります。
レベル 2 : チーム (< 10 人)、明確に定義されたシステム、中規模から大規模、中程度の期間 (3 ~ 4 か月)、ブラックボード アーキテクチャでのインテリジェントなフィードバックによる適応型開発プロセス。このレベルでは、クラウドソーシング Web サイトは、ブラックボード アーキテクチャによるインテリジェントなフィードバックによる適応型開発プロセスや同時開発プロセス、コーダー、ソフトウェア製品、コメントのインテリジェントな分析、複数フェーズのソフトウェア テストと評価、ビッグ データ分析、ソフトウェア サービスの SaaS (Software-as-a-Service) への自動ラッピング、オントロジーによる注釈、DBpedia や Wikipedia への相互参照、ソフトウェア サービスの自動分析と分類、オントロジーの注釈と推論 (これらのサービスを互換性のある入力/出力にリンクするなど) をサポートする場合があります。
レベル 3 : チーム (< 100 および > 10)、明確に定義されたシステム、大規模なシステム、長期間 (< 2 年)、貢献間の自動相互検証および相互比較。このレベルのクラウドソーシング Web サイトには、仕様、サービス、およびテストのマッチングを含む、要件と既存のコンポーネントの自動マッチング、および自動回帰テストが含まれる場合があります。
レベル 4 : 大規模で適応性の高いシステムの多国籍コラボレーション。このレベルのクラウドソーシング Web サイトには、オントロジー、推論、注釈を備えたドメイン指向のクラウドソーシング、自動化された相互検証およびテスト生成プロセス、クラウドソーシング プラットフォームの自動構成が含まれる場合があります。また、テナントのカスタマイズによりプラットフォームを SaaS として再構築する場合があります。
重要な出来事
マイクロソフトがWindows 8開発をクラウドソーシング。2011年、マイクロソフトは開発者と一般の人々の間で議論を促進するためにブログを開始しました。[9] 2013年、マイクロソフトはWindows 8用のモバイルデバイスのクラウドソーシングも開始しました。 [10] 2013年6月、マイクロソフトはセキュリティバグを特定するための革新的な技術に10万ドル、特定された問題の解決策に5万ドルを提供することで、ソフトウェアテストのクラウドソーシングも発表しました。[11]
2011年、米国特許商標庁は、アメリカ競争法に基づき、Topcoderプラットフォーム上で、特許文書内の図や部品のラベルを認識するための画像処理アルゴリズムとソフトウェアの開発を目的としたクラウドソーシングコンテストを賞金総額5万ドルで開始した。[12]このコンテストでは、70チームが合計1,797のコードを提出した。コンテスト優勝者のソリューションは、図の領域と部品のラベルの認識において、再現率と精度の点で高い精度を達成した。[13]
OracleはCRMプロジェクトにクラウドソーシングを活用している。[14]
会議とワークショップ
2013年9月にドイツのダグシュトゥールでソフトウェアクラウドソーシングワークショップが開催されました。[15]
参照
参考文献
- ^ Riedl, Christoph; Woolley, Anita (2016 年 12 月)。「チーム vs. 群衆: 群衆ベースの問題解決パフォーマンスに対するインセンティブ、メンバーの能力、コラボレーションの相対的貢献に関するフィールドテスト」。Academy of Management Discoveries。印刷中 (4): 382–403。doi :10.5465/amd.2015.0097。
- ^ ab Wu, Wenjun; WT Tsai; Wei Li (2013). 「ソフトウェアクラウドソーシングの評価フレームワーク」. Frontiers of Computer Science . 7 (5): 694–709. doi :10.1007/s11704-013-2320-2. S2CID 3352701.
- ^ Stol, Klaas-Jan; Fitzgerald, Brian (2014). 「二人で仲良く、三人で大混雑:クラウドソーシングソフトウェア開発のケーススタディ」。第36回国際ソフトウェア工学会議。ACM。pp. 187–198。doi : 10.1145 / 2568225.2568249。hdl : 10344/3982。
- ^ Wu, Wenjun; WT Tsai; Wei Li (2013). 「クリエイティブソフトウェアクラウドソーシング」International Journal of Creative Computing . 1 : 57. doi : 10.1504/IJCRC.2013.056925 .
- ^ 「クラウドソーシングソフトウェアがより強力なアイデアを集める」IdeaScale 。 2016年3月19日閲覧。
- ^ Bugfinders. 「現実世界におけるソフトウェアテスト」 。2013年6 月 21 日閲覧。
- ^ Stol, KJ; Fitzgerald, B. (2014). 「クラウドソーシングソフトウェア開発の研究:展望と懸念」。ソフトウェアエンジニアリングにおけるクラウドソーシングに関する第1回国際ワークショップ議事録- CSI-SE 2014。p. 7。doi : 10.1145 /2593728.2593731。hdl : 10344/ 3853。ISBN 9781450328579. S2CID 7531317。
- ^ 「クラウドソーシングと囚人のジレンマ — Delling Advisory」。Dellingadvisory.com。2013年4月11日。 2016年3月19日閲覧。
- ^ Thomas, Stuart (2011年8月16日). 「MicrosoftがWindows 8向けのクラウドソーシングブログを開始」Memeburn . 2013年6月21日閲覧。
- ^ Simpson, Scott (2013 年 6 月 10 日)。「次の Windows 8 デバイスをクラウドソーシングしますか?」。2013 年6 月 21 日閲覧。
- ^ Bell, Lee (2013年6月20日). 「Microsoft、Windows 8.1のクラッキングに10万ドルのバグ報奨金を提供」。2013年6月25日時点のオリジナルよりアーカイブ。 2013年6月20日閲覧。
{{cite news}}: CS1 メンテナンス: 不適切 URL (リンク) - ^ Steffen, Robynn Sturm (2011年12月16日). 「新しい卓越センターが特許審査ツールの近代化を支援する賞を後押し」ホワイトハウスブログ。2016年3月30日閲覧。
- ^ Riedl, C.; Zanibbi, R.; Hearst, MA; Zhu, S.; Menietti, M.; Crusan, J.; Metelsky, I.; Lakhani, K. (2016 年 2 月 20 日)。「特許における図と部品ラベルの検出: 画像処理アルゴリズムの競争ベースの開発」。国際文書分析認識ジャーナル。19 (2): 155–172。arXiv : 1410.6751。doi : 10.1007 / s10032-016-0260-8。S2CID 11873638 。
- ^ Diana, Alison (2011 年 3 月 16 日)。「Oracle が CRM にクラウドソーシングを統合」。InformationWeek。2013年6月 21 日閲覧。
- ^ マイケル・N・ヒューンズ;リー、ウェイ。蔡偉徳(2013)。 「Schloss Dagstuhl:セミナーホームページ」。ダグシュトゥールのレポート。3 (9)。 Dagstuhl.de: 34–58。土井:10.4230/DagRep.3.9.34 。2016 年 3 月 19 日に取得。
さらに読む
- Karim R. Lakhani、David A. Garvin、Eric Logstein、「TopCoder: クラウドソーシングによるソフトウェア開発」、Harvard Business School Case 610-032、2010 年。
外部リンク
- クラウドソーシングによるWikiMedia開発
