どうもこんにちは。
今回は、アジャイル開発について自分なりにもっと理解を深める必要がありそうだったので、本を読んでみました。
(いわば読書感想文です。)
また、弊社開発部の勉強会で先輩社員に説明していただいた知識も含めた上でまとめていきます。
アジャイル開発とは
まず、アジャイル開発は「短い期間でリリースし、フィードバックを受け、改善するというサイクルを基本」としている開発手法です。
アジャイル開発の語源として、Agilityという英単語がありますが、これの意味は素早さです。このことからわかるように、アジャイル開発は「開発スピードに重点を置いた開発手法」であることがわかります。
アジャイル開発の1つである、スクラム開発では、1~4週間(スプリント)を開発サイクルとし、各サイクルごとに機能開発&テストを繰り返します。また、必要に応じて開発計画を修正します。
アジャイル開発でいう「フィードバック」とは、実際にソフトウェアを使用しているユーザからフィードバックはもちろんですが、開発チーム自身が気づいたフィードバックも含まれます。
また、スピードを早くするというのは、「ゴールまでの時間を早くする」ということではなく、「起こった出来事に対して素早く反応し意思決定を早くする」ということです。
アジャイル開発では、スプリントを回していく中で機能の改修方針に加えて、開発の進め方も変化していきます。アジャイル開発を 始める時点で議論したベストプラクティスが数週間、数ヶ月経った時には別物に変化 していきます。
アジャイル開発の価値観
アジャイル開発の価値観は2001年に、アメリカのソフトウェアエンジニアであるエンジニアであるケント・ベックという方がまとめた「アジャイルソフトウェア開発宣言」で宣言されています。
- プロセスやツールよりも個人と対話を
- 包括的なドキュメントよりも動くソフトウェアを
- 契約交渉よりも顧客との協調を
- 計画に従うことよりも変化への対応を
アジャイルソフトウェア開発宣言から汲み取ることができる価値観
- 顧客インサイトにより本当に必要なソフトウェアを作る
- 机上の空論ではなく実際に動くものを見て判断し、改善していく
この宣言は「AよりもBを」というように比較の形式になっていますが、Aの概念が不要であるという価値観ではありません。「計画をドキュメント化するよりも手を動かした方が素早いよね」というような捉え方をしてしまってはいけません。少なくともドキュメント化して残しておくことは振り返り・フィードバックを行う上で必要です。
アジャイル開発の源流「カイゼン」
「改善」という日本語は、世界で通じます。しかし、世界ではカタカナで「カイゼン」と表現されます。
しかし、日本語の「改善」と世界共通の「カイゼン」は解釈が異なります。
いつやるか | 何のためにやるか | |
---|---|---|
改善 | 問題が発生した時に | 発生している問題を取り除くため |
カイゼン | 常に | 現状をより良い状態にするため |
こうして比較してみると、世界共通の「カイゼン」は ポジティブな意味で捉えられることがわかりますね。
PDCAサイクルとOODAサイクル
PDCAサイクル
継続的により良いものにを作っていくための手法として、PDCAサイクルという言葉を聞いたことがある人はたくさんいると思います。
意味 | |
---|---|
P | Plan(計画) |
D | Do(実行) |
C | Check(評価) |
A | Action(改善) |
PDCAサイクルでは、「達成したい成果に対して何が足りていないのか」を常に評価して改善していくことができます。
OODAサイクル
OODAサイクルとは、対象を観察しながら意思決定を進めていく手法です。PDCAサイクルを実行する、前の段階で行うサイクルというスタンスです。
意味 | |
---|---|
O | Observe(観察) |
O | Orient(方針決定) |
D | Decide(意思決定) |
A | Action(改善) |
日本でも広がっているアジャイル開発
企業IT動向調査報告書2024によると、日本におけるアジャイル開発の導入状況は以下のようになっています。(P205参照)
ステータス | 割合(%) |
---|---|
導入中 | 21.5 |
試験導入中・導入準備中 | 11.5 |
検討中 | 18.3 |
検討後見送り | 3.2 |
未検討 | 45.5 |
アジャイル開発に対して前向きな企業が約半数、見送り・未検討の企業が約半数という状況でした。
この報告書によると、「検討段階から導入段階へとさらにシフトする傾向がみられた」とのことでしたので、少しずつアジャイル開発が導入され始めていると捉えても良さそうです。