「リーンソフトウェア開発って何なの?」「リーンソフトウェア開発って意味があるの?」
そんなことを思っている方も多いと思います。
リーンソフトウェア開発は、簡単に言うと『ムダ・ムリ・ムラを排除したソフトウェア開発手法』のことです。
新規事業の立ち上げ時など、顧客の需要・ニーズがあるのかどうかが分からない段階で、顧客ニーズと顧客の置かれている市場を学習しながら開発を進めていきます。
リーンソフトウェア開発が大切だとなんとなくは分かっていても、リーンソフトウェア開発の意味や具体的な目的をきちんと理解できていない方が多いのが現状です。
そこで今回は、最短3週間でWEBシステムを開発するサービスBOLTを運営し、リーンソフトウェア開発を知り尽くした筆者が以下の項目を解説します。
- リーンソフトウェア開発の概要
- リーンソフトウェア開発の目的
- リーンソフトウェア開発のメリット
- リーンソフトウェア開発の成功事例
- リーンソフトウェア開発の費用相場
この記事を読めば、リーンソフトウェア開発の意味や重要性を理解できます。
そしてさらに、リーンソフトウェア開発の方法を理解し、実践することができるようになり、新しくWEBシステムを開発する際に開発をスムーズに進められるようになるでしょう。
リーンソフトウェア開発の概要
今注目されているソフトウェア開発の手法に「リーンソフトウェア開発」があります。リーンソフトウェア開発は、システム開発をするSIerとシステム導入を検討する顧客のどちらにとってもメリットを生み出します。
リーンソフトウェア開発とは?
リーンソフトウェア開発とは、ムダ・ムリ・ムラを排除したソフトウェア開発手法の1つであり、アジャイル開発の一部とされています。ムダを排除する考え方として有名な「トヨタ生産方式」が基本的な概念になっており、製造業で立証されたビジネスモデルをシステム開発に活用した考え方になります。
以下の7つの原則がリーンソフトウェア開発では重要になります。
・原則1.全体を最適化する
・原則2.ムダをなくす
・原則3.プログラマに権限を委譲する
・原則4.プロジェクトの知識を創造する
・原則5.品質を作り込む
・原則6.決定を遅らせる
・原則7.早く提供する
そもそもリーンとは?
そもそもリーン(lean)とは、「無駄のない」「引き締まった」といった意味を表します。そこから、無駄なく効率的、かつ迅速に開発を進める手法を「リーン開発」と呼ぶようになりました。
リーンの主な目的は、顧客に価値を提供することに焦点を当て、無駄を省くことです。この開発手法は、仮説を立て、最小限の機能で試作品(MVP)を構築し、その成果を計測し、学習するというサイクルを繰り返します。
これにより、製品やサービスの価値を最適化し、顧客満足度を高めることができます。
通常のソフトウェア開発との違い
通常のソフトウェア開発は、ウォーターフォール型と言って名前の通り上から下まで滝が流れるように開発をしていく手法になります。企画提案→要件定義→基本設計→プログラム設計→プログラミング→単体テスト→結合テスト、といった風にフェーズを1つ1つ消化していきます。
そのためウォーターフォール型の開発手法では、簡単にフェーズの後戻りができません。途中で仕様変更が発生する度に、納期の調整をしたり金額交渉が必要になったりするのです。大型プロジェクトであればフェーズごとに確定していくウォーターフォール型開発が適しているでしょう。
しかし今はIT技術が進歩が速く、顧客のニーズも多様化してきています。ウォーターフォール型開発のような大規模開発よりも、ムダを省いた効率的なリーンソフトウェア開発の方が時代にマッチしてきているのです。
大企業が大規模なシステム開発をするのならウォーターフォール型開発が適しており、ベンチャー企業や新規企業がシステム開発をするのならリーンソフトウェア開発が適していると言えます。
アジャイル開発との違い
リーン開発とよく比較される開発手法に「アジャイル開発」があります。しかし、リーン開発とアジャイル開発は目的が異なります。
リーン開発では、構築・計測・学習のプロセスを重視し、どれだけ売れたかに焦点を当てます。一方、アジャイル開発は開発・設計・要求を繰り返し、進捗を重視します。つまり、リーン開発は顧客満足度を高めることを目的としていますが、アジャイル開発は短期間での開発・提供を繰り返しながら機能を追加していくことを目的としています。
どちらも目的に向けて小さく進捗させながらスピード感を持って開発を行うという点では同じですが、顧客満足度をより高めようとするのがリーン開発であり、短期間での開発や提供を繰り返して機能を追加するのがアジャイル開発の特長です。
リーンソフトウェア開発の目的
顧客ニーズを検証する
ソフトウェアを導入する際には、構築するために発生した費用以上の効果が生まれなければなりません。例えば、100万円をかけてつくったソフトウェアを利用すれば、101万円以上の成果が出なければ導入する意味がないのです。
しかしながら、顧客が言った通りにシステムを構築したのにうまく機能せず、活用されないことがよく起こります。これは顧客が自社にどのようなシステムが必要なのかを理解していないから起こります。
リーンソフトウェア開発では、顧客ニーズと顧客の置かれている市場を学習しながら検証をしていくことが目的です。顧客の隠れたニーズを顧客と話しながら確立していくため、最初はモヤっとしているニーズが開発の過程で固まっていくようになるのです。
大きな失敗を避ける
リーンソフトウェア開発では、開発の途中で定期的に顧客からのフィードバックを得ます。システムが完成して初めて顧客に検証をしてもらうと、大きな手戻りが発生することあります。リーンソフトウェア開発はシステムをできるだけ早く提供し、できるだけ早い段階でフィードバックしてもらうことで大きな失敗を避けることを目的にしています。
システム提供が早ければ早いほど、フィードバックも早くなり、システム開発のムダを削減することができるようになるのです。
リーンソフトウェア開発のメリット
メリット1:権限を委譲してムダを無くす
従来の開発手法では、プロジェクトリーダーが顧客と相談をしてシステムの要件をまとめます。その要件を基にプログラマがシステムを作りこむのですが、プログラマは顧客と直接話していないために方向性のズレがどうしても発生してしまいます。せっかく作ったのに「そうじゃないんだよ」とプロジェクトリーダーに覆される経験をしたプログラマはたくさんいます。
リーンソフトウェア開発では、現場の開発者に権限を委譲します。スピード重視のベンチャー企業からすれば、直接開発者と調整をすることができるため、ムダな時間と作業の手間を削減することができるようになります。
トヨタ生産方式での7つのムダ
リーン開発は、トヨタ生産方式(TPS)の原則をソフトウェア開発や製造業以外の分野に応用したものです。TPSは、製造業における効率向上と品質向上を目指す方法論で、その中心には「ムダの排除」があります。TPSでは、7つのムダを特定しています。
ムダの種類 | 詳細 |
過剰生産のムダ | 必要以上に製品を作ることで在庫が増え、保管コストが増大し、廃棄リスクも高まる。 |
待ち時間のムダ | 作業員や機械が次の作業を待つ時間が生産効率を低下させる。 |
運搬のムダ | 部品や製品の無駄な移動により時間と労力が浪費される。 |
加工そのもののムダ | 必要以上に手間をかける加工。効率的な加工方法を採用することで無駄な作業を省ける。 |
在庫のムダ | 過剰在庫が資金を固定化し、保管スペースを圧迫する。 |
動作のムダ | 作業員の不要な動作が時間と労力の浪費となる。 |
不良品のムダ | 不良品の発生により手直しや廃棄が必要となり、リソースの無駄となる。 |
メリット2:活用できるシステムになる
システム開発のゴールは、品質が良いものを納品することではありません。そのシステムを顧客が活用して、顧客に利益をもたらさなければソフトウェアを導入するメリットにはなりません。
リーンソフトウェア開発では、顧客と軌道修正をしながらシステムを構築していきます。顧客の先にいる顧客も意識しながら一緒に推進していくため、完成したシステムを確実に活用してもらえるようになるのです。従来のシステム開発ではできなかった軌道修正が容易にできるのもリーンソフトウェア開発のメリットの1つです。
リーンソフトウェア開発の主な流れ
リーンソフトウェア開発を行う際は、具体的にどのような流れで進めていけばよいのでしょうか。ここでは、基本的な流れを5つのステップに分けて解説します。
- 仮説
- 構築
- 計測
- 学習
- 意思決定
仮説
リーンソフトウェア開発の最初のステップは仮説の立案です。このフェーズでは、顧客のニーズや問題を特定し、その解決方法について仮説を立てます。
この仮説は、顧客がどのような課題を抱えているのか、どのような機能が求められているのかを明確にするための出発点です。仮説を立てることで、開発チームは顧客の真のニーズに焦点を当てることができ、無駄な機能の開発を避けることができます。
また、立てた仮説は、後のプロセスで検証・修正されることを前提としています。
構築
続いて、仮説を検証するためにMVPを構築します。MVPとは、仮説を迅速にテストするために必要最低限の機能だけを搭載した試作品のことです。
MVPの構築により、仮説が間違っていた場合のリスクを最小限に抑えることが可能です。実際のユーザーからフィードバックを得ることが可能となるため、仮説の妥当性を迅速に評価することができます。
また、このプロセスは短期間で行われるため、迅速な学習と改善が促進されます。
計測
MVPを構築した後は、進行状況や成果を定量的・定性的に評価するための「計測」の段階に進みます。ここでは、ユーザーの反応や使用データを収集し、仮説が正しいかどうかを検証します。
定量的なデータ(使用回数やエラーレートなど)と定性的なデータ(ユーザーフィードバックや満足度など)を組み合わせることで、製品やサービスの価値を深く理解することができます。
計測した評価に基づき、仮説の修正や新たなアイディアの導入が行われます。
学習
計測の結果に基づき、「学習」のステップへと進みます。ここでは、これまでのプロセスを再評価し、改善点を見つけ出します。
計測結果の分析を通じて、何がうまくいったのか、どこに問題があったのかを明確にしましょう。この段階では、PDCAサイクル(計画-実行-評価-改善)を回しながら、製品や開発プロセスの継続的な改善を図ります。
この反復的な学習プロセスにより、より顧客のニーズに適した製品を作り上げることが可能です。
意思決定
最後に、学習の結果を踏まえて「意思決定」を行いましょう。ここでは、前のステップで得られた知見を元に、製品をどのようにブラッシュアップするかを決定します。
この意思決定に基づき、次の開発サイクルが開始されます。もし、仮説の検証が成功し、顧客ニーズを満たしていると判断された場合には本開発へと移行しましょう。
この5つのステップ(仮説、構築、計測、学習、意思決定)を繰り返すことで、リーンソフトウェア開発は効率的に顧客価値を最大化する製品を生み出すことが可能です。
リーンソフトウェア開発の注意点
リーン開発におけるメリットは数多くありますが、一方で、注意点もあります。ここでは、リーンソフトウェア開発における注意点をご紹介します。
当初の目的を見失わない
リーンソフトウェア開発において重要な注意点の一つは、当初の目的を見失わないことです。開発プロセスでは、仮説の検証やフィードバックの取り入れによって、軌道修正を繰り返すことがよくあります。
この柔軟性は利点である一方で、頻繁な変更が重なると、最初に設定した目的やゴールが曖昧になり、開発の方向性が不明確になるというリスクがあります。
したがって、開発チームは常に最初の目的を意識し、全体のビジョンを共有することが重要です。定期的なミーティングやレビューを通じて、チーム全体で目的を再確認し、ぶれない開発を進めることが必要でしょう。
大規模開発には向かない
リーンソフトウェア開発は、小規模かつ短期間での開発に適していますが、大規模開発には向いていないという注意点があります。
大規模なプロジェクトでは、複雑なシステムが絡み合い、迅速な判断や柔軟な変更が困難です。また、多くのステークホルダーが関与するため、調整が必要な部分が増え、リーンの特徴である迅速なサイクルを維持することが難しくなります。
このため、リーンソフトウェア開発を採用する場合は、プロジェクトの規模や複雑性を十分に考慮し、適切な範囲で実施することが必要です。大規模プロジェクトでは、他の開発手法との組み合わせや、段階的な導入を検討することが効果的でしょう。
リーンソフトウェア開発の成功事例
リーンソフトウェア開発の成功事例として「Groupon(グルーポン)」が挙げられます。
当初は寄付を集めるプラットフォームとして事業が展開していました。しかし想定していた結果が出なかったために、ピボットして「Groupon」の事業を開始しました。
引用:https://techpartner.jp/blog/leanstartup#Groupon
Grouponの創業者であるアンドリューメイソンは、最初からGrouponのビジネスモデルを想定していたわけではありません。「the point」という寄付を集めるサイトを立ち上げ、顧客のニーズを検証していく流れでGrouponのビジネスモデルが構築されていったのです。
リーンソフトウェア開発の相場
構築する機能にもよりますが、ウォーターフォール型開発とは違い低価格での導入が可能となっています。
ECサイトを構築するのであれば100万円〜300万円、ゲーム系ソフトウェア開発なら300万円〜1,000万円未満で開発をすることができます。
またリーンソフトウェア開発では機能ごとにも相場があり、低価格での提供が可能となっています。例えば、ログイン開発であれば10万円〜20万円、チャット・メッセージ機能であれば20万円〜40万円といったイメージです。
関連記事:【Webサービス】プロトタイプ開発の意味は?費用相場やメリットも解説
まとめ
リーンソフトウェア開発を知ると、これまでのシステム開発で感じていた悩みを解消できるのではないでしょうか。
これからもIT業界は目まぐるしいスピードで進んでいきます。ムダをできるだけ省き、活用できるシステムを導入したいと考えているベンチャー企業の経営者や起業家の方は、リーンソフトウェア開発を推奨している企業と「一緒になって」システム開発に取り組むことが大切ではないかと思います。