ここから本文です

アジャイル開発にこそ、NoSQLの利用を考えるべき理由

3/13(火) 8:15配信

@IT

 本稿では、アジャイル開発について、またNoSQLがこの開発手法に適している理由を取り上げます。なぜこれが重要なのでしょうか。またNoSQLにどのような関係があるというのでしょうか。

ウォーターフォール手法とアジャイル手法の対比

 最初にアジャイルの原則を確認しておきましょう。この、「アジャイルソフトウェア開発宣言」の「アジャイル宣言の背後にある原則」で見ることができます。

・「顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します」
・「要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます」

 現在NoSQLデータベースへの注目が急激に高まっている1つの理由として、データやアプリケーションの要件変更に柔軟に対応できるということがあります。NoSQLとアジャイル手法は相性が良いです。というのも、これらはどちらも変化・変更を嫌がらずに受け入れることができるからです。

 ソフトウェア開発に関わる方々の多くは、ウォーターフォール手法に馴染みがあると思うので、ここではそれとアジャイル手法を比較していきたいと思います。ウォーターフォールでは、順番にステップを実行して、プロジェクトのスコープ全体を1つの流れとして管理します。アジャイル手法では、プロセス全体内のステップを反復して開発していきます。スコープ内の各部分に注力し、プロジェクト全体が終了するまでこれを繰り返していきます。

 ウォーターフォールは、「要件が事前に明確に固まっており、期間中に変更される可能性が低い」プロジェクトに適しています。このプロセスは以下の図のようになっており、プロジェクトの途中で中断されることはありません。

 一方、アジャイルは反復的なプロセスで、これによりアプリケーションのデリバリーが容易になり、より頻繁に提供できるようになります。アジャイルの場合、開発チームは通常2~4週間という短期間の「スプリント」(サイクル)で作業をしていきます。各スプリントには「プランニング」「要件分析」「設計」「構築」「検証」「評価」というフェーズがあり、これらのフェーズがスプリントごとに繰り返されます。

 この手法に関する書籍はいろいろ出ているので、詳細な説明はそちらに任せますが、「真のアジャイルを実現するには、各スプリントにおいて想定される頻繁な変更やその後の検証・評価サイクルに対処しなければならないので、データ管理自体もアジャイルである必要がある」ということは理解しておいてください。

 今日のビジネス環境においては、入力データやアプリケーション要件への変更に対応しなければならないプロジェクトが増えています。これによりアジャイル手法への関心が高まり、その採用が増えているのです。ニーズとしては以下のような例があります。

・変化し続ける規制要件
・現時点では未確定の調査要件
・新しい任務要件。公衆衛生や自然災害
・IoT
・既存/将来のオープンデータソースの活用(ソーシャルメディアなど)

 NoSQLのデータモデルはより柔軟です。データソースの新規追加や既存のデータソースへの変更の際にもデータベースを止めずに開発を継続できます。またデータは「そのまま」(アズイズで)ロードでき、その後必要に応じてデータベース内で変換できます。これにより各スプリント内の要件に素早く対応できます。企業の中には、既にエンタープライズNoSQLを使うことでアジャイル手法のメリットを享受しているところもあり、その成果として市場投入時間やソリューション開発時間の短縮が実現されています。

●筆者紹介

三浦デニース(Denise Miura)

マークロジック株式会社日本法人代表。ソフトウェア開発ならびにwebテクノロジーに関して25年以上の経験を持ち、さまざまなエンジニアリング、コンサルティング、管理職などの要職を歴任。前職はSilicon Graphics、E*TRADE Financial、Blue Martini Software(日本法人代表取締役)など。カーネギーメロン大学卒(コンピュータサイエンス専攻)

最終更新:3/13(火) 8:15
@IT