リーンソフトウェア開発の基本は、ムダの最小化を追求することである。トヨタ生産方式は、製造業の7つの代表的なムダを公表し、その後、この7つのムダはPoppendieck夫妻によって、われわれソフトウェア開発業界に適用された。Jack Mulinsky氏は、agilesoftwaredevelopment.comにて、これらのムダを紹介する一連の記事を最近投稿した。
シリーズ最初の記事では、ソフトウェア開発における未完成の作業のムダ (リーン生産方式の「在庫のムダ」に相当する) について述べており、Mulinksy氏はこれをあらゆるムダの中で最も有害なものと主張している。氏がムダの多い「仕掛品」として分類する項目を要約すると、以下のようになる。
- 完成しているがチェックインされていないコード
- ドキュメント化されていないコード
- テストされていないコード
- まだ本番環境に適用されていないコード
- コメントアウトされているコード
2番目の記事で、Mulinsky氏は有名な統計を引用し、余計な機能 (生産管理の言葉では「作り過ぎのムダ」) について述べている。この統計では、既存のソフトウェア アプリケーションにある機能の3分の2は、ほとんど使われたことがないか一度も使われていないとされている。氏はとりわけ、これにはいかにムダが多いか、直接的な理由 (無用なものを作ることに専念すること) に加え、間接的な理由 (機能が増えるほど管理するコードも増え複雑さも増すということ) にも触れている。
Mulinsky氏の3番目の記事では、ソフトウェアの再学習/再加工におけるムダに焦点を当てている。これは、リーン生産方式論の「加工そのもの」のムダに相当する。氏は、以下のようなムダの事例をいくつか挙げ、自身の見解を述べている。
- ずさんな計画
- 粗悪な品質
- タスクの切り替え
- コミュニケーション不足によるナレッジの記録
- ドキュメント化されていないコード
シリーズの4番目 (本稿執筆時点で最新) の記事では、動作のムダ (ソフトウェアでは「移動のムダ」に相当する) について述べている。氏は、このムダが問題となりうる技術面を重視した事例を取り上げている。
- 開発者間でのコードの引き継ぎ
- 開発者からテスタへのソフトウェアの引き継ぎ
- 開発チームからデプロイメント チームへのソフトウェアの引き継ぎ
残る3つのソフトウェア開発のムダ (タスク切り替え、待ち、欠陥) に関して、Mulinsky氏のハイレベルな考察はまだこれから行われるはずであり、引き続き注目していただきたい。特に、Mary Poppendieck氏とTom Poppendieck氏が、自らの素晴らしいリーンソフトウェア開発書 (Lean Software Development: An Agile Toolkit for Software Development Managers、Implementing Lean Software Development: From Concept to Cash) で紹介したソフトウェア開発の「ムダ」という考え方に今回初めて触れたという方には、ぜひ注目していただきたい。
また、この考え方をよく理解しているという方であれば、先に述べたムダがソフトウェア開発の現場でどのように表面化し、それをどのように排除してきたか、自身の考えを付け加えてみるのも有効かもしれない。