- 週間ランキング
本記事は、Eminesoftの編集長でありマーケターのEllina Bereza氏によって投稿されました。
アジャイル開発とウォーターフォール開発という方法論の対立は、少し前まで非常に注目を集めていました。
2つの手法の特性からしても話題性があるのは当然のこと。たくさんの専門家によって分析がおこなわれ、多くの本が発行されるなど、この論争は多岐にわたって検証されてきました。
いまだにどちらの方法論を使うか迷う、という冗談は開発者の間でよく聞かれますが、この冗談は実は的を射ています。ここではアジャイルとウォーターフォールの違いについて説明し、どのような場面でどちらが最適かを述べていきます。
まずはウォーターフォールとアジャイルについて概要を説明していきましょう。
ウォーターフォールという手法は非常に簡潔で、極めて古典的な発想の開発マネジメントシステムです。配信日やプロジェクト完了期日が決定しており、さらに製品の最終仕様が開発の途中で変更されないなど、緻密な計画を立てて開発するのがウォーターフォール型の手法です。
そのためしっかりと計画が立てられた長期のプロジェクトで最もよく採用されます。
この手法は機械の製造や造船業、そして宇宙産業などさまざまな種類の開発に応用できます。
ウォターフォール型の開発は、例えばERPシステム(統合業務ソフト)の導入やすでに人気を得ている大規模なソフトウェアまたはオペレーションシステムの新バージョンの開発など、ソフトウェア開発にも非常によく応用されています。
しかし、もし新しい技術を取り入れるなど、開発の途中でやり方を頻繁に変えざるをえないタイプの場合、どのような対処をするべきでしょうか。現実にモバイル業界は常に高速で成長しており、新しい枠組みはほぼ6カ月ごとに開発されているような状態です。
このような業界ではソフトウェアの開発のために、どの開発手法を採用するのか臨機応変に決める必要があります。そんな時はアジャイルの出番です。ウォーターフォールに対してアジャイルは柔軟な開発手法です。
アジャイル開発には「スクラム開発」という代表的な方法があります。「スクラム開発」は速いスピードで変化するモバイル業界にとって、臨機応変に対応することができる理想的な解決方法といってもいいでしょう。
実際にスクラム開発は求められる最終仕様に近づけるために、タイミングごとに作業を分析し修正します。プロジェクトには製品開発を担当するチームやテストを担当するチームなど幾つかのチームが参加し、密に連携を取りながら「小さな」機能を開発する作業を繰り返し、完成を目指します。
開発の過程を見守ることができる点、そして修正を加える時間がある点が、顧客だけでなくエンドユーザーにとっても最大の利点です。「スクラム開発」はチーム一丸となって開発に取り組むため、作業を行う上で大きなモチベーションになります。
また、顧客のニーズに臨機応変に応えることができるため、顧客との信頼関係を築くことが可能なのです。
ここからはウォーターフォールとアジャイルのメリットとデメリットを紹介します。
アジャイル vs.ウォーターフォール、どちらのほうが優れていると思いましたか。
アジャイルとウォーターフォールの方法論はそれぞれプラス面とマイナス面があります。ほとんどの場合、開発はどちらか一方の方法論によって実現することが可能です。
世界的な傾向をいうならば、プロジェクトが求める仕様とインプットするデータによって、どちらのメソッドを選ぶかが決まります。言い換えると、方法論の選択は開発における力量と締め切りまでの期間、そして最終製品に求められる品質によって変わってくるのです。
モバイルソフトウェアの開発に最適なプロジェクトマネジメントの方法、そしてそれを選ぶ基準は以下の通りです。
いかがでしたでしょうか。
どちらかに絞るのではなく、ウォーターフォール開発とアジャイル開発両方の良い点を生かすように組み合わせるというのもひとつの方法ですね。いろいろ検討してみてください。
また、TechAcademyでは初心者でも最短4週間でエンジニアになれるオンラインブートキャンプを開催しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。
プログラミングスキルを身につけたい方もこれからエンジニアとして働きたいと考えている方もぜひご覧ください。