アジャイルvs.ウォーターフォール。Web開発で取るべきアプローチとは?
Webサイト制作の道を歩む企業にとって、どのような開発手法を採用するかは大きな悩みの一つです。 開発方法論とは、ソフトウェア開発の作業を組織化する方法である。 一方では、すべてが用意されている従来のやり方、他方では、より柔軟にプロジェクトに取り組むための反復的なアプローチをとる自由なやり方があります。 ひとつはウォーターフォール方式、もうひとつはアジャイル方式と呼ばれるものです。
ウォーターフォール方式
ウォーターフォール方式は、非常に古くからあるソフトウェア開発の伝統的な手法である。 プロジェクトは明確なステージに分けられ、順番に完成していきます。 ウォーターフォール方式の正確なステージ数は、企業やプロジェクトによって異なるかもしれませんが、ここでは一般的な考え方を紹介します。
- プロジェクトの構想– その名の通り、ここからプロジェクトのベイビーステップが始まります。 アイデアの種を発芽させる場所であり、ソフトウェア開発ライフサイクル(SDCL)の最初のものである。
- 開始– 仕事をするのに適した人を見つけ、目的、目標、納期を記入したプロジェクト範囲を拡大する。 分析-要求仕様書があり、プロジェクトのフィージビリティ分析が行われます。
- デザイン– モックアップ、ワイヤーフレーム、ストーリーボードなどを通して、プロジェクトを具体的な形にする。 コーディング – 前工程で作成したデザインチャート(フローチャート、デザインモックアップ)に沿って、実際のアプリの制作に取り掛かります。
- テスト– 前のステージのすべての努力をテストする重要なステージです。
- 生産・実装– テスト段階がすべて終了し、OKが出たら、製品は市場に投入されます。
- メンテナンス– 開発チームは、製品の継続的なアップグレードとバグフィックスを実施します。 また、製品の競争力を維持するために新機能を追加しています。
アジャイル
アジャイルマニフェストに基づくアジャイル方式は、開発者がソフトウェア開発サイクルで使用する、より新しい形式である。 この方法は、事前にすべてのプランニングを行うのではなく、MVP(Minimum Viable Products)を反復して開発し、リーンであることに重点を置いています。
アジャイル手法は、2017年2月に制定されたアジャイルマニフェストを遵守し、チームワーク、継続的な反復、改善、ユーザーフィードバック、クライアント要件への適応性を重視します。
アジャイルでは、プロジェクト開発の異なるフェーズが並行して行われ、バックログは追加された機能や改善点を追跡します。 アジャイルの代表的な実装には、スクラム、カンバン、FDD(Feature Driven Development)、ASD(Adaptive System Development)、XP(Extreme Programming)などがある。
プロジェクトに合わせた選択
ウォーターフォールとアジャイルのどちらの開発手法も有効であり、高品質の製品を作ることができます。 どちらも柔軟性と安定性があり、プロジェクトの計画中に整理整頓をするのに役立ちます。
ウォーターフォールを使えるのは、こんなとき。
クライアントは、プロジェクトの途中で要件を変更することはないだろう。 そのため、結果が予測できるシンプルなプロジェクトや、明確な要件を持つクライアントに適しています。 ウォーターフォールの安定性と、直線的で構造化された開発経路は、プロジェクト開発チームを容易にします。
アジャイル開発は、より進化的なスタイルで開発を進めます。
アジャイルはこんな時に使えます。
目の前の市場が少し不確かで、新しい製品を素早く作らなければならないとき、アジャイルは実現可能な解決策になるだろう。
また、アジャイルは、将来にわたってコストのかかるミスを犯すわけにはいかない場合や、プロジェクトに関する情報があまりない場合にも有効なソリューションです。 また、厳しい条件を設ける余裕がない場合も良いと思います。
特に要件がどんどん変わっていく中で、変更を加えたくない、コストを削減したい、エラーが発生したときに修正したい、プロジェクト開発サイクル中の不確実性を排除したい、といった場合には、アジャイルは良い選択でしょう。 これが、スタートアップがアジャイルに賛成する理由でしょう。
アジャイル開発では、テスターと開発者が協力し、各意図が終了した時点で製品を出荷し、クライアントに引き渡します。 変更・更新された機能は以下の通りです。
は、すぐに機能を開始することができます。
一目でわかる違い。
ウォーターフォールのプロセスは、作業が完了してからテストするため、間違いを修正することが困難です。
アジャイルは柔軟性に富んでおり、常に変化する要件に対応するため、記録の正確さは要求されません。
しかし、このようなプロジェクトは失敗する可能性が高いので、慎重に進めることが重要です。 この方法は、経験豊富な開発者や、プロジェクトに十分な投資をしているクライアントほど適しています。 ウォーターフォールでは、綿密な記録を取りながら、明確な道筋で進んでいくので、小刻みな動きは許されないのです。 開発者は、最終製品がどのようなものになるのか、容易に予測することができます。 一旦、プロジェクトの一段階が終了すると、再実行や変更は容易ではありません。 プロジェクトのサイズからタイムラインまで、プロジェクトのすべての要素が所定の場所に配置され
の予算が必要です。
アジャイルは、改善のための十分なスペースを与える漸進的な設計プロセスで動きます。 これは、プロジェクトが様々なモデルに分割され、広範囲に渡ってテストと評価が行われるからです。
ウォーターフォールの線形アプローチのプロセス。
- ドキュメント要件の収集
- デザインを作る
- コードとユニットテスト
- システムテスト
- UATユーザー受入テストの実施
- 問題点の修正
- 完成品をクライアントに納品
- あらゆるプロジェクトに最適
アジャイルのスプリントアプローチのプロセス
- ソフトウェア設計のインクリメンタル・アプローチ
- 製品は2〜4週間のイテレーションでテストされる
- クライアントに製品を見てもらい、変更を提案する。
- 小規模なプロジェクトに最適
結論
アジャイルとウォーターフォールの両方を経験すると、明確なゴールと明確な進行のあるプロジェクトを求めるなら、ウォーターフォールが良い選択であることは明らかです。 プロジェクトが完成に向けて進化していくことを望むなら、アジャイル方式を採用しましょう。 最初の段階で考えていた以上のものになるかもしれません。
Flikr ://visualpun.ch, mandaruby, Lena Ellis