アジャイル開発とは?特徴や費用・見積もりの内容までプロが解説
- 「アジャイル開発やスクラムってよく聞くけどその意味は?」
- 「アジャイル開発とウォーターフォール開発はどう違うの?」
- 「アジャイル開発の見積もりってどうするの?」
という疑問をお持ちではありませんか?
そこでこの記事では、アジャイル開発に関するお悩みを、開発会社を経営するプロの視点から説明します。
アジャイル開発についてよく分かる内容となっておりますので、ぜひ読んでみてください。
アジャイル開発のご依頼はお任せください
- 優秀なエンジニアを採用できない
- 最初の要件定義から変えられない
- 大きく作りすぎて失敗する
こうした課題は、アジャイル開発で実際に見受けられます。そこでおすすめしたいのが、当社の「月額制アジャイル開発」です。企業の垣根を超えて、自社エンジニアのイメージでスムーズに業務をご依頼いただけます。
外部CTOとしてサポートでき、良い緊張感系を保ちつつ成果にコミットできる開発手法で、プロジェクトの成功を一緒に目指しましょう。
「アジャイル開発」とは複数ある開発手法の1つ
アジャイル開発とは、プロジェクトを小さい単位で区切って開発作業をおこなっていく手法です。
アジャイルには「素早い」や「機敏」といった意味があり、開発現場においては短期間のサイクルで開発工程を繰り返していくのが基本です。
イテレーション(反復)と呼ばれるサイクルが基軸となり、具体的には「計画」→「設計」→「実装」→「テスト」という順で作業をおこない、リリースを繰り返していきます。
アジャイル開発では「機能単位」でイテレーションをおこなっていくため、プロジェクトの大枠が決まっていれば開発を進められます。
また、複数のサイクルによってプロジェクトが構成されるので、計画途中の仕様変更にも柔軟に対応できます。
優先度が高いものから着手し、最終的にそれぞれの機能を合わせて完成させる流れになるのが、アジャイル開発という手法の特徴です。
また、アジャイル開発の一般的に知られている特徴は、以下の4つがあります。
- 継続的な開発とリリース
- 変化する開発要件への適応
- 顧客側×開発側のシナジー
- プロセス・業務の改善
特徴①継続的な開発とリリース
アジャイル開発は、1度の開発で終わるものではなく、継続して実装・改善を繰り返します。
従来の開発方法では、要件定義の変更が入ると見積もりからやり直さなければならず、大きな「ロス」が発生していました。
そこでアジャイルを選べば、仕様変更へ柔軟に対応し、現代のニーズにあった継続的な開発とリリースが実現できるわけです。
特徴②変化する開発要件への適応
先ほども触れたように、アジャイル開発は変化する開発要件への適応力が非常に高いです。
機能や要求をプロダクトバックログと呼ばれるリストで管理し、追加開発から改善まで柔軟に対応できるためです。
サービスを継続するうちに、既存の機能をブラッシュアップするといったことも可能です。
特徴③顧客側×開発側のシナジー
アジャイル開発には、顧客側×開発側のシナジー効果も期待できます。
発注する側と受注を受ける側のパワーバランスをフラットに保ちつつ、今後の開発について密にコミュニケーションを取れるためです。
開発を丸投げしてしまえば、確かに簡単ですが「求めるサービス」を受けられない可能性は十分にあります。
顧客側×開発側という一つのチームとしての活動が、ユーザーに最高の体験を届ける重要な要素となり、シナジー効果を受けてプロダクトは成長します。
特徴④プロセス・業務の改善
アジャイル開発では短いイテレーションと呼ばれる期間を終えるごとに、振り返りのタイミングがありますから、よかったこと・悪かったことを話し合い「プロセス・業務の改善」が定期的におこなわれます。
そうすると、開発期間を短くできたり、より要望に近いところから実装できたり、かけた費用以上の効果が期待できるわけです。
また、この方法であれば「何が正解かわからない」というプロジェクトでも、ブラッシュアップを続けて正解を導き出しながらサービスをグロースできるのもポイントです。
アジャイル開発はリファインメントが大切
アジャイル開発のスクラムに限らず、見積もりでもリファインメントが大切です。リファインメントは、プロダクトバックログの各項目に対して、詳細の追加・見積もり・並び替え等をおこなうことです。
認識のすり合わせや実装方法の検討、ユーザーストーリーの見積もり等に利用されます。そのため、質のよいユーザーストーリーを作るためにも欠かせません。
プロダクトオーナーと調整し、小さく保ちながらも実装のイメージを固めて、1〜2スプリントほど出せているとよいでしょう。
アジャイル開発の見積もりから開発完了まで、リファインメントによって適切に調整できるシステム開発会社に依頼できると安心です。
ウォーターフォール開発との違い
アジャイル開発の比較対象とされるのが、ウォーターフォール開発です。
ウォーターフォール開発は従来の開発スタイル(一括請負契約で多い)として知られ、初期段階でプロジェクト全体の要件定義や設計を決めてしまうのが特徴となっています。
「計画」→「設計」→「実装」→「テスト」という順で開発工程を進めていく点はアジャイル開発と同様ですが、こちらは小単位ではなくプロジェクト全体を一つのサイクルとして捉えます。
そのため、後から計画内容を変更することが難しく、成果物を受け取れるのはプロジェクトがすべて完了してからです。
アジャイル開発とウォーターフォール開発の違いをまとめると、以下のような表になります。
アジャイル開発 | ウォーターフォール開発 |
---|---|
・プロジェクトを機能単位で区切る ・大枠を決めた段階で開発を始める ・イテレーションによるサイクルを繰り返す ・機能が完成するごとにリリースする ・必要に応じて計画の変更をおこなう | ・プロジェクトを全体で一つのものとして捉える ・要件定義や計画を厳密に決めてから開発を始める ・プロジェクト全体を一つの単位として計画を進める ・すべての開発工程が終了してからリリースする ・基本的に計画の変更ができない |
ウォーターフォール開発は綿密にプロジェクトを計画できる一方で、突然の仕様変更などに弱いといえるでしょう。
アジャイル開発の代表的なスクラム開発
アジャイル開発の代表的な手法は、主に以下の特徴を持った「スクラム開発」が採用されます。
成果の最大化 | 価値・リスク・必要性を基準に並べ替えて開発する |
---|---|
タイムボックス(スプリント) | 短い時間に区切って作業を進める |
透明性 | 現状の状況や問題点は常に明らかにする |
検査 | 定期的に進捗状況・成果・進め方を確認する |
適応 | 問題が発生した場合は進め方等を適切に変更する |
機能や要求をプロダクトバックログと呼ばれるリストで管理し、仕様変更や追加開発へ柔軟に対応できます。
そのため、新規事業等において不明点が多いケースや、複雑な問題の解決に適したアジャイルの手法です。
アジャイル開発を選ぶメリット
アジャイル開発を採用するメリットは、以下の3つです。
- システムの仕様を全て決める必要がない
- 動くシステムをすぐに触ることができる
- 細かい仕様変更に対応できる
システムの仕様を全て決める必要がない
アジャイル開発はシステムの使用をすべて決める必要がないため、開発をすぐに始めることができます。
スピーディに計画を進められるので、短期での納期を考えているときにはメリットが大きくなるでしょう。
システムの仕様を綿密に決めないということは、開発しながら必要な機能を適宜取り入れていけるということにもなります。
開発に関わる人たちとコミュニケーションを取りながら、話し合いの結果を採用していけるので、そのときに求められる最適な機能を実装可能です。
ビジョンはあるけれど、明確な仕様まではまだ決まっていないという場合にも、開発を進めることができるでしょう。
動くシステムをすぐに触ることができる
アジャイル開発はイテレーションごとに機能を完成させ、その度にリリースする開発方法です。
そのため、実際に動くシステムをすぐに触って、その使い心地を確かめることができます。
システムの感触を確認した上で次のサイクルに移行できるので、開発結果をどんどん反映しながらプロジェクトを進められるのがメリットです。
実際にシステムを動かしてみると、「もっと〇〇のような機能がほしい」「この部分は削除しても問題なさそうだ」といった具体的なプランが見えてくることがあります。
アジャイル開発を採用することで、現場だからわかる情報を頼りに計画を進めていくこともできるかもしれません。
細かい仕様変更に対応できる
アジャイル開発はプロジェクトを区切って開発をおこなうため、途中で細かい仕様変更が必要になっても対応可能です。
仮に急な仕様変更が求められても臨機応変に開発プランを変更して進められるので、プロジェクトにおけるリスクを最小限に抑えることができるでしょう。
また、開発途中にトラブルが発生した場合も、アジャイル開発であれば少ない工数で修正をおこなうことができます。
機能が完成するごとにリリースされるので不具合にも気づきやすく、イテレーションを確認することで簡単に対処可能です。
一方でウォーターフォール開発の場合には、不具合が発覚した部分によっては多くの工数を戻らなければならず、時間と費用が大きくなるリスクがあります。
開発途中に万が一問題が起きたときにも対処しやすいので、アジャイル開発はリスクヘッジの点でもメリットがあると言えるでしょう。
アジャイル開発で進めるときのデメリット
アジャイル開発を導入する前に気をつけたいデメリットは、以下の2つです。
- 予算・完成時期の予測がしづらい
- クライアントと開発会社が一蓮托生で動く必要がある
予算・完成時期の予測がしづらい
アジャイル開発は最初に細かな要件定義をおこなわないため、プロジェクトの予算や完成時期を予測することが難しいです。
具体的にどれくらいの費用がかかるのか、いつ頃完成品がリリースされるのかといった点については、概算で把握しなければならないでしょう。
プロジェクトの詳細が決められていないため、今がどの程度の進捗状況なのかといった現状把握も難しいです。
スケジュールを立てたり、エンジニアの動きをコントロールしたりといった作業も難易度が高くなるため、気づいたときには予定していた納期に間に合わなくなっているというケースも考えられます。
クライアントと開発会社が一蓮托生で動く必要がある
基本的にアジャイル開発では、クライアントと開発会社が結託してプロジェクトを動かしていかなければなりません。
詳細を決めずに開発を進めるという性質上、アジャイル開発の最中には方向性がズレたり、当初の目的がブレたりといったことも多いです。
そのため常にクライアントと開発会社が一蓮托生で動き、プロジェクトの問題点や課題を確認し合う関係性が必要になります。
アジャイル開発においては、クライアントもメンバーの一員として数えられます。
積極的なコミュニケーションを通して、相互に協力し合える関係性を築くことがポイントです。
アジャイル開発で不安があるならジツゲン!に相談
アジャイル開発の内容を知ることで、不安に感じたことや、疑問に思ったことなどがあったかと思います。
もし、不安なことがあるならジツゲン!にご相談ください。
月額制アジャイル開発なら、完全定額制に対応しています。
要件定義からアジャイルが本当に適切な開発手法なのかまで、適切なソリューションを提案します。
アジャイル開発の工程・流れ
アジャイル開発の工程・流れは以下のとおりです。非常に短いですが、何度も繰り返されることで1つの大きなWebシステムを作成できる便利な手法です。
- 計画
- 設計
- 実装(開発)
- テスト
アジャイル開発では、この4つの工程を何度も繰り返すことで1つのシステムを開発していきます。
そのため、計画の時点では検討していなかった追加機能がテストの段階で見つかったら、開発したあとに検討して次の計画に盛り込むといったことが可能です。
1つの機能を単位として小さいサイクルを回していくことをインテレーション(反復)と呼び、1週間から4週間ごとに何度もリリースを繰り返します。
アジャイル開発を成功させるための秘訣と課題
アジャイル開発を成功させるためには、以下のようなポイントを押さえておきましょう。
- 計画は丁寧に進める
- バグやトラブルの対処は起きることを予想する
- 品質の担保のために費用を用意しておく
こうした項目は、しばしば課題に挙がることがあります。
アジャイル開発は、何度も同じプロセスを繰り返していく手法のため、計画を丁寧に進めなければ余計な工数が増えるばかりでゴールに辿り着けません。
新しい機能などを追加していくうちに、気がついたら本来作成したかったシステムとはかけ離れることがあるでしょう。
また、小さくリリースしてはユーザーやオーナーの意見に基づいて修正していくため、バグやトラブルの対処は意外に多くあります。
まったくバグ・トラブルなく慎重に進めていきたいと考えても、起きることを予想して動けるようにしておくとよいでしょう。
品質の担保のために使える予算を十分に用意し、不足の事態にも対応できる余裕を持って開発をスタートさせるのがおすすめです。
アジャイル開発が向いているプロジェクト
アジャイル開発が向いているプロジェクトの代表例は以下の2つです。
- 新規サービスの開発
- やってみないとわからない開発
新規サービスの開発
新規で立ち上げるサービスの開発プランに関しては、アジャイル開発が向いていると言えます。
新規事業の場合には参考にできるデータが限られているため、サービスの要件は常に変わる可能性があり、事前に予測した予算や時間ではまかなえないことも珍しくありません。
そのためがっちりと事前に要件と予算を決めてしまうウォーターフォール開発よりも、アジャイル開発の方がマッチするでしょう。
特に技術の進歩が早く、トレンドの移り変わりが激しい分野で新規サービスの開発をおこなう場合には、仕様変更が求められることが増えます。
こまめに修正や追加をおこなっていくことを見越して、アジャイル開発を導入することが検討されるでしょう。
やってみないとわからない開発
実際にシステムを導入してからでなければ明確なことがわからない事業でも、アジャイル開発がおすすめです。
例えばAIの導入などを実施する場合、まず実際に試してみなければどの程度の精度が出せるのか判断できません。
結果を参考にその後の仕様を決定することになるので、仕様変更を前提として捉えられるアジャイル開発が向いています。
計画段階で不確実な要素が多いプロジェクトには、アジャイル開発を採用することが考えられるでしょう。
アジャイル開発の見積もりポイント
結論からいうと、アジャイル開発の見積もりで知っておきたいポイントは「おおよその見積もりの金額」となりやすいことです。
新規事業等では追加の要件が発生します。ユーザーから得たフィードバックによって調整・修正をおこなう場合もあります。
また、一定のバッファを用意したり、開発期間の目安から算出したり、金額は企業ごとに異なるのも特徴の1つです。
すべて正確に見積もりを出すためには、各項目を詳細に調べて算出するといった膨大な時間を要します。
では、どのようにアジャイル開発の見積もりを出しているのか流れを次項で紹介します。
アジャイル開発の見積もりの流れ
アジャイル開発の見積もりは、以下の流れが一般的です。ただし後述しますが、見積もりに使われる手法によっては、異なる場合がありますので注意してください。
- ベロシティを割り出す
- それぞれのタスクにかかる工数を見積もる
- 見積もり金額と開発期間の決定
ベロシティを割り出す
まず、ベロシティの割り出しからおこないます。ベロシティは、スクラムの開発チームにおける『1つのスプリント』で、『どれだけの作業を進められるのか』を明確にできる指標です。
たとえば、ベロシティが「30」、1つのスプリントに必要な期間が「1ヶ月」だとします。システム開発全体に必要な作業量を「300」とすると、10ヶ月で完了する予想です。
ベロシティはシステム開発会社によって異なり、過去のスプリントで完了した作業量をベースにします。
おおよその数値ではありますが、経験が豊富であるほど現実的な予想値となりますので、見積もりのベースとして利用されます。
それぞれのタスクにかかる工数を見積もる
ベロシティを割り出したら、開発要件に合わせて必要な各項目の工数を見積もります。たとえば、トップ画面を制作するのに必要な時間や工数、設計からテストまでの工程・期間等です。
スクラム開発を採用している場合は、プロダクトバックログにリスト化されている項目が見積もりの対象です。
会議や雑務に必要な時間が含まれるケースもある
アジャイル開発では、進捗等の報告に必要な会議や、その他の小さな工数などが見積もりにバッファとして含まれます。
プロジェクトの方針や企業によって異なりますので、気になる人は確認しましょう。
見積もり金額と開発期間の決定
それぞれのタスクにかかる工数(期間)が明確になると、おおよその見積もり金額が算出可能です。
また、ラボ型や月額制を採用している開発会社であれば、開発期間の目安から見積もりが予想されます。
こちらからは、アジャイル開発の見積もりで使われる手法を紹介します。
アジャイル開発の見積もりで使われる手法
アジャイル開発の見積もりで使われる代表的な手法は、以下の2つです。
- プランニングポーカー
- ストーリーポイント
プランニングポーカー
アジャイル開発の見積もりで使われる「プランニングポーカー」は、タスクを見積もる手法の1つです。フィボナッチ数列が記載されたカードを使い、チームメンバーそれぞれがカードを出し合った結果から「相対見積もり」します。
開発チーム内でコミュニケーションがおこなわれ、カードの数値や意見から見積もりに発生するギャップを埋めて算出します。
- 見積もりの担当者が出す数値
- 実装担当者(SE)が出す数値
上記の2点でギャップが生まれ、実際よりも期間が前後すると「見積もりにもブレ」が発生します。
担当者が1人で見積もりを出すより、チーム全体の認識とすり合わせられるため、現実的な数値での見積もりが可能となります。
【一言メモ】
フィボナッチ数列で使われる数字は「時間」に相当するものではありません。
5だから5時間ではなく、5ポイントとして考えます。チームのベロシティが5ポイント、1スプリントが1週間である場合、1週間で実行できるタスクという指標のように用いられます。
※後述するストーリーポイントも同様です。
ストーリーポイント
ストーリーポイントは、プランニングポーカーでタスクを見積もるときに「1・2・4・5・8・13・21・40」の数値で課題の大きさを決定する手法です。プロダクトバックログの各項目に、必要な労力全体の見積もりを測定する単位として用いられます。
プランニングポーカーで利用したフィボナッチ数列の「1・2・3・5・8・13・21・34・55…」と似ており、それぞれの数値が離れていることで近い数字を割り当てやすくなります。
実際に利用する場合は、プランニングポーカーによって設定されるのが一般的です。
見積もりコストを減らして安定したアジャイルを求めるなら
見積もりコストを減らして、安定したアジャイル開発を求めている場合は「月額制アジャイル開発」がおすすめです。MVP・アジャイル開発に対応し、完全月額制でコスト管理の手間を省けます。
一括請負契約 | 準委任契約(月額開発等) | |
---|---|---|
コスト | 数百から数千万円 | 月額39.8万円〜 |
目標 | システムの完成 | ユーザーへの価値提供 |
バッファ | あり:2〜3倍 | なし |
スケジュール | 1.要件定義 2.開発 3.リリース 4.フィードバックを得る 5.追加見積 6.修正 | 1.ミニマム版のリリース 2.フィードバックを基に修正 3.α版リリース 4.フィードバックを基に修正 5.β版リリース |
損益分岐 | 開発費が最初にコストとして発生 回収までに数年必要 | 売上を作って開発費を賄う 損益分岐が早い |
納期の捉え方 | 数ヶ月後の納期にコミット | 週次で進捗を共有 スケジュールも合わせて修正 |
月額制アジャイル開発は、柔軟に市場に合わせてサービスを成長させられる開発方法です。大手IT企業やスタートアップ出身者で構成された、Web技術の専門家集団によるグロース面の支援まで受けられます。
まずは、お気軽にお問い合わせください。
アジャイルで見積もりをしないで開発するには
アジャイルで見積もりをしないで開発するには、月額制プロダクト開発といった「準委任契約」による定額制の開発スタンスを選びます。
まったく見積もりがなくなるわけではありませんが、おおよその枠組みだけを決定してプロジェクトをスタートでき、内容が変更されても必要なコストは変動しません。
これにより、以下の無駄を省けますから、よりサービスの提供に力を注げます。
- 見積もりの作成と承認にかかるコスト
- 仕様変更によるコミュニケーション
- 開発に必要な費用のシミュレーション(捻出) など
納品をゴールにするのではなく、一定のコストでチームを雇い入れ、アジャイル開発の強みを最大限に活かせるのが「見積もりをしない」という選択肢というわけです。
【関連記事】近年流行りの月額制受託開発とは?特徴やメリット、デメリットを解説【2022年最新】
アジャイル開発の契約は「準委任」がおすすめ
先ほども触れましたが、アジャイル開発の契約は「準委任」がおすすめです。
項目 | 一括請負契約 | 準委任契約(月額開発等) |
---|---|---|
コスト | 数百から数千万円 | 月額39.8万円〜 |
目標 | システムの完成 | ユーザーへの価値提供 |
バッファ | あり:2〜3倍 | なし |
スケジュール | 1.要件定義 2.開発 3.リリース 4.フィードバックを得る 5.追加見積 6.修正 | 1.ミニマム版のリリース 2.フィードバックを基に修正 3.α版リリース 4.フィードバックを基に修正 5.β版リリース |
損益分岐 | 開発費が最初にコストとして発生し回収までに数年必要 | 売上を作り、開発費を賄うため損益分岐が早い |
納期の捉え方 | 数ヶ月後の納期にコミット | 週次で進捗を共有し、スケジュールもそれに合わせて修正 |
メリット | ・固定の予算内に収めやすい ・明確なプロダクトは制作が安定する ・大規模なプロジェクトに向いている | ・小さく初めて仕様変更に強い ・エンジニアのアドバイスでブラッシュアップできる ・バッファなくスケジュールも見える化 |
デメリット | ・仕様変更に弱く、不要な機能を作ってしまうことも多い ・ブラッシュアップのフローがない ・バッファによって費用が高くなりやすい | ・固定の予算内に収めにくい ・仕様が明確なシステムはコストが高まる ・大規模なプロジェクトに向かない |
※金額は弊社の基準
一括請負契約の場合、固定の予算内で収めながら仕様が明確なプロジェクト(大規模含む)に対応しやすいメリットがあります。
ただ、仕様変更には非常に弱く、柔軟な開発を実現するとよりコストが増えるのがデメリットです。
準委任契約は、小さくはじめて継続して調整でき、エンジニアのアドバイスでブラッシュアップできる中小規模のプロジェクトに向いています。
不定形のサービスを構築する際にも用いられ、一定の月間コストでチームを雇い入れてグロースを目指せます。
こうした違いを考えると、近年のユーザーニーズを満たしやすい準委任契約の柔軟性が非常に有効なわけです。
【関連記事】一括請負契約と準委任契約のシステム開発についてプロがまとめてみた
アジャイル開発で知っておくと便利な用語集
アジャイル開発のスクラムにより共有された進捗シート等で、目にする用語の一例を紹介します。
プロダクトバックログ(PBL) | 機能や要求をリスト化したもの |
プロダクトバックログアイテム(PBI) | PBLに含まれるそれぞれの項目 |
プロダクトオーナー(PO) | ・プロジェクトのオーナー、意思決定者 |
スクラムマスター(SM) | ・プロジェクトのマネージャー、管理者 |
システムエンジニア(SE) | POやSMの指示にしたがって開発するスタッフ |
TechUnit(テックユニット)は、技術コンサルティングと専属エンジニアチームの構築を行うサービスです。
下記に当てはまる方はお気軽にご相談ください。
- ✔ エンジニアが退職してしまった
- ✔ 開発が進まない
- ✔ すぐにエンジニアを増やしたい
- ✔ 今依頼している開発会社に不満がある
費用が発生しないご相談の段階で、「ソースコード解析」「要件定義」に関与し、プロジェクト毎に最適なチームをご提案しております。
プランに応じて柔軟な開発体制を構築いたします。もちろん、開発状況に応じたメンバーの増減も可能です。
無料相談も承っております。まずはお気軽にお問い合わせください!
まとめ
今回は、アジャイル開発について解説しました。
アジャイル開発はウォーターフォール開発にはない多くのメリットがありますので、プロジェクトの内容によっては本格的な採用を検討してみてくださいね。