システム開発は形のないものを作る作業です。パッケージソフトなどを使う場合もありますが、独自のシステムを構築する場合にはオーダーメイドでオリジナルのシステムを作っていくことになります。
企業が必要となるシステムには様々なものがあります。インターネットを利用した検索システムや会員制サイトのシステムから、自社内で使用する業務システムまでその用途は様々です。
システム構築の検討を進めていると、色んな機能を作りたくなってくるものです。予算には限りがあるので全部作ることはできない場合も多いのですが、色々考えていると、あの機能も作った方が良いのではないか、こんな機能もあった方が便利なのではないかと、気づくと夢が膨らむ顧客は数多くいます。
そんな時に私は「作った方が良い機能」は作らない方が良いですよとアドバイスします。
なぜ、「作った方が良い機能」は作らない方が良いのか。その理由について解説します。これからシステム開発を検討されている方はぜひ参考としてください。
「作った方が良い機能」は使わなくなることもある
検討段階で「作った方が良い機能」としてあがった機能は、実際に開発して運用してみた結果、使わなくなることが結構あります。作っては見たものの思ってたほど使い勝手が良くなかったとか、検討している時は必要だと思ったけど実際にはなくても問題ない機能だったなど、理由は様々です。
一言で言えば検討が不十分だったということになるわけですが、完璧な検討をシステムの構築前に行うことは想像を絶する難しさです。実際に使ってみないとわからないことは山程あります。
そこで機能の検討をする際には、優先順位付けをするために以下3つに機能を分類します。
- 作らなくて良い機能
- 作らなければならない機能
- 作った方が良い機能
1の作らなくて良い機能はもちろん開発する必要はありません。ここの検討は難しくありません。2の作らなければならない機能についても検討は難しくありません。この機能がないと業務が成り立たないとか、絶対に必要となる機能ですので必ず開発対象とします。
問題は3の「作った方が良い機能」です。ここの検討が一番難しいのです。
検討段階で作った方が良いと思っていた機能は、これがないと業務が成り立たないわけではないけど、あると便利だろうなぁという温度感の機能です。作ってみた結果、とても便利で業務の効率化に貢献する機能になることもありますし、運用してみたら全く使わない機能になってしまうこともあります。
作った方が良いと思われる機能をどこまで検討して詰めるかが肝となるわけですが、私の場合は絶対に作った方が良いと明確に判断される機能以外は、初期開発では開発しないように顧客に提案します。
初期開発の段階で開発するように提案するのは、2の「作らなければならない機能」だけで、最小限の構成を提案します。このような提案をするのには、システム開発の特性を考えた上での明確な理由があります。
実際に運用してみてわかることがたくさんある
システム開発では実際にそのシステムを使って、業務の中で運用してみて初めてわかることがたくさんあります。これはどんなに緻密な分析や検討を重ねようとも必ずあります。
検討段階で作った方が良いと思っていた機能が、実際に運用してみたら不要な機能だったことがわかったり、あるいは実際に運用してみたらもっと最適なやり方が見つかるということがあります。
運用の段階で不要な機能だと判明した場合、せっかくその機能の開発に費やした時間とお金が無駄になってしまいます。このようなことは当然極力避けるべきです。
百聞は一見にしかずと言いますが、どんなに事前の検討を重ねることよりも、1度実際に使ってみることの方が、圧倒的に生の有益な情報を得られます。そうであるならば、構築前にあれこれ時間をかけて検討するよりも、最小限の機能を最短で構築し、できるだけ早く実際にシステムを使ってみることが一番効率的な検討方法ということになります。
検討に時間をかけて中々開発が進まない顧客もたまにいますが、時間がもったいないです。時間がもったいないだけではなく、事前の検討に費やした時間の多くが無駄です。システムがカットオーバーして実際に使ってみたら、検討していたことが簡単にひっくり返ることがあるからです。
システム開発では、あれこれと事前の検討に必要以上に時間をかけるよりも、絶対に必要だとわかっている最小限の機能をピックアップし、最小構成で最速でシステムを完成させることが効率的です。そして1日でも早くシステムを運用してみることが、有益な検討をするための最も効率的な方法です。
「作った方が良い機能」については、実際にシステムを運用してみてから本当に必要かどうか考えれば良いのです。
システムは後から機能の変更を行いやすい
システムは初期開発した後でも、後から変更を行いやすいという特徴があります。これは「作った方が良い機能」は初期開発では作らずに後回しにする大きな理由の一つです。
同じオーダーメイドでも、注文住宅のように物理的なモノを作る場合にはこのようなわけにはいきません。なぜなら一度作ってしまうと後から簡単には変更がきかないからです。ソフトウエアの場合は物理的なモノを作るわけではありませんので、後から変更しやすいということは大きな特徴の一つです。
後から変更しやすいのであれば、実際に作った方が良いかどうか判断が難しい機能については最初の段階で作らなくて良いのです。絶対に必要な機能だけ初期構築で開発して、あとは実際に業務の中で運用してみて、やっぱりどうしても必要だとなったタイミングで作れば問題ありません。
必要かどうかよくわからないうちに作ってしまうのではなく、必要だとわかったタイミングで作る。これが無駄なお金や時間をかけることなく、最も効率的に開発を進める方法です。
何でも作りましょうという開発会社は信用してはいけない
システム開発のポイントは、できるだけ早く運用に乗せることです。そのためには必要最小限の機能だけに絞って初期構築は行った方が良い。「作った方が良さそう」「あると便利そう」くらいの機能なら全部2次開発以降に回して問題なし。
後からでも変更しやすいことがシステム開発の特徴でもあるのに、何でも最初から作りましょうと提案してくる開発会社は全く信用できないと思って良いでしょう。まあたくさん機能作ってもらった方が開発会社としてその時だけ見れば儲かりますからね。本当は必要のない機能も含めて何でもかんでも作りましょうと言ってくる開発会社は、顧客のことなど全く考えてませんし、考えているのは自分達の売上のことだけです。
そういう開発会社に引っかかってしまうと、無駄に開発対象の機能が膨れ上がりますから、検討期間が大幅に伸びていくことになります。しかもその検討の多くは無駄。だって早くシステムの利用を開始して実際に使ってみた方が意味のある有益な検討ができるわけですから。
初期開発の範囲が広がる → 事前の検討期間が長引く → システム運用開始が遅れる → 有益な検討を行えるチャンスも先延ばしになる
こういう悪循環になります。しかも出来上がってきたシステムには実際には活用されない無駄な機能がたくさん実装されている可能性があります。そうなるとお金も時間も大幅にロスしてしまうことになります。
当たり前すぎることですが、作らなくて良い機能を作るのやめましょうと言えて、開発を後回しにして良い機能もきちんと顧客に提案できる会社は頼れる開発会社です。
もっとも効率の良いシステム開発の進め方とは?
せっかく後から変更しやすいというメリットがシステム開発にはあるのに、その特徴を活かさない手はありません。実際に使ってみることが一番手っ取り早い検討方法なのであれば、少しでも早くシステムの運用を開始させることが重要となります。
- 初期開発は最小限の機能に絞って開発する
- 「作った方が良い機能」は基本後回しでOK
- できるだけ早くシステムの運用をスタートさせる
- 実際の運用をしながらPDCAを回す
作った方が良い機能は後回しにしてOKですが、逆を言えばシステム開発は初期開発で終わりではありません。運用しながら常にブラッシュアップしていくことが最も効率的なシステム開発の進め方です。実際にシステム開発がうまくいっている顧客ほど、初期開発はスピーディーで、2次開発以降のブラッシュアップが頻繁に発生する傾向にあります。
システムは、小さく生んで大きく育てる
これがシステム開発のもっとも効率的な進め方であり、作った方が良い機能は最初の段階で作らなくて良い理由です。
システム開発をご検討中の方がいらっしゃればお気軽にご相談ください。