はじめに
アジャイルプロセスを組込みソフトウェア開発に適用するには、どうすれば良いのか。よく議論されるテーマです。
アジャイルプロセスは2000年ごろから日本に入ってきましたが、当時はWebシステム開発分野での適用事例ばかりで、組込みソフトウェア開発の事例はほとんどありませんでした。オブジェクト指向の文化が中心にあるアジャイル開発は、組込みソフトウェア開発の現場とはかなりかけ離れていたので、適用も難しいと思われていたのでしょう。また、適用事例があっても、あまり世の中に出てこなかったため、使えないと思い込んでいる人が多いのではないでしょうか。
しかし現在では、当時と比べてアジャイルプロセスという言葉はかなり浸透してきていると思います。そろそろ「良いものを手早く作る方法」を考えてみませんか。このコーナーでは、組込みソフトウェア開発の現場でアジャイルプロセスを適用するときのハードルが少しでも低くなるような解説をしていきたいと思います。
アジャイルプロセスって何?
アジャイルプロセス協議会のホームページには、アジャイルプロセスについて以下のような記述があります。
「アジャイルプロセス」とは、特定の開発手法を指す言葉ではありません。「アジャイル(迅速/俊敏)な」とはつまり、良いものを手早く無駄なく作ることです。
つまり、みなさんの現場ごとにオリジナルなアジャイルプロセスがあっても良いわけです。というより、現場ごとに違ったアジャイルプロセスの実装があると考えていただいたほうが良いでしょう。そうなると、本やWebで見るプラクティスをただやって見て「駄目じゃん」っていうのは間違いです。自分たちにフィットするように変えていかないといけないのです。今回は、この「フィットするように変えていくためのプラクティス」を紹介します。これがアジャイルプロセスを導入するキモになります。また、アジャイルプロセスの導入に使わなくても日々の活動に生かすこともできますので、知っておいて損はないでしょう。
PDCAサイクルと振り返り
アジャイルプロセスの中に「KPT」(ケプト)というプラクティスがあります。KPTは反省会のための手法です。みなさんは、反省会をどのように行っているでしょうか。プロジェクトの終了時に、反省会と称して開催した飲み会は、愚痴大会になっていないでしょうか。悪かった点にばかり目が行って個人攻撃になっていないでしょうか。
KPTを使えば、経験をチームにフィードバックし、次への取り組みの指針を導き出すことができます。アジャイルプロセスは、製造業やマネジメントの世界でプロセス改善によく使われる「PDCAサイクル」と同様に、繰り返しを基本としたプロセスです。KPTは、PDCAサイクルをうまくまわすための方法と考えることができます。
PDCAサイクル
まず、PDCAサイクルについて簡単に説明しましょう。P/D/C/Aには、それぞれ以下のような意味があります。
- P:Plan(計画)
- D:Do(実行)
- C:Check(検証)
- A:Action(改善)
このPDCAサイクルを使って活動を行うと、たとえば、図1のようなステップでプロセスが成熟してくると考えられます。
はじめは実行(Do)だけをしていますが、その後、計画(Plan)に基づいた実行(Do)へと変わり、予測を行って実行を効率的に成功させようとします。しかし、計画を行うための根拠となる情報収集として、現状の検証(Check)を行う必要があり、PDCを連続して繰り返すプロセスが生まれます。
これをさらに確実なものにするために、検証を元にした改善(Action)、計画を行うようにプロセスを構築していきます。このサイクルをまわしていくことができれば、改善活動のベースができたといっても良いでしょう。
しかし、これが良いと頭でわかっていても、なかなかできないのが現状ではないでしょうか。PDCAサイクルは言われてみれば当たり前のことなのですが、その当たり前のことが当たり前にできないところにプロセス改善の難しさがあります。