アジャイル開発がだんだんとわかってきた

最近本気でアジャイル開発にハマってきている。そして、ちょっと「分かってきた」なんて偉そうなことを言ってみました。そのきっかけは、11月28日(木) 19:30〜 開催された平鍋さんのイベントに行ったことです。 

リーンとカンバンの本質と現場改善 〜平鍋さんと現場課題を考える〜 - リーン開発の現場 塹壕コミュニティ | Doorkeeper

そもそもアジャイルに至った経緯とアジャイルの理解

業界でデファクトスタンダードとなっている開発プロセスウォーターフォールに限界を感じたことです。

一般的な話をします。ウォータフォールは要件定義を準委任契約で受けて、顧客と一緒に要件定義を行い、一旦整理します。そこからシステムの規模やらナンヤラを見積もって、基本設計移行で再度請負契約をします。まずはココがポイント。この時点で顧客側はすべての要件を出し切っていなければなりません。請負契約の前提となる要件定義で出た内容を変更してしまうと、もちろん見積の前提となっているので、見積金額も変わります。となると、追加発注などの形で費用が発生します。

では少し考えてみると、現実的に1〜2ヶ月ほどの要件定義。さらに、顧客は本業の片手間で実施する要件定義。数億の規模で開発されるシステムの要件をすべて洗い出すなんてムリ〜〜〜〜〜。って思ってしまいませんか?!そうなんです、すべての顧客に一律に要件定義フェーズですべての要件を洗い出してもらうなんて諦めたほうがいいのです。

では、アジャイルならいいのか?!

ウォータフォールで開発できない場合はアジャイル開発にすればいいのか?決してそういうわけではないと思います。

Agile開発は要件定義フェーズでしっかり切らずに、顧客が定義できた要件から随時構築します。それはほんとに顧客に必要なモノを届けたいからです

要件は変わるし、内製なので期間もそれなりにフレキシブル。さらに

LeanからAgileへ

イマイチLeanとAgileの関連がわかってなかったけど、平鍋さんのイベントに行ったらすっきりしてビックリした。

リーンとカンバンの本質と現場改善 〜平鍋さんと現場課題を考える〜 - リーン開発の現場 塹壕コミュニティ | Doorkeeper

平鍋さんの資料の中で、グッときたのが、川口さんが描いた、LeanとAgileの関連。

自分なりのLeanとAgileの理解

すべての道は「Lean」に通じる!って感じですね。LeanとAgileが似ているって言われてもイマイチピントこなかったのですが、平鍋さんの説明がビンゴでした。ちょっとしつこいですか?!

基本的にLeanもAgileも顧客の価値を最大化することを最優先にするんです。ここは私の勝手な想像ですが、ウォータフォールみたいに、要件定義フェーズで無理やり顧客に要件をすべて洗い出させたり、さらには、その時点で出した要件で契約し、変更を許容しないというのは、無理がありすぎるという考え方なのではないかと思います。

さて、平鍋さんの解説に戻ると、Leanもトヨタの考え方から来ているので、基本的には顧客に必要な物だけをムダ無く創りだすという精神に則っています。ソフトウェアでも同様にムダを取り除く考え方を適用させたのがLeanソフトウェア開発、最近ではAgile開発と同じ意味で利用されます。

では、ムダってなんだ?!トヨタというかLeanでは「仕掛品」がムダになります。要は顧客に届くまではすべて仕掛品。顧客に役立つモノになるまで全てムダ。で、仕掛品の数を制限して、モノが完成したら、次に実施するタスク当てはめられる。

この辺りのイメージがバッチリ描かれているのが、平鍋さんのスライド。

WIPの数を規定値として設定して、継続的に顧客に価値を届けるのがLean。で、それを期間で切ったのがScrumです。たとえば、2週間という期間でWIPを0にする。これがScrumの特徴がタイムボックスだと言われる所以かもしれません。

まだまだ言いたいこと、書きたいことはありますが、一旦このへんで。とりあえず、平鍋さんといい、いろんな人がいるな〜。しかもかなりスゴイ。尊敬しっぱなしでした。