
第7回 Web2.0的な開発プロセスとは?
Web2.0の新興企業の多くは、オープンソースソフトウェア、特にLAMP(Linux、Apache、 MySQL、PHP、Perl、Python)をベースにサービス設計しています。基盤が同じであれば、後は速い開発力と、ユニークなサービスの提供こそ が死命を分けることになります。今回は、特にその開発力の維持と品質向上に関わる重要な要素である、サービス開発プロセスについて解説します。
解説:小川 浩(フィードパス株式会社)
 |
[プロフィール]
お がわ・ひろし●1996年、デル、ゲートウェイの代理店としてマレーシアにて日系企業及び在住邦人向けのPC通販ベンチャーを創業するなど、アントレプレ ナーとして活躍。その後日立製作所を経てサイボウズにジョイン。feedpathの基本設計を考案し、現在に至る。ブロガーとしてSpeed Feed、「Web2.0BOOK」「ビジネスブログブック」シリーズなどの著作がある。
|
俊敏動作が命のAgile開発プロセス
Web2.0におけるネットサービスの開発には、何よりも効率的かつ短期間での開発体制が必要になります。これを実現するためのキーワードとして良く知られているのが、Agile(アジャイル)という英語です。これは「俊敏」であるとか、素早いというような意味の単語ですが、経営環境や他社との厳しい競争にさらされながらも、サービスの連続的な改修や新規開発を行っていくうえで、柔軟かつ効率的なシステムの採用や開発プロセスを作り上げていかねばなりません。Agile とは、そうした開発手法全体を意味する言葉となっています。したがって、特定の開発プロセスを示しているわけではなく、あくまでも開発姿勢を示す用語です。
よくWeb2.0的なサービスを評して、永遠のベータ、といういい方をしたりします。これは未完成のサービスをリリースするという意味ではなく、いったんリリースしたサービスであっても気を抜かずに、日々改良を続けるという意思です。永遠のベータであり続けるためには、Agileな開発体制を作り上げ、かつそれを維持していくことが非常に大事です。
Web2.0開発に欠かせないLAMPの概念図。これらのオープンソースを元にAgileの開発プロセスが実行される
Agile Manifestoとは?
このAgileというキーワードが有名になったのは、2001年2月に行われたAgile Manifesto(アジャイル・ソフトウェア開発宣言)の発表です。この内容は、以下のようになります。
1) 開発プロセスやツールの選定よりも、メンバー同士の交流を重要視すること
2)ドキュメンテーションを整備するよりも、実際のソフトウェア開発に集中すること
3) 契約の締結を優位に進めるよりも、顧客との協力体制を作り上げること
4) 計画準拠を意識しすぎず、変化に対して柔軟であること
の4つです。
つまり、モチベーションの維持と、目的意識を重要視しており、開発のための開発ではなく、ビジネスを実現するための開発であることをメンバーの間でのコンセンサスとしていくことを考えているわけです。
イテレーション型開発プロセス
Web2.0のサービス開発は、主にコンシューマーをターゲットにしています。エンタープライズ向けの開発とは違い、マーケット自体が流動的ですし、常に新規性が求められることが多いのです。ですから、セキュアなシステムを優先するあまりに融通の利かないサービスを開発することは許されません。このため、Web2.0用の開発プロセスの代表的な手法として、イテレーション、つまり反復型と呼ばれる開発プロセスが採用されることが多くなっています。
このイテレーション型開発プロセスは、計画→設計&テスト→実装→改善→受入れテスト→リリース&再検討、というプロセスを、繰り返し反復します。このプロセスであれば、計画進行中に急な変更が発生したときも、仕様変更による後戻り作業の発生を極力減らすことが可能です。結果的に開発期間の短縮にもつながります。
インテレーション開発フロセスの参考概念図
エクストリーム・プログラミングの開発プロセス
もう一つ、Agile開発プロセスとしてよく知られるのは「XP(エクストリーム・プログラミング)」と呼ばれる手法です。これは、ソフトの開発において仕様の把握やテスト、ソースコードなどのレビューを徹底的に行うことを目指すものです。同時に、仕様の変更要求に対して、むしろ積極的に応じることを基本方針とすることで、修正コストを極力発生させない体制を保つ努力をすることを特徴とします。
話題のRuby on Railsとは?
さらに最近急に認知されるようになった開発手法が、「Ruby on Rails」です。Ruby on Railsはオブジェクト指向スクリプト言語であるRubyを使って開発された、オープンソースのWebアプリケーションフレームワークですが、コード生産性が非常に高いことが特徴で、単純なデータベースアクセスだけで設計できるアプリケーションであれば、プログラムを書くことさえ必要なく、自動的にソースコードを生成することが可能です。
このように、さまざまなAgile開発プロセスが普及していくことが、Web2.0企業の創業を助け、より新しいWebアプリケーションを世に生み出すことになるのです。
次回に続く