Agile×Ruby×Cloudが示す価値

2011年3月2日(水)
倉貫 義人

はじめに

本連載では、Webアプリケーションの新しいつくり方について紹介します。その中心となるキーワードは、「Agile」「Ruby(Rails)」「Cloud」の頭文字から付けた「ARC」です。

それぞれのキーワードは個別に語られることが多いと思いますが、本連載ではその組み合わせによって生まれる相乗効果や相性の良さについて解説していきます。

筆者の所属するSonicGardenでは、このARCを活用することで、いくつものWebアプリケーション開発を行ってきました。

例えば、企業向けのSaaSとして提供している社内SNS製品の「SKIP(http://www.skipaas.jp)」や、フリーミアムで提供しているプロジェクト情報共有ツール「youRoom(http://youroom.in)」などです。

それらのWebアプリケーションの開発と運用をしてきた経験を全4本の記事にまとめました。

前半の第1回と第2回ではARCを活用した実際の事例をもとに、そこでの開発体制や開発環境、マネジメントのポリシーや価値観などについて全体を俯瞰して紹介します。

後半の第3回と第4回では、実践編としてRubyのPaaSである「Heroku」の活用方法や、Railsのプラグインからクラウドで提供されるユーティリティの活用といった内容を紹介します。

図1:AgileとRubyとクラウドの相関関係

■ARCについて

アジャイル、Ruby、クラウドの頭文字をとって「ARC」。それぞれの言葉についての詳しい解説は、世の中に溢れすぎているので本連載では割愛します。例えば、アジャイルについては、こちらの記事「アジャイル実践1、2、3」が参考になると思います。

筆者がARCという言葉を最初に知ったのは、以下のブログ記事でした。

ちさろぐ「ARCモデルについて」

アジャイルでは、最初に立てた計画の通りに進めるのではなく、日々の変化の中で柔軟に対応していくことを目指しています。そのため、ソフトウェアの変更コストを上げないよう、なるべく一定のコストで済むようにするためのテスト駆動開発やペアプログラミングといったプラクティスがあり、保守性を高めています。

Rubyの上で動くRuby on Railsというフレームワークでは「DRY(Don't Repeat Yourself)」や「CoC(Convention over Configuration)」という考え方があり、その効果もまさしく高い保守性を実現するというものです。つまり、アジャイルとRubyでは「高い保守性を実現する」というメリットの相互作用があるのです。

また、クラウド(IaaS/PaaS)をインフラとして活用することで、早い段階から動くソフトウェアを提供することができる上、パフォーマンスに応じて増強も自由に行うことができます。

アジャイルでは「動くソフトウェア」を重視するという考え方があり、その実行基盤としてクラウドは非常に相性がいいのです。クラウドを提供するビジネスにおいても、利用者の満足度を維持するためには、市場ニーズや競合製品の動向を見ながらスピードを持ってサービスの機能拡張を続ける必要があります。そこでも、要件を素早く柔軟に取り込めるというアジャイル開発の特徴を活かすことができます。

クラウド(SaaS)とアジャイルの相性の良さについては、以前にもこのThink IT上て「SaaSビジネスにおけるアジャイルの事例」という記事を執筆したりと、意識はしていましたが、改めてひとつの言葉にすることで、より明確にその価値が見えるようになったと思います。「名前付け重要」というわけです。

TIS株式会社 SonicGarden

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

連載バックナンバー

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

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

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

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