開発の基礎知識

システム開発手法 アジャイル vs ウォーターフォール

今回はシステム開発手法における「アジャイル」と「ウォーターフォール」について比較をしながらお伝えしていきます。
どちらも基本的なフローはこちらの記事で書いたようなフローで進んでいくのですが、2つの手法は重視すべき指標が以下のように異なります。

アジャイル:仕様の柔軟な変更を重視
ウォーターフォール:リリース期限を重視

この重視すべきポイントの違いがあるため、自ずと管理手法についても異なってきます。
それぞれについてメリット・デメリットがあるので、その違いもお伝え出来ればと思います。

ウォーターフォールの特徴 ~メリット・デメリット~

「ウォーターフォール」という言葉を直訳すると「水が流れ落ちる」という意味になります。川の水が常に上から下へ流れており、下から上に流れる事がないように、基本的に上流から下流への流れは不可逆的で、進んだ工程が戻る事はありません。つまり要件定義が100%終わったら、次にワイヤーの作成をして、仕様書が固まったらプログラミングに入って、という流れで進んでいきます。

要件定義や仕様書作成のタイミングで100%仕様を確定するので、仕様書作成までにかなり時間がかかりますが、このタイミングで精度の高い見積もりを出す事が可能です。
つまり期限や予算が明確な場合に向いている手法と言えるでしょう。

逆に1つ1つの工程がきっちりと進んでいくので、ディレクター、デザイナー、エンジニアなどが同時並行で仕事をする事が少なく、フェーズ毎にタスクをバトンタッチしていく感覚になるので、全体工数が伸びてしまったり、仕様の変更がしにくいといったデメリットがございます。

大企業で予算がある程度確保でき、また作りたいものが明確に決まっていて仕様変更が発生しにくいプロジェクトが向いているかと思います。

アジャイルの特徴 ~メリット・デメリット~

「アジャイル」は直訳すると「俊敏な」「素早い」という意味です。ウォーターフォールはプロジェクト全体で、「要件定義」→「設計」→「開発」といったように進んでいきますが、アジャイルはそれを機能単位に行うイメージなので、「ユーザー登録」の要件定義〜テストを進めながら、並行して「EC購入」の要件定義〜テストを進める、といった形になります。

機能毎にリリースが行われるため、デザイナーやエンジニアを割と序盤でフル稼働させる事ができ、全体的な工数を圧縮する事が出来ます。
またリリースが細かいので仕様変更にも柔軟に対応出来たり、追加機能のリリースもし易くなります。

上記のメリットがある反面、管理が煩雑になり難易度が上がる事や、全体の見通しが悪くなるので、納期を決めづらいといったデメリットが挙げられるかと思います。

どちらかというと全体的な予算を圧縮したかったり、市場のニーズによって柔軟に機能を変更する必要があるベンチャー、中小企業のプロジェクトに向いているかと思います。

RocketStartでの管理手法はアジャイルメイン

私が請け負う手法としてはアジャイル開発がメインで、最低限の機能を最初のリリースに盛り込んで、必要な機能を随時足していくようなスタイルになります。
またその際に、kintoneなどのノーコードツールやSaaSなどを組み合わせて作ることでより開発期間の圧縮を出来るように心掛けています。

もしアジャイルの開発に興味がある方がいましたら是非お声がけ頂ければと思います!