先日、ウォータフォールモデルというシステム開発の手法を書きました。
ウォータフォールモデルとは
今日は、アジャイル開発について書いて書きます。
まず、正直に言いますが、私はアジャイル開発の経験が浅いです。
ずっと、ウォーターフォールモデルで開発を行ってきました。
ただ、現在は進行形でアジャイル開発を行っています。
経験が浅いなりに考えてみると、
正直、ウォータフォールモデルとアジャイル開発のどちらが良いとは言えないと私は思います。
プロジェクトの状況や、お客様から求められているものによって、ウォータフォールモデルとアジャイル開発を使い分けて良いと思っています。
では、アジャイル開発について以下で説明します。
アジャイル開発
アジャイル開発は、システム開発の手法のひとつです。
アジャイル宣言というものがあります。
詳細は以下のサイトをご覧ください。
一言で言うと、お客様と必要なソフトウェアを作っていきましょうと言うものです。
ウォータフォールモデルとアジャイル開発の違いは、「変化への対応」だと私は思います。
メリット
アジャイル開発メリットは以下の3点だと思います。
- 必要なシステムを開発
- アイデアが出やすい
- 手戻りが小さい
アジャイル開発の最大のメリットは、お客様が必要とするソフトウェアを開発できると言う事だと思います。
お客様は、実際に動くソフトウェアを早い段階で目にする事ができます。
そのため、こんな機能が必要だ、この機能はあまり使わない、などの意見や案が出てきます。
ウォータフォールモデルでは、変更が発生すると大きな手戻りとなってしまいます。
実際にお客様が動くソフトウェアを目にする事ができるのは、開発の後半になってからなので、変更となるとカットオーバーの遅れと追加費用が発生します。
中小企業のシステム会社の場合、大きな赤字となってしまいます。
それが、アジャイル開発の場合は、動くソフトウェアをすぐに見て、改善点を上げる事ができるため、手戻りも小さく抑える事ができるのです。
実際、アジャイル開発でシステム開発を行うと、多くのアイデアがお客様から生まれてきます。
また、お客様は動くソフトウェアを見ながら、今の業務フローがどのように変更されるのかをイメージでき、カットオーバーまでに準備を進める事が可能になるようです。
お客様によっては、動くソフトウェアを見ながら、新しいビジネスモデルを考えられる方もいらっしゃいます。
デメリット
では次に、アジャイル開発のデメリットを書いていきます。
- 見積りが難しい
- スケジュールが作れない
- 引継ぎに時間がかかる
まず難しいのは、見積りだと思います。
変更があるということは、受注する時点で見積りを行う事が難しいという事です。
常に見積りを意識していないと、気づいた時には赤字という事もよくあります。
また、変更が発生するために、先々のスケジュールを組む事が難しいです。
この週でこの機能を作って、この週にこの機能を作るとスケジュールを組んだとしても、その間で変更があると、スケジュールの組み直しが必要となります。
もしかすると、スケジュールを作成する機能ごとに作る事で解決するのかもしれませんが、そうすると、終わりが見えなくなってします。これって、プログラマーにとっては、結構なストレスとなったりします。
また、開発者が途中で変わる場合は、その引き継ぎが大変になります。
ドキュメントは作成するのですが、引継ぎを行っている間も変更が発生していく時があります。
そのため、引継ぎ漏れが発生する事も発生します。
実際、現在私が行っている開発は、前任者から引き継いだ開発なのですが、変更がありすぎて引継ぎ漏れがあり、お客様へご迷惑がかかった事がありました。
私が引き継いだ理由も、赤字プロジェクトとなったためだったのです。
まとめ
ウォータフォールモデルとアジャイル開発は、それぞれメリットがあります。
お客様の要望や納品物によってどちらの開発手法を使うか選択いて良いと思います。
ただし、私は経験ないのですが、途中で開発手法を変えるのはあまり良くないと思います。ウォータフォールとアジャイル開発で求められる物が違うので、現場が混乱してしまうのではないでしょうか。
では、今日はこの辺で。