top of page

アジャイル開発で開発期間が長く、費用もかさんでしまった失敗例

更新日:2022年5月13日

ほんとにここ数年はアジャイル開発という言葉が飛び交っています。

しかし、どうもアジャイル開発に慣れていない場合、トラブルが頻発しているように思えます。

そこでアジャイル開発の考え方について少し説明してみます。



【失敗例】アジャイル開発なのに開発期間が長くなり費用もかさんでしまいました


一概に間違いではありません。アジャイル開発とは機能単位で設計、構築、テストを行う開発作業のことです。


設計もしくは構築段階で機能の修正などをフレキシブルに行うことが出来るメリットがあり、全体的には開発期間が短くなると言われています。


アジャイル開発ではその手法からあまりガチガチに仕様を確定させないことが多いです。

ざっくりとは言いませんが未確定要素を残したまま設計に進むことで仕様変更に対応できるメリットがあります。


メリットばかりと思いアジャイル開発で開発を依頼したところ、開発期間が延びてしまったケースをよく聞きます。


開発期間が想定よりも多めにかかってしまったということは費用も想定よりも高額になってしまいます。



メリットばかりだと思っていたアジャイル開発の選択がなぜ思った通りに行かなかったのでしょうか。


【失敗の理由】アジャイル開発だから仕様変更は当たり前の罠


確かにアジャイル開発は慣れているのであれば開発期間を短期化でき、予算を抑えることが出来ます。


しかし、開発手法に慣れていないと工期が延びてしまうことになります。

その理由として私は以下が原因だと考えています。


・仕様変更が当たり前のズレ

・開発期間に関する考え方のズレ

・発注会社と開発会社でコミュニケーションが上手に取れていない



仕様変更が当たり前のズレ


機能単位で開発を進めていくアジャイル開発は機能の修正に対応しやすいメリットがあります。

しかしそれは、


とりあえずスタートして後から考える


とは違うのです。


要件定義や外部設計はしっかりと行った上で初めてアジャイル開発が活きてくると考えます。


構築する全体像はカッチリと固まっていることが条件でありその上で各機能に対して若干の修正を行うことがアジャイル開発の本質です。


機能内における仕様の変更であれば問題ありませんが、詳細設計が大きく異なってしまうような場合は開発期間が延長しコストもその分かかってしまいます。


開発会社の立場からすれば、アジャイル開発の認識であればある程度の仕様変更については想定しています。


ただ仕様変更が機能単位ではなく全体に及ぼすような場合は「改修」となるため、再見積もりになります。


ラボ型開発であれば成果物担保がありませんから仕様変更については柔軟に対応してくれますが、開発期間が延びるわけですから当初の人月計算よりも長期の契約になります。


アジャイル開発で考えるべきは、


機能単位での仕様変更に柔軟である


という点です。


開発期間に関するズレ


ウォーターフォール開発は後戻りを想定していません。従って開発期間なども読みやすくなります。


しかしアジャイル開発は機能単位で開発を行い、その途中で仕様の変更が入ることがほとんどですから開発期間を厳密に読み切ることはできません。


そのためアジャイル開発では開発期間をギチギチに設定しないのが常です。

とはいえ、おしりが全く見えない開発などあり得ません。


アジャイル開発を行う場合、機能単位で修正作業が入ることをあらかじめ想定した上でゆとりある期間設定を行う必要があります。


機能上の修正であってもその内容によっては調査・検証作業が入り込んできます。


そのため発注者側が想定しているよりも期間が延びてしまうことがほとんどです。


開発会社が修正内容について知見があればズレは小さくなりますが、機能要件の段階で見えない箇所がある以上、100%知見があるということはあり得ないのです。



アジャイルで開発する場合はウォーターフォール開発よりも進捗管理にゆとりを持たせることが失敗しないコツだと考えます。


発注会社と開発会社でコミュニケーションが上手に取れていない


機能ごとの仕様が100%確定していないまま設計、構築に突入するわけですからコミュニケーションは何よりも大切になります。


仕様が流動的になりますから日を追うごとに仕様が確定するような流れになりがちです。


これは一方通行ではありません。


仕様の確定に合わせて構築を行っているとどうしても実現できないようなケース(仕様問題)も出てきます。


その場合、発注者と開発会社で代替案を出す必要があります。

このような時は頻繁にコミュニケーションを取り、どうやったら実現できるか?を両社で検討する時間が必要になります。


フレキシブルにオンライン会議が組めないような体制だとそれだけ時間が経過してしまい結果としてコスト高になってしまいます。


昨今では、Teams、Slackなどチャットツールでのやり取りが開発業界で一般化していますがそこで解決するケースは50%くらいだと思います。


オンライン会議などでお互いの考えをはっきりと伝える機会も俊敏に作ることが出来ないとアジャイル開発はうまく機能しないといえます。


ちなみに弊社では


Web系システムやモバイルアプリなどはアジャイル開発で特に気を遣います。


前述しましたが全体の仕様はできるだけ確定させるようなヒアリングを行い、開発指針がブレやすくなる危険があるアジャイル開発に一本芯を入れるようにすることを命題にしています。


開発スタート前に機能単位の修正についてもあらかじめ想定案を出すなど不確定要素をできるだけ小さくする動きをします。


変更内容に対してできるだけ、知見が無い、というリスクを取らないようにすることで開発期間の延びを防ぐようにしています。

bottom of page