ITプロジェクトにおける開発手法には、伝統的なウォーターフォール方式と比較的新しいアジャイル方式があります。
まずは「2つの開発手法の違いがいまいちわからない😥」という方にそれぞれの特徴とメリット・デメリット、相性の良いプロジェクトを紹介させていただきます。
その後、生存戦略として様々な企業において急務の課題となっているDX(デジタルトランスフォーメーション)を推進するには、一般的にどちらの開発手法を採用すれば良いのかを解説させていただきます 💪
もくじ
アジャイル開発は一言でいうと「反復増加型」の開発手法であるといえます。
数週間から数ヶ月単位を1サイクルとして区切り、1サイクルの中で機能の開発からテスト、リリースを行います。英単語の「agile」(素早さ)が語源である通り、スピーディーな開発手法だといえます。
プロジェクト全体の流れとしては、まず「計画策定フェーズ」があります。
作りたいサービス・ソフトウェアのイメージを持った上で仕様を描きます。後のフェーズでプロトタイプを触ってから細かい仕様を決めることが多いため、この段階では仕様を決め込みすぎる必要はありません。
また、どの機能からリリースしていきたいか優先順位をつけ、サイクルに区切ります。
次に「開発フェーズ」です。仕様がほとんど決まっていない場合は、開発フェーズでプロトタイプを作成し、クライアントやユーザーに実際に触ってもらいます。
そこで感想・意見を回収し、細かい仕様を決めていくことが多いです。
最後に「テストフェーズ」です。
アジャイル開発の場合は、開発者自身で単体テスト、システムテストを行うことが基本です。
開発者によるテスト完了後は、実際のユーザーに業務に即したシナリオで受入れテストを実施してもらい、問題なければ機能をリリースします。
この開発、テスト、リリースのサイクルを複数回実施することで最終的なサービス・ソフトウェアを完成させる手法だと言えます。
アジャイル開発のメリットは2つあります。
1つ目が「要望が形になるのが速いこと」です。
アジャイル開発では、全機能作り込んでからではなく、完成した機能から順次リリースしていきます。リリースの優先順位は柔軟に決めれるため、環境の変化や、社内の都合を加味した要望がタイムリーに反映されます。
2つ目が「手戻り工数が少ないこと」です。
アジャイル開発は、開発フェーズでユーザーの意見を取り入れシステムを改善していくため、要件定義と設計と開発が同時進行しているようなものです。そのため、設計不備や仕様漏れが発覚しても、手戻りの工数が膨らむことはありません。
アジャイル開発のデメリットは「マネジメントが難しいこと」です。
アジャイル開発は柔軟な開発手法であるからこそ、ユーザーの意見を取り入れて機能を改善したり、サイクルの優先順位を変えることが多々あります。事前に見積もっていた工数やスケジュールがあてにならなくなることもあり、柔軟に計画を変更しながらマネジメントしていく必要があります。
アジャイル開発は柔軟に計画を変更できるため、新規サービス開発と相性が良いです。
新規サービスの場合、そのサービスがユーザーに受け入れられ、伸びていくかは実際に市場に出すまでわからないことが多いです。アジャイル開発の場合、新規サービスのコア機能をまずはリリースし、ユーザーの反応を見てから改善する、もしくは撤退することもできるため、低コストで仮説を検証することができます。
ウォーターフォール開発は一言でいうと「計画型」の開発手法であるといえます。
滝の流れのように要件定義から設計・開発・テスト・リリースと上流工程から下流工程へ進んでいき、原則不可逆性を持っています。
プロジェクト全体の流れとしては、まず「要件定義フェーズ」があります。
作りたいサービス・ソフトウェアの細かい仕様まで要件定義の時点で決めきります。
次に「設計フェーズ」です。
要件定義フェーズで定めた仕様に基づき、ロジックレベルの基本設計、コードレベルの詳細設計を行います。
次に「開発フェーズ」です。設計フェーズで作成した設計書に基づき、コーディングを行います。
最後に「テストフェーズ」です。詳細設計に記載したロジックを全て検証する単体テスト、他システムとの連携やジョブでの実行を検証するシステムテスト、実際のユーザーが業務に即したシナリオを試す受入れテストの順に実施します。
それぞれのテストで問題なければシステムをリリースします。
計画に沿って要件定義からリリースまでを一連の流れで行い、サービス・ソフトウェアの完成品を一気に作り込む手法だと言えます。
ウォーターフォール開発のメリットは「マネジメントしやすいこと」です。
ウォーターフォール開発では、要件定義フェーズでシステムの細かい仕様まで確定させています。そのため後続の設計や開発、テストにかかる工数が予測しやすく、スケジュールの計画や予算の見積もりが立てやすいです。
ウォーターフォールのデメリットの1つ目が「要望が形になるのが遅いこと」です。
ウォーターフォール開発では、一般的に、計画していた機能の要件定義からテストまでのフェーズが全て完了してからシステムリリースとなるため、要望が形になるまでのスパンが非常に長くなります。
2つ目が「手戻り工数が多いことです」です。
例えば、開発フェーズにて仕様漏れが発覚した場合、前段の設計フェーズに戻って設計書修正、改修の流れとなり手戻りが大きいです。滝を逆行する事態になると疲弊してしまいます。
ウォーターフォール開発は、計画に沿って進めていく必要がある大規模ERPシステムの導入などと相性が良いです。ERP とは Enterprise Resources Planning( 企業資源計画 ) の略で、経営資源を見える化し統合的かつリアルタイムに管理することを意味します。ERPシステムでは SAP や Oracle がメジャーです。
大規模 ERP 導入の場合、すでに既存の業務があるため、新しいシステムにどんな要件が必要なのか既に明確になっているケースが多いです。
要件が定まっている場合、ウォーターフォール型であれば予算とスケジュール通りに進めていきやすく、マネジメントが容易なため大規模プロジェクトで多く採用されています。
近年、企業規模問わず急務の課題となっているDX(デジタルトランスフォーメーション)ですが、アジャイルとウォーターフォールではどちらが相性が良いのでしょうか?
まず DX とは、新しいテクノロジーを活用し、革新的なビジネスモデルや新しいサービス・顧客体験を創出することとともに、下支えとなる業務プロセスや業務システム、組織構造、企業文化を変革することを意味します。
簡単に言い換えると、DX とは「新規事業 × テクノロジー」で「変革を起こすこと」だといえます。
DX は新しいことを実現する取り組みのため、柔軟に新しい技術を取り入れたり、ユーザーの意見を聞いて改善していく必要があります。
そのため、上記でも解説させていただいた通り、アジャイル開発の方がDX(デジタルトランスフォーメーション)と相性がよいと言えます✨
ラジコードの定額制受託開発では、社内にシステムに明るい人材がいなくても問題ありません!
議論を深めて「本当に作りたいもの」を探すお手伝いをいたします。
IT化に向けお困りのことがございましたら、ぜひお気軽にご相談ください。
ラジコードに相談する