Entries

メアリー・ポッペンディーク、トム・ポッペンディーク『リーン開発の本質』

リーン開発の本質リーン開発の本質
(2008/02/07)
メアリー・ポッペンディーク、トム・ポッペンディーク 他

商品詳細を見る

リーン開発手法について書かれた本。手法といっても方法論やフレームワークであるよりは、背景となる考え方に近いのではないか。特にリーン開発手法としてのツールや仕組みについて述べられているわけではない。これはアジャイル開発について、その根本的な考えや改善のための指針を与えるものだろう。

何と言っても最大の特徴は、トヨタ生産方式をソフトウェア開発に当てはめようとすること。ソフトウェア開発を一種の製品開発とみなす。短納期での製造や、顧客ごとに異なる要求仕様つまり少量多品種の生産という性質はソフトウェア開発の特徴でもある。最初の50ページほどを読むと、トヨタ生産方式とソフトウェア開発でそれに対応するアジャイル開発手法が、多くの点で方向を同じくしていることが書かれている。この辺りは視点の転換がとても面白い。例えば、かんばんはストーリーカード、あんどんは自動ビルドの失敗通知、ダッシュボードはバーンダウンチャートとなる(p.171-177, 245f)。こうして本書はトヨタ生産方式を中心として、様々な事例や文献を引きつつ、ソフトウェア開発に同様のものを見出そうとしていく。統一されたフレームワークなどではないので少しバラバラに書かれている感もある。

例えば、トヨタ生産方式といえばムダの削減であり、ムリ・ムダ・ムラなどと並列して掲げられる。ムダの排除はリーン開発でかなり中心的なものだ。トヨタ生産方式の新郷重夫が提唱した製造における7つのムダに対して、ソフトウェア開発でもそれぞれ対応するものがある(p.90-102)。アジャイル開発はムダを排除して機敏に(=アジャイルに)動こうとするものであって、このポイントを外すとアジャイル開発をやっても大した成果は望めない(p.24)。このために本書は「バリューストリームマップ」を提唱している。これはムダを分析して洗い出すための分析手法。ムダは各プロセス間の待ち時間によく見られるとして、各プロセスとプロセス間の待ち時間を列挙し、プロセスすべてのかかった時間のうちどれだけが本当に作業している時間だったのかを分析する(p.102-113)。誰かの承認を待っているために2週間くらい作業が止まるとか、リリースは半期に一回だから4か月くらい待たされている、などのムダがここで明らかになる。ムリについて言えば、これは人を尊重するという原則のもとにある。人の尊重はトヨタ生産方式でもアジャイル開発方法でも中心的だ。人を尊重するという原則され守れば、残りのリーン開発の原則は人が自動的に見出していく(p.143)とも書かれている。印象的なのは、例えば誰もサーバーのCPU使用率が20%で「遊んでいる」として限りなく100%に近く稼働させろ、などと言いはしない。ところが、人に関して言えば、稼働率が80%でもまだ余裕があるとして、もっと作業させろとなる。そうしたムリは結局、作業の効率を落とすことになる。著者はグーグルの20%ルールをこの観点から合理的だとしている(p.124f)。ムラについて、作業の平準化は取り立てて書かれていないが、いくつかの示唆から導き出せるだろう。

本書はリーン開発の原則として7つを挙げている。1.ムダをなくす、2.品質を作りこむ、3.知識を作り出す、4.決定を遅らせる、5.速く提供する、6.人を尊重する、7.全体と最適化する。これに対して書かれた、7つの神話(p.51)が面白い。一見、常識に反するように書かれていて目を引く。それらは、早く仕様を固めればムダが減る、テストの役目は欠陥の発見だ、予測が予測可能性を生む、計画は決定である、急がば回れ、唯一最高のやり方が存在する、分解によって最適化する、の7つ(p.51)。特にテストの役割について、開発段階ですでに品質を作りこむことの重要性が強調される(p.31-36)。テストについては開発の終わったものについて、その品質をチェックすると考えるより、開発段階で常にテストを行うべきだ。それはテスト駆動開発や、JUnitなどの自動テスト、Jenkinsなどの自動ビルド、継続的インテグレーションとなるだろう。これは品質は製造過程にあるとする予防的検査の考えであり、トヨタ生産方式では自働化(問題が起こったらラインをストップする自動的な仕組み)のことだ。コードレビューも、これは開発標準の徹底や欠陥の発見ではない。それはレビュー以前の段階で行われているべきで、コードレビューとはコードをシンプルにして変化に強くすることなのだ(p.240f)。

確固とした開発手法を展開するものではないが、アジャイル開発の背景思想とトヨタ生産方式との対比について、面白い論点をいくつも散りばめている。発想を柔軟にするために読んでおこう。
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://exphenomenologist.blog100.fc2.com/tb.php/612-02f50d6d

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する