エンジニアとして働いていると、一度は「アジャイル開発」という言葉を聞くと思います。でも正直、こう思いませんか。
・なんとなく速そう
・ウォーターフォールと違うらしい
・でも具体的に何をしているのかわからない
この記事では、アジャイル開発をまったく知らないエンジニア向けに、具体例を交えながらわかりやすく解説します。また最近のプロジェクト管理の標準書である PMBOK第7版 においてもアジャイルが大きく取り上げられ、PMP試験でも出題されるため、キャリア的にも押さえておくべき内容です。
そもそもアジャイルとは何か
アジャイルとは「素早い」「柔軟な」という意味です。
システム開発でいうアジャイル開発とは、
小さく作って、すぐ試して、改善を繰り返す開発スタイルのことです。
一方で従来型の代表が ウォーターフォールモデル です。
最初に要件をすべて決め、設計し、実装し、最後にまとめてテストします。
ウォータフォール型のプロジェクト管理については詳しくはこちらで解説しています。
一方でアジャイルは、
完璧な設計を最初から作りません。
まず「動くもの」を小さく作ります。
そして使ってもらい、フィードバックをもらい、直します。
この違いが本質です。
具体例:カレー作りで考えてみる
開発を「カレー作り」に例えてみます。
ウォーターフォール型
- 材料をすべて決める
- レシピを完璧に設計
- 一気に作る
- 完成してから食べてもらう
もし「もっと辛くしてほしい」と言われても、完成後では修正が大変です。
アジャイル型
- まず簡単なカレーを作る
- 少し食べてもらう
- 辛さや具材を調整
- 改善してまた出す
途中で味を確認しながら調整します。
だから失敗が小さく済みます。
これがアジャイルの考え方です。
実際の開発ではどう進めるのか
アジャイルでは、1〜2週間など短い期間で開発を区切ります。
この単位を「スプリント」と呼びます。
代表的な手法が スクラム です。
スクラムでは次の流れで進みます。
- やることをリスト化する
- 今回のスプリントでやる分だけ選ぶ
- 実装する
- 動くものを確認する
- 改善点を振り返る
これを何度も繰り返します。
具体的な開発例
例えば「社内タスク管理アプリ」を作るとします。
ウォーターフォールなら、
・ログイン機能
・タスク登録
・検索機能
・通知機能
すべて設計してから実装します。
アジャイルなら、まずは
第1スプリント
・ログイン
・タスク登録だけ作る
まず動くものを出します。
第2スプリント
・タスク編集機能を追加
第3スプリント
・通知機能を追加
途中で
「検索機能はいらない」
「スマホ対応がほしい」
という声があれば、柔軟に変更できます。
アジャイルとPMBOK第7版、PMP試験
従来の PMBOK 第6版まではウォーターフォール型中心でした。
しかし第7版では アジャイル・ハイブリッド型の開発が強調 されています。
具体的には、
- プロジェクトの成果物を小さく分けて早く価値提供する
- チームの自己組織化と改善を重視
- 変更を前提とした計画と管理
などの考え方が盛り込まれています。
そのため PMP 試験でもアジャイルに関する知識は出題されやすく、スプリントやスクラム、インクリメンタル開発の理解は必須になってきています。
エンジニアとしても「単にコードを書く」だけでなく、アジャイル開発の考え方を知っていることが評価されやすくなっています。
アジャイルのメリット
- 変更に強い
- 早く動くものが見られる
- ユーザーの満足度が上がりやすい
- 失敗が小さく済む
特に現代は、仕様変更が当たり前です。
最初の計画どおりに進むことのほうが珍しい。
だからアジャイルが広がっています。
デメリットもある
もちろん万能ではありません。
・全体像が見えにくい
・ドキュメントが少なくなりがち
・チームのコミュニケーションが重要
メンバー同士が話さないと成り立ちません。
「言われたことだけやる」スタイルとは相性が悪いです。
未経験エンジニアが意識すべきこと
アジャイルで大切なのは3つです。
- 完璧を目指しすぎない
- 早く出すことを意識する
- フィードバックを歓迎する
特に新人ほど「ちゃんと作らなきゃ」と思いがちです。
でもアジャイルでは「まず出す」が正解です。
直せばいい、改善すればいい。
その前提で動いています。
まとめ
アジャイル開発とは、
小さく作る
早く出す
何度も改善する
この繰り返しです。
PMBOK第7版でも取り上げられているように、今のプロジェクト管理では アジャイルの理解は必須 です。
PMP試験でも頻出テーマになっているので、キャリアを考える上でも押さえておくと強いです。
最初はイメージしづらいかもしれませんが、考え方はシンプルです。
完璧を作るのではなく、育てる。それがアジャイルです。
メリット・デメリットで分かる通り、アジャイルがウォーターフォールより優れた管理手法というわけではありません。
プロジェクトの特性を理解し、アジャイル、ウォーターフォール、またはハイブリッドのどの手法で管理するかを選択できることが、エンジニアとして必要な感覚です。