「リーン開発」とは何かご存知でしょうか。初めて聞いたという方も多いのではないでしょうか。
「開発」という単語が付いていますが、経営において主に用いられる手法となっています。
そんなリーン開発について、7つの原則を基に開設していきたいと思います。
弊社はIT企業として20年以上の実績があり、蓄積したデータを活用しながらまとめております。ぜひお読みいただき、知識を深めていただけると幸いです。
目次
1.リーン開発とは
リーン開発とは何か解説していきます。
1-1 無駄を抑え、効率性を重視した開発
リーン開発は、「無駄を抑え、効率性を重視した開発」という意味を持っています。
「こんな物があったらな」という仮説を立てて、効果を計測するために構築を行い評価と学習を1サイクルとし、できるだけ短い単位でこのサイクルで繰り返していく方法です。
経営の際にも用いられるものでもあり、市場において必要とされるものを仮説し検証を重ねていき、結果として必要最低限の資源で最大限の効果を得ることができます。
システムの開発についても同様で、開発したけど、改善箇所が多かったり、全然売り上げに繋がらなかったり、受託者としては完成物が検収で合格できなかったりと無駄なことはよくあります。
そのため、仮説~評価を短いサイクルで繰り返すこの開発手法を活用することで、無駄を減らし、効果を最大限にするため取り入れられています。
もう少し分かりやすく、ECサイトの開発を例に解説していきます。新しくサイトの開発行う際に、まずはユーザーのニーズを仮説していきます。
どの機能が重要なのか無駄なのかなどを見極めるために仮説を基にしたプロトタイプを構築し、調査を行います。その結果、商品レビューと直感的な検索機能を重要としており、逆にレコメンド機能などは不要であると判明しました。この結果を基に開発を進めていきます。
プロトタイプ開発については、「プロトタイプ開発とは?ウォーターフォール開発との違い」にて詳細を解説しています。
1-2 アジャイル開発との違い
アジャイル開発とは、システム開発のサイクルである、「企画」→「設計」→「実装」→「テスト」を機能単位で回すことを呼びます。
システム開発は様々な機能の集合体からなっています。その様々な機能を機能単位に分解して開発を進めていくことです。
例えば、1つのシステムが機能A、機能B、機能C、機能Dの集合体から成るとした場合、以下のようなサイクルで開発を進めることになります。
違いとしてはリーン開発同様にシステム開発をサイクルとして回していきますが、仮説を行い検証する作業がありません。また目的も異なります。
リーン開発は無駄を排除し効率性を重視していますが、アジャイル開発では柔軟性などを重視しており要件の変化に対応しやすくすることが目的になっています。
アジャイル開発については、「アジャイル開発とは?メリットやデメリットをわかりやすく解説」の記事でまとめています。
1-3 MVP開発との違い
MVP開発は、想定されるユーザーに対して必要最低限の機能をもった開発をすることです。
想定されるユーザーに一部機能が実装できた段階で触ってもらい、ユーザーからフィードバックをもらいながら必要な機能の肉付けをしていきます。
これを繰り返して完成形に近づけていきます。
リーン開発はプロセス全体の効率化と継続的な改善を目指す手法であり、MVP開発は製品の最低限の価値を早く市場に提供し、顧客ニーズを検証しながら進めるアプローチという違いとなります。
リーン開発の構築のフェーズからはMVP開発が関わってきており、上記の説明の通り開発を進めていきます。
MVP開発については、「MVP開発を導入するメリットとは?概要とプロセスを紹介」の記事で詳細をまとめています。
2.リーン開発の7つの原則とは
リーン開発は無駄を排除し効率性を重視した開発手法ですが、前提として7つの原則があります。
これらはメアリー・ポッペンディークとトム・ポッペンディーク(著)「リーンソフトウエア開発~アジャイル開発を実践する22の方法~」にて記されています。
2-1 ムダを排除する
無駄を排除することはリーン開発において重要な事の1つです。
製品の価値に影響を与えないものを無駄とし省いていく必要があります。
多くの時間を使い開発するソフトウェア開発では、いかに無駄を排除し、効率性を高められるかが大事です。
2-2 知識を作り出す
開発チームの学習を強化していくことは重要なことです。
開発には失敗が付き物であるため、幅広い開発知識をつけておく必要があります。
またチーム全体として的確な判断ができるように経験を積むことも需要です。
2-3 決定をできるだけ遅らせる
効率を上げることが意味合いとして含まれているのに、決定は遅らせることが原則となります。
開発において、正しい決定を出すためには、正しい情報を判断の根拠となる量を確保することが必要となります。
例えば効率を意識したばかりに、早まった決断によって大幅な修正が発生するリスクがあり、それによって無駄な作業も増加することは目に見えてしまいます。
できるだけ遅らせることで無駄をなくすための正しい破断をすることができるでしょう。
2-4 できるだけ早く提供する
開発期間をできるだけ短縮させ、素早くリーリスができるようにすることが原則の4つ目です。
目的としてはリーン開発は無駄なく効率的に開発を進めることであり、
そのために可能な限り早くリリースすることが原則の1つとして存在します。
また、依頼を受けて開発する場合は顧客に対して短い期間で開発し確認してもらうことで、顧客が期待する内容を素早く開発することを可能としており、信頼も得やすくなります。
2-5 権限を移譲する
チームメンバーに権限を移譲することが原則の5つ目となります。
多くの組織では基本的に統括者が権限を持つことがあるかと思いますが、
全てではないにせよ、チームメンバーに権限を移譲し、自律的に動いてもらいます。
この原則により、メンバー間での尊重や独創的なアイデアの醸成、判断力などを高めることができ、チームとして効率が良くなることが期待できるでしょう。
2-6 全体を最適化する
全体を最適化することが6つ目の原則です。
システムが完成したとしても、そのシステムが価値を生み出し、課題の解決や成果につながる必要があります。
本当に良いとされるシステムは課題に対して的確にアプローチができており、
それを目指すことが重要であり、最適化できている状況です。
2-7 品質を作りこむ
7つ目の原則は品質を作りこむことです。
開発が進みテスト工程で欠陥が発覚した場合には修正コストなど手間が余計にかかってしまいます。
そのために、品質を作りこみ、欠陥となる箇所を限りなく0に近づけることが重要となってきます。
とはいえ、欠陥は高い確率で発生することもまた事実であるため早い時点で欠陥を発見することも重要です。
3.リーン開発のメリットとデメリット
リーン開発のメリットとデメリットについて解説していきます。
3-1 メリット
リーン開発のメリットとしては無駄なく開発ができることそして品質を高めることができる点です。
リーン開発は無駄なく効率よく開発を進めることであるため、もちろんメリットとしてあげられます。
品質については1章でも触れましたが、ユーザーが本当に求めている機能に絞って開発を進めるため、無駄なものが無く使いやすいシステムを開発することができます。
また、本当に必要な機能を開発することから、コスト面でもメリットがあります。
例えば、開発の仕事受けると仮定し、顧客管理システム開発において400もの機能の開発がオーダーされたとします。
顧客管理システムで重要となるのは、顧客情報や交渉経緯、売上などであり、これらが優先的に開発が行われます。
その後に実際の利用データなどからよく使用される機能などを分析し、開発の優先が決められていきます。
その中で不必要となる機能もあぶりだすことができ、結果的に400の内、200もの機能は不要となれば、開発コストをダウンさせることができます。
3-2 デメリット
リーン開発のデメリットとしては、継続的に無駄を探し続けることの大変さや導入時の障壁が考えられます。
仮説を基に構築したプロトタイプの検証を続けていくことは、進めれば進めるほどいずれは頭打ちになります。
そして多くのプロジェクトには納期が存在し、いつまでも続けられるものでもありません。
時間との兼ね合いを考慮し、可能な限り改善をし続けられるような工夫が重要です。
4.リーン開発の流れ
リーン開発の流れについて解説していきます。
4-1 仮説
まずは仮説を行います。
「こんな物があったらいいな」や開発を受ける企業であれば「この機能必要?」という観点から仮説を立てていきます。
次の構築ではプロトタイプを作成していくため、漠然とした仮説よりも具体的な仮説を立てるようにしましょう。
4-2 構築
仮説を基に検証するためのプロトタイプの構築を行います。
ここでMVP開発と関連が出てきます。
MVP開発は必要最低限の機能が付いた試作品の開発する手法であり、仮説に基づき作られます。
4-3 計測
構築で作られた試作品を計測していきます。
実際に試作品を使用してもらい、フィードバックを獲得していきます。
できるだけ多くのユーザーからデータを取得するのが好ましいですが、あえて小人数に絞っても問題ありません。
4-4 学習
計測で得られたデータを基に学習を進めていきます。
データの分析により、ユーザーの傾向やあまり使われていないことなど、本当に必要なのかを検証していきます。
ちなみにですが「なぜ」を5回繰り返していくと物事の本質が分かるといわれています。
その観点で、「なぜユーザーから使われていないのか?」などなぜを繰り返して検証していくことをおすすめします。
4-5 意思決定
最後に、学習から得られた検証結果を基に意思決定を行います。
ここでいう意思決定は、必要か不必要かなど無駄になっているかを判断することです。
仮説→構築→計測→学習の一連の流れを実際の開発を進めていく前に繰り返すことで、無駄を抑え、効率的な開発ができます。また、ユーザーニーズを満たした、より質の高い開発が可能になります。
リーン開発のまとめ
無駄なく効率性を重視した開発であるのがリーン開発です。
仮説~意思決定までの一連の流れを繰り返しながら、本番の開発での効率性を上げ、顧客ニーズに最大限マッチした開発が可能になります。
ビジネスにおいても活用は可能であるため、新しい事業を起こしたい方もぜひ参考していただきたいです。
弊社では高品質なシステム開発を売りとしており、機能要件ももちろん非機能要件も正しく分析し、お客様にご満足いただけるシステム開発をご提案しております。
システム開発をご検討されている方は、下記よりご連絡をお待ちしております!