少人数によるアジャイル開発の事例

2009年4月3日(金)
倉貫 義人

本連載で語るアジャイル開発の事例

 本連載で紹介するアジャイル開発の事例は、筆者が携わってきた「SKIP」というアプリケーションにまつわるプロジェクトの事例になります。SKIPは、筆者の所属するTIS株式会社(http://www.tis.co.jp)の社内で構築された社内SNSのアプリケーションです。社内で3年間の運用の後、オープンソースとして公開しました(http://www.openskip.org)。現在は、誰でも開発の状況を知ることができ、アプリケーションもダウンロードできる状態で公開されています。

 また、筆者の経営するソニックガーデンでは、そのSKIPをAmazon EC2上で稼働させてサービス提供するSaaSビジネスを行っています(http://www.skipaas.jp/)。SKIPをとりまく環境は、人数や開発体制、顧客やユーザー、ビジネス価値などが大きく変遷してきた歴史があります。

 本連載では、SKIPの開発の経緯にそって、少人数での立ち上げ時期や、社内システムとしての時期、オープンソースの開発とSaaSビジネスの時期と、それぞれの開発の場面にあわせて、どのようにアジャイル開発を行ってきたのか、についてを事例として紹介していきます。

本連載の題材「SKIP」について

 SKIPは、会社や部門・プロジェクト等の、何かの目的のために集まった組織や集団にいる人々同士をより密接につなぎあわせ、イキイキと働けるようにすることを実現するアプリケーションです。以下のような機能をもっています。

・個人のもつノウハウを共有したり、参加者同士でディスカッションができる「ブログ」機能
・業務プロジェクトでのファイルや情報の共有や、コミュニティー活動を支援する「グループ」機能
・管理されたファイルやブログをすべて、キーワードだけで探し出すことのできる「全文検索」機能
・有益なWebサイトの情報を、共有してコメントしあうことできる「ソーシャルブックマーク」機能

 SKIPは企業や業務での利用を想定して作られており、以下の特徴があります。

・ブログ記事や共有ファイルなどの公開範囲を、詳細に設定できる
・プロジェクト利用を想定し、グループへの参加を承認制にできる
・重要な情報を効率的に処理するために、記事の未読管理ができる

 一般的なSNSでは、リアルな友達関係をネットに持ち込むところに重点をおいて機能が作られているのに対し、SKIPでは組織内の人々をつなぎ、新たな人脈形成やイノベーションの実現を目的としているため、mixiでいうマイミクシィに相当する機能をあえて実装していない点などがユニークな部分です。SKIPが、TIS社内でどのように運営されてきたのか興味のある方は、Think ITで以前に書いた記事を参考にしてください。

・Know HowからKnow Whoへ ~社内SNS構築指南
 http://www.thinkit.co.jp/free/article/0703/11/1/

 次に、アジャイル開発の最初の事例として、SKIPの立ち上がり時期の様子を紹介します。SKIPの企画を検討し始めたのが2005年11月で、そこから2人で開発を行い、約2ヶ月で最初のリリースをしました。

 その時期は、まだ「何を作るべきか」ということさえも明確に決まっておらず、プロジェクトのスポンサーである経営層の意図と現場のニーズを集めながら、試行錯誤を行うフェーズでした。一般的には「要件定義」に相当すると思います。また「何で作るか」という点では、Ruby on Railsを採用することは決めたものの、私ともう1人の開発者のいずれも未経験者ということもあり、その点も学びながら進めざるを得ない状況でした。そうした状況下で、アジャイル開発をどのように実践したかを次のページで紹介します。

TIS株式会社 SonicGarden

TIS株式会社にて、クラウドを中心とした新規事業を行うための「SonicGarden」を立ち上げ、代表カンパニー長をつとめる。また、2009年まで日本XPユーザグループの代表をつとめるなどアジャイルの普及を行ってきた。主な著作:バグがないプログラムのつくり方(2004,翔泳社)など。
Twitter:@kuranuki(http://twitter.com/kuranuki
ブログはこちら

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています