なぜシステムはオーダーメイドした方がダメになりやすいか?
こんにちは、エンジニアのgamiです。(誰だよお前という人は、最近とっても真面目な自己紹介動画をYouTubeにアップしたのでこちらを見てください。)
さて、服でも家でも自動車でも、「自分好みにオーダーメイドした一点物」と「広く提供される既製品」との対比というのがあります。一般に、前者は「お金はかかるが自由度が高い」、後者は「比較的安価だが自由が効かない」というイメージです。
これらはどちらが良い悪いという代物ではなく、状況に合わせて最適な方を選べばいいはずです。一方で、とかくシステム開発においてはそのバランスが崩れ、「オーダーメイド」が過度に評価されているように感じます。
そこで今回は、「ユニクロ」の素晴らしさをヒントに既製品のシステムを使うことのメリットをさらいたいと思います。もちろんソフトウェア産業固有の問題もあるので、適宜その点を補足します。
多く使われている既製品ほど、一般には良いものになる
大前提として、同じようなものを作るのであれば、広くたくさんの人に使われているような既製品の方が価格や品質の面で有利になります。
たとえばユニクロは、昔こそ「安いけどデザインは微妙」というイメージがありましたが、今では値段に見合わないそのデザイン性の高さからファッション感度の高い人からもかなりの支持を得ています。
広く使われる既製品の方が、うまくやれば価格を抑えられるだけではなくその品質や使い勝手まで上げられる好例です。
広く使われる既製品の方が有利な点は、主に2点あります。
1つは、1つのモノを作るのに投資できるリソースの差です。100万人が使うモノと100人しか使わないモノを比較すると、そこにかけられるリソースには単純計算で1万倍の差があるはずです。もちろん厳密には利用者が1人増える毎にいくらコストが増すのかを個別に考える必要があります。たとえば利用者数に1万倍の差があっても、1着のTシャツを作るときの布代は1万分の1にはなりません。一方で、ユニクロUのTシャツを1度デザインしてしまえば、そのデザインは100万人で共同利用することができます。こうした「利用者が相乗りできる部分」において、特にかけられるリソースの差が出ます。
特にソフトウェアは「利用者が相乗りできる部分」がとても大きく、その分「利用者数の差」が「投下できるリソースの差」に直結しやすいです。すでに1万人が使っている既存ソフトウェアと同様のものを自社専用にオーダーメイドするには、単純計算で1万倍のお金がかかるというわけです。もちろんそんなにお金をかけられなければ、品質などを犠牲にすることになります。
2つ目は、得られる情報の差です。残念ながら、いくらオーダーメイドで何を作るか自由に決めていいですよと言われても、本当に欲しかったものを一発でオーダーできる保証はありません。一方で、すでに多くの人に長く色んな状況で使われている製品であれば、利用者からの様々なフィードバックを得て改善が進んでいるはずです。利用者が多いユニクロの製品であれば、販売実績データ、ユーザーインタビューの結果、SNSでの反応などを大量の価値あるデータから、顧客が本当に求めている機能性やデザインを深く理解することができるはずです。利用者からのフィードバックは、特に「使ってみて初めてわかること」が多いほど重要になります。
実はソフトウェアは、「使ってみて初めてわかること」が大量にあります。目に見えないバグがあった、使ってみると操作感がしっくりこない、〇〇という別のシステムと連携したくなった、などなど。こうした要望の多くは大半のユーザーに共通のものだとすれば、オーダーメイドしたソフトウェアを自分たちで使って初めて問題に気付くより、既製品の既存ユーザーたちのフィードバックによってバグや使いにくさが予め解消されていた方が有利になります。
日本企業の自前主義と、既製品の過小評価
一方で、「システム オーダーメイド」などとGoogle検索すると、「御社の課題にあったベストなシステムを独自構築!」とか「オーダーメイドシステム最高!」とかみたいな記事が大量にヒットします。その多くはシステム開発会社のポジショントークなのですが、実際のところ自社の複雑な要望を既製品なんかで賄うことはできるのでしょうか?
もちろんそれは程度問題です。一方で、特に日本企業では「自前主義」が強いと言われています。
本来は既製品とオーダーメイドの良いとこ取りをして自社のシステム全体を構築していくべきはずです。にもかかわらず、過度な自前主義によって既製品の価値が過小評価されてしまうことがあります。
次の記事でも、自前主義が日本企業のソフトウェア調達を歪めてきたことが強めの言葉で指摘されています。
(はびこる自前主義の残りかす、日本企業のIT活用の悲惨 | 日経クロステック(xTECH))
また総務省の情報通信白書(令和元年版)でも、(オープンイノベーションの文脈ではあるが)自前主義の限界について言及されていました。
(総務省|令和元年版 情報通信白書|なぜオープン・イノベーション-自前主義からの脱却が必要となっているのか)
ユニクロとオーダーメイドの例でいえば、こうした「自前主義」はユニクロが大量生産の既製品であることを理由に実際の服のデザイン性や価格の優位性から目を背けて盲目的に批判するようなものです。
現実的には、使えるお金や時間が有限である以上、「インナーとパンツはユニクロで、コートとバッグで個性を出そう」みたいな判断に合理性があったりするはずです。たとえば業務システムにおいても、基本的には既製品を組み合わせて構築することで前述した「既製品のメリット」を十分に享受すべき、というのが良い判断になることが多いです。
システム調達においては、「システムを業務に合わせるか?業務をシステムに合わせるか?」という議論がしばしば行われます。自前主義に固執すると当然「独自のシステムを業務に合わせて構築すべき!」となりがちです。しかし、業務フローを少し変えれば既製品で済むのであればその方がいいケースが多いです。言い換えると、オーダーメイドする努力より既製品を上手に使いこなす努力の方が、ことソフトウェアの世界では報われやすいです。
もっと具体的に言えば、「安易に独自システム構築せずに、良いクラウドサービスとかパッケージ製品とかがあればガンガン導入した方が色んな恩恵を受けられますよ」という話になります。
とはいえ、全てを既製品で固めるのは難しいのでは?
一方で、もちろん自社や業界固有の特殊な業務がある場合や、エンドユーザーの新しい体験を作り込む必要があるケースでは、全てを今あるSaaSやパッケージソフトで賄うことは不可能です。個人の私服であれば「ユニクロしか着ません!」と決めることもできますが、たとえば会社の新規事業で「独自の開発は全くしません!」と決めることは事業の選択肢を大きく狭めることになります。
最後に、こうした現実的なバランスの取り方について補足します。(補足なので、読みたい人だけ読んでください。)
まず前提として、良い既製品は汎用的に作られていることが多いです。たとえばExcelやスプレッドシートを使いこなせば、大抵の業務に関わる情報はわかりやすく整理できます。広く使われているソフトウェアは、多くの企業の様々な課題をシンプルかつ汎用的な機能で解けるようによく考えれています。そのため、汎用的で良い既存ソフトウェアを選び上手に使いこなすことができれば、当初想定した以上の業務をカバーできる可能性があります。それもあって、「とりあえず既製品を使ってやってみて、困難を覚えたら独自に作るか考える」という選択を取ることが有利になったりします。
また、システム全体としては独自に構築される場合であっても、個々のモジュール単位で「広く使われる既製品」を採用できるケースがあります。むしろ、本当にシステムの隅々まで独自に1から作るということは稀です。
(オーダーメイドとセミオーダーの違いは?用語の意味まとめ – グッドベット株式会社)
たとえば現代においては、オーダーメイドでシステム構築する場合であっても、プログラミング言語から独自に作ることはまず無いでしょう。もう少し大きな粒度でいえば、ソフトウェア開発の多くは「アプリケーションフレームワーク」と呼ばれるライブラリ群を利用します。どんなに用途の違うアプリケーションでも、より低いレイヤーでは必ず共通する処理があります。こうした共通処理の部分で既存のフレームワークやライブラリを使うことで、前述した「既製品のメリット」を享受することができます。たとえば次のような領域に限定して「既製品」を利用することができます。
こうした「既製品」の多くは、「オープンソースソフトウェア(OSS)」として公開されていたり、「クラウドサービス」として初期コストを抑えつつ利用できるようになっています。
既製品のメリットは、なにも完成したフルパッケージの業務システムだけでしか享受できないものではありません。より低レイヤーな既製品を独自に組み合わせることで、自分たちのやりたいことに柔軟に合わせながら、既製品ならではの優位性の恩恵を受けることができるわけです。
ここから先は
仕事を楽しくするデジタルリテラシー読本
【初月無料】デジタル時代の歩き方について考えたことを発信します。ソフトウェアの時代とは何か。エンジニアの頭の中はどうなっているのか。NoC…
サポートをいただけると、喜びドリブンで発信量が増えます!初月無料のマガジン『仕事を楽しくするデジタルリテラシー読本』もおすすめです!