アジャイル開発における「コミットメント」とは? デスマーチを防ぐ正しい理解

公開 : 2024.02.09 

Scrum Inc.認定スクラムマスターの局です。

アジャイル開発についてのよくある誤解の一つに「アジャイルは短期間の開発ノルマを繰り返し与えられるので辛いプロジェクトになる」というものがあります。
実際に「アジャイル開発を行うとデスマーチが始まるからやりたくない」というエンジニアの声を聞いたこともあります。

こうした誤解を取り除くために、今回はアジャイル開発における「コミットメント」について説明したいと思います。

システム開発のデスマーチとは?

「デスマーチ(death march)」とは、文字通り「死の行進」という意味の英語ですが、IT業界ではよく「計画が破綻寸前の状態でメンバーが過酷な労働環境や過重労働を課されるシステム開発プロジェクト」を表す俗語として使われています。
略して「デスマ」とも言われています。

例えば、開発スケジュールに無理がある、予算が足りない、人員が慢性的に不足しているというような問題を抱えたままのプロジェクトでは、開発メンバーが残業を重ねてなんとか完成させたとしても、成果物が低品質なためにやり直しが必要になり、延々と終わりのない苦行を課されているような状態に陥りやすくなります。
その結果、チームの幸福度が下がり、士気も低下し、デスマと呼ばれる悲惨な状態になってしまうのです。

なぜアジャイルからデスマーチが連想されるのか?

デスマーチとは上記のとおりうまくいっていないシステム開発プロジェクトの悲惨な状態を表しており、「アジャイルでやったからデスマが起きる」というものではありません。
では、なぜアジャイルからデスマーチを連想する人がいるのかというと、アジャイルの代表的な手法の一つであるスクラム開発では、2週間ないし1ヶ月の期間のスプリント(イテレーション)が常に続くことが理由として挙げられます。短期間の開発を繰り返すことで開発チームは常に納期に追われている状態になり、疲弊する危険性があるという連想です。

短期間の開発を繰り返すことだけが原因なのであれば、アジャイル開発をしているプロジェクトはすべてデスマーチになっているのでしょうか?
決してそうではありません。
もしそうであれば、アジャイル開発は社会的に問題視される開発手法となり、導入を進めようとする企業はなくなってしまうはずです。

アジャイルにおける「コミットメント」とは?

システム開発プロジェクトでデスマーチを引き起こさないための工夫はさまざま考えられますが、アジャイル開発に取り組んでいる場合は、重要なキーワードのひとつとして「コミットメント(コミット)」が挙げられます。

まず、アジャイルにおけるコミットメントとは何かをご紹介します。
アジャイル開発の代表的なフレームワークであるスクラムの教科書「スクラムガイド」ではコミットメントのことを次のように説明しています。

スクラムの作成物は、作業や価値を表している。これらは重要な情報の透明性を最⼤化できるように設計されている。作成物を検査する⼈が、適応するときと同じ基準を持っている。 各作成物には、透明性と集中を⾼める情報を提供する「確約(コミットメント)」が含まれている。これにより進捗を測定できる。

プロダクトバックログのためのプロダクトゴール
スプリントバックログのためのスプリントゴール
インクリメントのための完成の定義

これらの確約は、スクラムチームとステークホルダーの経験主義とスクラムの価値基準を強化するために存在する。

プロダクトゴールは、スクラムチームの⻑期的な⽬標である。次の⽬標に移る前に、スクラムチームはひとつの⽬標を達成(または放棄)しなければならない。

スプリントゴールはスプリントの唯⼀の⽬的である。スプリントゴールは開発者が確約するものだが、スプリントゴールを達成するために必要となる作業に対しては柔軟性をもたらす。

開発者は完成の定義に準拠する必要がある。プロダクトに関わるスクラムチームが複数ある場合、共通の完成の定義を作成して、それに準拠する必要がある。

このように、コミットメントとは、プロジェクトやスプリントがうまくいっているか否か、作成物が完成したか否かを測定する基準です。
ゴールを達成するという意味もありますが、まったく柔軟性のない高いハードルをつくるのではなく、最低限の受入基準という意味もあります。

日本のビジネスシーンで使われる「コミットメント」は、とても強い責任を負わせるもの、たとえば営業ノルマのようなトップダウンの目標設定というイメージを持つ方が多いと思いますが、これとは大きな違いがあります。
アジャイルでの「コミットメント」は、自身やチームで決めるものであり、進捗を測定するために用いるので、一般的なビジネス用語としての「コミットメント」と同じ捉え方をすると(例えばノルマを達成できないと評価が下がるなどと考えると)、本来のアジャイル開発の思想とはズレが生じてしまいます。

適切なコミットメントが持続可能な開発につながる

繰り返しになりますが、アジャイルでいうコミットメントは、スプリント(イテレーション)がうまくいったかどうか進捗を測定できるようにするための目標であり、基準です。
自身やチームで決めるものですが、透明性のある「基準」を示すことが重要なので、このコミットメントはプロジェクトを通してブレてはいけないものになります。

つまり、できるかどうかわからないもの、自らがまったく自信を持てていないものを安易にコミットメントとするのは避けるべきです。
無理なコミットメントをしてしまい、それに縛られるとデスマーチがはじまってしまうのです。

アジャイル開発では、8割の稼働をスプリントのポイント消化に充て、2割をバッファとして持っておくことが推奨されています。この点からも、適度に余裕を持ったコミットメントを行うべきだとわかります。
いきなり10割の力で、もしくは限界を超えるようなダッシュをして、少し休んではまたダッシュするようなコミットメントをしてしまい、次第に体力切れが起きるアジャイル開発は理想的ではありません。

アジャイル開発のご相談はNCDCヘ

コミットメントの意味を正しく把握し、適度な負荷で続けられる持続可能な開発、健康的な開発を目指していただければ「アジャイルでやるとデスマーチに繋がるのではないか」という不安を抱えずにプロジェクトに取り組んでいただけると思います。

NCDCではこのような持続可能な開発を行うためノウハウ提供も含めてアジャイル開発の支援を行っています。具体的な進め方のご相談などありましたらお問い合せください

ページトップへ

お問い合わせ

NCDCのサービスやセミナー依頼などのお問い合わせは
下記のお電話 また、お問い合わせフォームよりお気軽にご連絡ください。

050-3852-6483