開発の手法

  • このエントリーをはてなブックマークに追加

開発のための手法とは、システムを開発する工程を構造化し、計画・制御するための枠組みのことです。

そうしたシステム開発手法は、今までにさまざまなものが考案されてきましたが、それぞれに長所/短所があり、プロジェクトの種類や状況に応じて最適な開発手法を選択する必要があります。

今回は、特に有名な2種類の手法について紹介します。


ウォーターフォール手法

ウォーターフォール手法は、とても簡潔で、昔からあるおなじみに手法です。

初めに立てた緻密な計画に沿って開発を進めていきます。
配信日やプロジェクトの完了日がしっかり決まっていて、途中で仕様が変更にならないようなプロジェクトに向いています。
この手法は、ソフトウェア開発はもちろん、機械の製造や造船業、宇宙開発などのさまざまな開発の現場で使われています。

アジャイル手法

アジャイル手法は、ウォーターフォール手法に比べてとても柔軟な手法です。

アジャイル手法は、ソフトウェア開発に必要な全行程(設計・製造・テスト)を反復的に行い、ちいさな機能を1つずつ追加していく開発手法です。
急な変更や修正、技術革新などに対応ができるので、常に高速で成長しているモバイル業界など使われています。

2つを比較する

ソフト開発を「味噌ラーメンを10人前作る」というミッションで例えて、2つの手法を比べてみようと思います。

ウォーターフォール手法の場合

まず計画を立てます。
「○時にチャーシューを仕込み始める。○時に麺を茹で始める。スープを煮込む時間は○○時間。ネギは○○グラム。○○時にお客さんに提供。」
決まった時間に10人前完成。
緻密な計画に沿って作り、満を持して出来上がった味噌ラーメンの味は安定して美味しいです。
しかし一度に麺を茹で始めているので、「やっぱり麺固めで」「やっぱり醤油にして」などの変更には対応できません。

アジャイル手法の場合

優先順位を考えて、一番お腹のすいているお客さんにまず1食作ります。
ほかのお客さんにも順番に提供していきますが、その途中で「ネギ抜きで」「醤油にかえて」「味がうすい」などの注文があればその都度対応します。
最先端製麺機が登場したら、途中でも導入します。
1食ごとに変更可能なアジャイル手法ですが、色々な改良や実験を繰り返すことで、最終的に味(品質)が落ちる場合もあります。

ウォーターフォール手法とアジャイル手法、どちらもメリットとデメリットがあります。
プロジェクトの規模や、クライアントの好み、製品の仕様などの要素から適した手法を選びましょう。

それぞれの良いところを活かすように組み合わせるのもひとつの方法です。

  • このエントリーをはてなブックマークに追加