TISの社内ベンチャーであるSonicGardenはSaaS(ソフトウエア・アズ・ア・サービス)型で提供する商用サービスの開発にアジャイル開発手法を活用している。コミュニケーションの取り方を工夫することで、継続的にサービスを改善し続けても技術者が息切れしないような体制を作っている。

写真●TISの社内ベンチャー「SonicGarden」のメンバー
写真●TISの社内ベンチャー「SonicGarden」のメンバー
中央に座るのがカンパニー長の倉貫義人氏

 SonicGardenのカンパニー長を務める倉貫義人氏は「アジャイル開発はSaaSのビジネスモデルと非常に相性がよい」と言い切る(写真)。その理由を「利用者の満足度を維持するためには、SaaS提供者は市場ニーズや競合製品の動向を見ながらスピードを持ってサービスの機能拡張を続ける必要がある。要件を素早く柔軟に取り込めるというアジャイル開発の特徴が生かせる」と説明する。

 実際にSonicGardenは2008年11月から企業内で利用するSNSソフト「SKIP」をSaaSで提供している。現在のバージョンアップの間隔は1カ月だ。1月30日に公開した最新版「1.6」では、登録ユーザーの検索機能を追加したり、投稿記事の絞り込み検索機能を強化したりした。

 バージョンアップには、SKIPを利用する企業の運用担当者の声が反映されている。まずSonicGardenのメンバーが運用担当者に直接ヒアリングして要望を集める。これを倉貫カンパニー長が中心となって、重要性などを基準にして対応する優先度を決める。

 開発チームはその要望を基にアジャイル開発を続けている。SonicGardenのメンバーは7人だが、SKIPの開発に中心的にかかわるのは倉貫カンパニー長ら3人だ。

 チームメンバーは1週間で設計からプログラミング、テストまで実施してソフトを完成させることを繰り返す。1週間の終わりには振り返りの時間を設けて、反省点や良かった点を共有。これを次の1週間に生かす。

 こうしてソフトを改善し続けていけるように、倉貫カンパニー長はソフトの保守性を高めることに注力している。例えば読みやすいコードを記述するために、プログラミングは二人が一組になって進め、お互いに常にレビューし合う。品質の向上を狙ってテストコードを先に書いてからそれを満たすプログラムを記述する「テストファースト」も実践する。

 加えて、毎回繰り返す作業や管理作業はツールに任せて作業を効率化する。例えばテストでは、テストファースト専用のフレームワーク「RSpec」や受け入れテストを支援する「Cucumber」を使っている。プログラムのバージョン管理には「GitHub」を、メンバーの作業タスク管理には「Redmine」を使う。これらはいずれもオープンソースソフトだ。

 今はSaaS型で提供するSKIPだが、もともとTISの社内で利用する目的で作られた。2005年11月からの2カ月間で倉貫カンパニー長ともう一人のメンバーが、RubyのフレームワークであるRuby on Railsを使ってアジャイル型で開発した。その後チームを大きくしながらアジャイル型で機能拡張を続け、2008年6月にSKIPをオープンソース化した(関連サイト)。

 一方でSKIPを外販するための手段に倉貫カンパニー長はSaaS型を選んだ。インフラには米アマゾン・ウェブ・サービシズが提供するIaaS(インフラストラクチャ・アズ・ア・サービス)の「Amazon EC2」と「Amazon S3」を使う。SKIPは1社につき一つのソフトが必要になる。仮想マシンを貸し出すEC2ならば複数企業の利用に対応できる、というのが採用の理由だ。

 「インフラを一度買うとなかなか買い換えられない。アジャイル開発で要件を柔軟にソフトに取り込もうとしても、インフラの制約で性能や拡張性を制限されることもあった」。だが「IaaSの登場によりソフトだけでなくインフラまでも柔軟に変えられるようになったため、より仕様の変更を受け入れやすくなった」。併せて新規サービスを試験的に小さく始めることも容易になったという。