- 更新日 2024.03.15
- カテゴリー システム開発
リーンソフトウェア開発|ムダ・ムリ・ムラを排除する7つの原則と22の思考ツールを解説【2024年最新版】
リーンソフトウェア開発とはなにか?アジャイル開発を調べていくうちに「リーンソフトウェア開発」という耳慣れない言葉に興味を持ったかもしれません。
- リーンソフトウェア開発とはどんな開発手法?
- リーンソフトウェア開発の「7つの原則」「22の思考ツール」とは?
- アジャイル型開発との関係は?リーン・スタートアップ / MVPとの違いは?
そこで本記事では、概要、コンセプトが誕生した経緯、アジャイル型開発との関係など、リーンソフトウェア開発の概念・考え方を解説します。リーンソフトウェア開発の基本となる「7つの原則」「22の思考ツール」や、リーン・スタートアップ / MVPとの違いも紹介していきます。
※リーンソフトウェア開発を含め、多様な開発モデルに対応できるシステム開発会社を探している方はシステム幹事にお問い合わせください。予算や目的などをヒアリングした上で、御社に最適な開発会社を選定します。相談料・紹介料はいっさいかかりません。
ソフトウェア開発に役立つ記事もご覧ください リーンソフトウェア開発の前におさらい!ソフトウェアの基本的な流れや種類
リーンソフトウェア開発とはなにか
リーンソフトウェア開発(Lean Software Development)とは、製造業における生産哲学の1つ「リーン生産方式」をソフトウェア開発に応用する概念・考え方のこと。
ウォーターフォール型ソフトウェア開発のように体系化された工程やフレームワークを持ちません。リーンソフトウェア開発の基本となる「7つの原則」「22の思考ツール」を、現場によって臨機応変に適用していくのが特徴です。
▼関連記事
ウォーターフォール型開発モデルについてより詳しく知りたい方は、「ウォーターフォール開発とは?開発工程・メリット・向いているプロジェクトも解説!」をあわせてご覧ください。
リーンソフトウェア開発の原点「リーン生産方式」
それでは、リーンソフトウェア開発の原点ともいえる「リーン生産方式」とはなんでしょう?
リーン生産方式は、1990年刊行の「リーン生産方式が世界の自動車業界をこう変える」で、著者ダニエル・T・ジョーンズ氏、ジェームス・P・ウォマック氏らが提唱した生産哲学。ジャストインタイム / カンバン / ジドウカなど、生産性・効率性と同時に品質も高めていく、トヨタ生産方式を研究するなかで生まれました。
リーン(Lean)には「贅肉のない」「スリムな」といった意味があり、ムダ・ムリ・ムラを排除した製造業の体系的な方法論として、リーン生産方式は知られています。
リーン生産方式のソフトウェア開発への応用
リーン生産方式が確立された1990年頃は、IT技術が飛躍的に進化を遂げた時期と重なり、ソフトウェアへ求められる要求が多様化していた時代でした。当然、要件定義のステップから完成形を想定して作業を進めるウォーターフォール開発では、ダイナミックに変動する市場ニーズに対応しきれなくなっていたのです。
こうした状況を改善すべく、1993年にロバート・シャーロット博士が提唱したコンセプトが、リーン生産方式をソフトウェア開発に応用した「リーンソフトウェア開発」です。ロバート氏が定めたリーンソフトウェア開発のゴールは、多様化するカスタマーニーズにフォーカスするための以下の5つ。
- 1/3の人的リソース
- 1/3の開発期間
- 1/3の時間
- 1/3の開発費
- 1/3の適応性
リーンソフトウェア開発とアジャイル開発の関係
リーンソフトウェア開発以外にも、1990年前後は、ウォーターフォール型開発の問題点を克服しようとするメソッドが多数登場しています。たとえば、1986年に発表された日本発の開発手法「スクラム」、1999年に発表された「エクストリーム・プログラミング」などが代表例。
これらのメソッドには「カスタマーニーズへの適用性を高める」など共通した特徴があることから、2001年に専門家によって「アジャイルソフトウェア開発宣言(Agile Manifest)」として文書にまとめられました。
つまり、リーンソフトウェア開発は、アジャイル型ソフトウェア開発の手法の1つだという関係性が成り立ちます。
▼関連記事
アジャイル型開発モデルについてより詳しく知りたい方は、「アジャイル開発とは?メリット・デメリット、発注側の注意点を解説」をあわせてご覧ください。
リーンソフトウェア開発の7つの原則と22の思考ツール
ロバート氏のコンセプトには、上述した5つのゴールのほかに、リーンソフトウェア開発の12の原則が含まれていました。ただし、これは手法やフレームワークを指し示すものではなく、12の原則を満たす手法をリーンソフトウェア開発とする概念・考え方です。
こうした状況のなか、アジャイルソフトウェア開発宣言や、ロバート氏のコンセプトを踏まえて2003年に刊行されたのが、メアリー&トム・ポッペンディーク氏の共著「リーンソフトウェア開発〜アジャイル開発を実践する22の方法〜」です。
メアリー&トム氏は、同書の中でリーンソフトウェア開発の考え方をアジャイル開発に適用するための「7つの原則」「22の思考ツール」を紹介しています。2022年現在、この考え方がリーンソフトウェア開発の基本として広く採用されているのです。以下から、具体的に解説していきましょう。
原則1:ムダを排除する
リーンソフトウェア開発の原則1は「ムダを排除する」です。リーン生産方式 / トヨタ生産方式の考えがもっとも色濃く反映された、リーンソフトウェア開発の核となる原則だといえるでしょう。
リーン生産方式とリーンソフトウェア開発の7つのムダ
リーン生産方式は、自動車を製造する上で排除すべき7つのムダを特定しています。これをソフトウェア開発に置き換えたものが「リーンソフトウェア開発の7つのムダ」であり、7つのムダをいかに排除するかがリーンソフトウェア開発の基本です。具体的には以下の通り。
リーン生産方式の7つのムダ |
リーンソフトウェア開発の7つのムダ |
在庫のムダ |
完成していない作業のムダ |
作りすぎのムダ |
使われないコード / 機能のムダ |
加工のムダ |
余分な作業のムダ |
動作のムダ |
タスク引継ぎのムダ |
運搬のムダ |
手渡しのムダ |
手持ちのムダ |
ソフトウェア開発遅延のムダ |
不良のムダ |
不具合 / 品質不良のムダ |
リーン思考の原点となる2つの思考ツール
リーンソフトウェア開発の核となる、ムダを排除する原則を実践するための思考ツールが以下の2つです。
- ムダを認識する
- バリューストリームマップ(VSM)
バリューストリームマップとは、原材料から製品を製造し、付加価値を与えるまでのすべての製造プロセスを図式化したもののこと。生産性を改善するため、1980年頃にトヨタで確立された思考ツールです。
画像出典:Wondershare
原則2:学習効果を高める
リーンソフトウェア開発の原則2は「学習効果を高める」です。この場合の学習効果とは、開発に携わる個々のエンジニアではなく、開発チーム / 開発組織を対象としています。
ソフトウェア開発の性質を決める4つの思考ツール
開発チーム / 開発組織を対象に「学習効果を高める」原則を実践する思考ツールは、以下の4つです。
- フィードバック
- イテレーション
- 同期
- 集合ベース開発
イテレーションとは、「企画」「設計」「開発」「テスト」「リリース」という、単独で動作する小さなソフトウェアを開発するためのプロセスのこと。ソフトウェアを細かな機能に分割し、ユーザーからのフィードバックを反映させながらイテレーションを繰り返して完成形を目指すのが、リーンソフトウェア開発を含むアジャイル型の特徴です。
集合ベース開発とは、チーム / 組織に着目して開発を進めていく手法のこと。具体的には、複数の選択肢と候補を示すことで、チーム / 組織の円滑なコミュニケーションを目指します。たとえば、ミーティングの日程を決める際に、都合のいい時間を個々に挙げるのではなく、都合の悪い時間を挙げてもらってチームで調整するのが集合ベースの考え方です。
原則3:決定をできるだけ遅らせる
リーンソフトウェア開発の原則3は「決定をできるだけ遅らせる」です。完成形を想定して開発を進めるウォーターフォール型の場合、仕様変更が生じた際にプロジェクトへ及ぼす影響が非常に大きくなるのが特徴。これを回避するため、リーンソフトウェア開発では、プロジェクト進捗に大きな影響を与えないよう「重要な意思決定を遅らせる」という考え方が採用されているのです。
コンカレント開発の3つの思考ツール
「決定をできるだけ遅らせる」原則を実践するための思考ツールは、コンカレント開発に基づいた以下の3つです。
- オプション思考
- 最終責任時点
- 意思決定
コンカレント開発とは、ソフトウェアの設計段階から、開発に携わる全部門が共同でプロジェクトを進行させていく考え方のこと。もともとは、製品開発工程で複数の業務を同時進行させる「コンカレントエンジニアリング」という、トヨタ生産方式に着想を得た概念を原点としています。開発と運用・保守を連携させた「DevOps」にも似た概念だといえるでしょう。
原則4:できるだけ速く提供する
リーンソフトウェア開発の原則4は「できるだけ速く提供する」です。ユーザーからフィードバックを得られる、小さなソフトウェアを素早くリリースすることを意味します。原則2の「学習効果を高める」、原則3の「決定をできるだけ遅らせる」と密接に関連することが特徴です。
たとえば、ソフトウェアを素早く提供するには、プロジェクトの進捗に影響する重要な意思決定を遅らせて開発効率を上げなければなりません。チーム / 組織の学習効率を高めるには、ソフトウェアを素早く提供してユーザーからのフィードバックを集める必要があります。
3つの思考ツール
「できるだけ速く提供する」原則を実践するための思考ツールは、以下の3つです。
- プルシステム
- 待ち行列理論
- 遅れのコスト
プルシステムとは、後工程が完了した生産量を補充するための生産活動のこと。必要なときに・必要な部材を・必要な分だけ要求する、トヨタ生産方式の「ジャストインタイム」を元にした思考ツールです。
待ち行列理論とは、サービスを受けるために顧客が行列を作るような確率的に変動するシステムを、数理モデルを用いて解析する理論のこと。これを応用したシンプルなシステムの代表としては、トヨタ生産方式の「カンバン」が挙げられます。
原則5:チームに権限を与える
リーンソフトウェア開発の原則5は「チームに権限を与える」です。ソフトウェアをできるだけ速く提供するには、プロジェクトの情報を把握する現場のチーム / 組織に権限を与えることが効果的。同時に、権限の与えられたチーム / 組織が精度の高い判断を下せるよう、リーダーには学習を通じたチーム / 組織の育成が求められます。
4つの思考ツール
「チームに権限を与える」原則を実践するための思考ツールは、以下の4つです。
- 自発的決定
- モチベーション
- リーダーシップ
- 専門知識
原則6:統一性を作り込む
リーンソフトウェア開発の原則6は「統一性を作り込む」です。統一性とは、ユーザーニーズとソフトウェアの目指す方向性のバランスが取れた、一貫性のあるプロダクトに作り込むことを意味します。
統一性と4つの思考ツール
「統一性を作り込む」原則を実践するための思考ツールは、以下の4つです。
- 認知統一性(ユーザビリティ / 信頼性 / 経済性 / 機能などのバランスが取れていること)
- コンセプト統一性(コンセプトを主軸にすべての機能がまとまっていること)
- リファクタリング
- テスティング
これを実現するためのポイントとなるのが、外部から見た挙動はそのまま、内部構造を整理する「リファクタリング(Code Refactoring)」です。現時点でソフトウェアに問題がなくても、将来的な拡張に備えて内部ソースコードを簡素なものに整理する、と考えておけばいいでしょう。
原則7:全体を見る
リーンソフトウェア開発の原則7は「全体を見る」です。リーンソフトウェア開発に限らず、ユーザーや市場のニーズを反映し、方向性を微調整しながら開発を進めていくのがアジャイル型の特徴。ただし、行き当たりばったりでソフトウェアを開発するというわけではありません。
「統一性を作り込む」原則を見てもお分かりのように、コンセプを主軸にして全体最適化を進めていく(システム思考)のがリーンソフトウェア開発の考え方です。決して個別の機能を最適化することを目指すわけではありません。
システム思考と2つの思考ツール
システム思考と同義語ともいえる「全体を見る」原則を実践するための思考ツールは、以下の2つです。
- 計画
- 契約
▼関連記事
ソフトウェア開発委託契約についてより詳しく知りたい方は、「ソフトウェア(システム)開発委託契約とは?トラブルを防止する委託契約の基本を解説!」をあわせてご覧ください。
リーン・スタートアップ / MVPとの違い
リーンソフトウェア開発を調べている方であれば、「リーン・スタートアップ」「MVP」などの用語も気になっているかもしれません。
リーン・スタートアップとは、少ない予算 / 人材でプロダクトを作り、顧客の反応を確認しながら成長していくことを提唱した「ムダを省いたビジネスモデル」のこと。成長見通しの不透明なスタートアップが生き残っていくため、2011年にエリック・リース氏によって提唱された概念です。
一方のMVP(Minimum Viable Product)は、リーン・スタートアップの核となる「必要最小限の製品」のこと。小さな製品を作って成長させるという意味では、リーンソフトウェア開発に考え方が近いといえますが、MVPはソフトウェアだとは限りません。ソフトウェア開発というよりも顧客開発の側面が強いのも、リーンソフトウェア開発との違いです。
▼関連記事
MVP / リーン・スタートアップについてより詳しく知りたい方は、「MVPとは?システム開発に応用するメリットや実践方法を解説!」をあわせてご覧ください。
リーンソフトウェア開発について紹介しました
本記事では、概要、コンセプトが誕生した経緯、アジャイル型開発との関係など、知っておきたいリーンソフトウェア開発の概念・考え方を解説してきました。
体系的な工程やフレームワークを持たないリーソフトウェア開発ですが、ビジネス環境が急激に変化する現代だからこそ、その概念は有効です。アジャイル型でソフトウェア開発を進めてみたが、なにかが違う。そんなときにこそ、リーンソフトウェア開発の考え方を応用してみるのがおすすめです。
※リーンソフトウェア開発を含め、多様な開発モデルに対応できるシステム開発会社を探している方はシステム幹事にお問い合わせください。予算や目的などをヒアリングした上で、御社に最適な開発会社を選定します。相談料・紹介料はいっさいかかりません。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
Q. リーンソフトウェア開発とは何ですか?
リーンソフトウェア開発とは、製造業における生産哲学の1つ「リーン生産方式」をソフトウェア開発に応用した開発方式のことです。ムダ・ムリ・ムラを排除した製造業の体系的な方法論として、リーン生産方式は知られています。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧