リンク:クラウドソーシング

クラウドソーシングという言葉をはじめて聞いた。

クラウドソーシング」とは、インターネットを通じて不特定多数の人々に業務をアウトソーシングすることだ。

事例がおもしろい。

2006年初頭、AOL のソフト開発部門の Senior Vice President である Sree Kotay 氏が、TopCoder に話を持ちかけたのだ。依頼事項は、AOL-Mail および AOL-Messanger の機能拡張を、TopCoder の持つソフト開発コミュニティに委託できないかという内容だった。

依頼を受けた TopCoder は、社内からアーキテクトとプロジェクトマネージャーを選任、それ以外のすべてのソフトウェア開発業務を、彼らの持つクラウドプログラマコミュニティに委託することを決定した。そして、そのチームによる独特のソフトウェア開発ステップが始まったのだ。

まず彼らは、AOL の既存巨大プログラムを分析し、52のコンポーネントに分解した。ひとつひとつのコンポーネントをレゴブロックのように扱うことで、複数チームでの分散同時開発を狙ったものだ。その結果、52コンポーネントのうち、22部品は既存のまま組み込めばよく、残り30部品につき、コミュニティで(1)設計し、(2)プログラミングし、(3)レビューしあい、(4)テストする、というプロジェクト計画が立案された。

その後はコンテストのメカニズムを利用して、チームに分散しながら、それぞれで知識を集約していくプロセスとなる。まずは、コンポーネット設計で募集をかけた。応募された設計がコミュニティで評価され、ベストデザインが選定される。続いてそれに従い分散コーディング。同様に募集、評価を重ね、ベストコンポーネントがコード化されていく。さらにできあがった部品は統合され、テストのステップも同様のメカニズムで進められた。

そして、その成果は AOL-MAIL および AOL-Messanger の開発部隊から高い評価を受け、継続して開発を受注することになったのだ。AOL 事例のコストと開発期間は非公開であるが、他事例(米国電力会社 CEG)によると、コスト・期間とも圧縮され、特に期間は50%程度となったとのことだ。

この事例のすごいところはTopCoderに集ったプログラマー達じゃなくて、巨大プログラムを分割し、TopCoderのコンテストの枠組みに落とし込んだアーキテクトとプログラムマネージャだ。この部分こそがこの話の肝だと思う。