Agile×Ruby×Cloudが示す価値
はじめに
本連載では、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という言葉を最初に知ったのは、以下のブログ記事でした。
アジャイルでは、最初に立てた計画の通りに進めるのではなく、日々の変化の中で柔軟に対応していくことを目指しています。そのため、ソフトウェアの変更コストを上げないよう、なるべく一定のコストで済むようにするためのテスト駆動開発やペアプログラミングといったプラクティスがあり、保守性を高めています。
Rubyの上で動くRuby on Railsというフレームワークでは「DRY(Don't Repeat Yourself)」や「CoC(Convention over Configuration)」という考え方があり、その効果もまさしく高い保守性を実現するというものです。つまり、アジャイルとRubyでは「高い保守性を実現する」というメリットの相互作用があるのです。
また、クラウド(IaaS/PaaS)をインフラとして活用することで、早い段階から動くソフトウェアを提供することができる上、パフォーマンスに応じて増強も自由に行うことができます。
アジャイルでは「動くソフトウェア」を重視するという考え方があり、その実行基盤としてクラウドは非常に相性がいいのです。クラウドを提供するビジネスにおいても、利用者の満足度を維持するためには、市場ニーズや競合製品の動向を見ながらスピードを持ってサービスの機能拡張を続ける必要があります。そこでも、要件を素早く柔軟に取り込めるというアジャイル開発の特徴を活かすことができます。
クラウド(SaaS)とアジャイルの相性の良さについては、以前にもこのThink IT上て「SaaSビジネスにおけるアジャイルの事例」という記事を執筆したりと、意識はしていましたが、改めてひとつの言葉にすることで、より明確にその価値が見えるようになったと思います。「名前付け重要」というわけです。