課題の克服にはノウハウと割り切りが必要

 これらの事例から浮かび上がるのは,Ruby,特にRuby on Railsを大規模システムへ適用するにあたっての最大の課題となるのは「性能」と「多人数での開発」になりそうだということだ。

 そして,事例からわかるように,いずれの課題にも対策は存在する。性能については,他の開発言語と同様,ボトルネックとなるのはアプリケーションではなくデータベースである。カカクコムでは自動生成されたSQL文を書き換え,MySQLのチューニングを行った。欧米では,大量のアクセスがあるRuby on Rails採用サイトとしてはミニメッセージSNSのTwitterが有名で,秒間最大1万1000以上のリクエストがあるという。TwitterではDB回りのチューニングのほか,Railsプラグインによるデータ・キャッシュなどを活用している(Scaling Twitter: Making Twitter 10000 Percent Faster)。

 楽天の研究開発部門である楽天技術研究所もまつもとゆきひろ氏をフェローに迎え,Rubyによる大規模分散処理フレームワークの開発を始めている(関連記事)。このようなツールもこれから多数出てくるだろう。

 大人数で開発するための規約も,松江市のプロジェクトで作成された成果は公開される。まつもと氏が在籍するネットワーク応用通信研究所が中心になって作成するものであり,Rubyの標準的なコーディング規約になる可能性も高い。

 ただし,対策をとるためには,現時点ではノウハウが必要だ。そして,自由度の高い記述方法やデータ・アクセスの自動生成といった,RubyとRailsのメリットをある程度制限せざるを得ない。

 だがそれは「どんな対象にも適用できる万能の技術はない」,そして「ツールを限界性能近くで,あるいは限界を超えて使うためにはその仕組みを深く知る必要がある」という,ITに限らない当たり前の事実だ。

開発が,企業がどこまでアジャイルになれるか

 技術的な課題のほかにも考慮すべき点がある。それは,RubyやRailsが,ターゲットが変わっていくアジャイルなシステム開発で威力を発揮してきたということだ。ウォータフォール型の開発にRubyを適用し生産性を向上させることは可能だが,それでRubyのメリットを最大限享受するすることはできない。

 まつもと氏は「何が必要かは,顧客にも実は分かっていないことが多い。それなら,まずアプリケーションを作ってしまい,それを使ってもらって直していくしかない」と提案する(関連記事「とりあえず作って,後から作り直せ」,Rubyのまつもと氏が語るエンタープライズ開発)。「『答えを知らない』ことを認めるのが重要だ」(まつもと氏)。自動生成機能を特徴とするRuby on Railsはゼロから作り直すことが容易なフレームワークだ。

 Rubyを欧米に広めた“達人プログラマ”Dave Thomas氏は,エンタープライズRubyについて「企業はまだアジャイルではないが,エンジニアたちは密かにアジャイルになりつつある」と指摘する(関連記事)。「最終的には企業が変わるだろう」(Thomas氏)。

 ネットワークの高度化とグローバリゼーションの拡大はあらゆる業種で,企業を取り巻く変化のスピードを上げ続けている。生き残っていくためには業務システムだけでなく,企業自体も変化のスピードを上げていくしかない。「どこまで俊敏になれるか」---Rubyが突きつけている問いは,実はシステム開発にとどまらず,企業そのものがどこまで変わることができるか,という命題なのかもしれない。