
執筆者:CDO 高𫞎 則行
私はCDO(Chief Development Officer/最高開発責任者)として、長年ソフトウェア開発の現場に携わってきました。開発者人生のなかで、何度も手痛い失敗を味わい、それ以上にたくさんの成功を繰り返してきました。今回は、その結果たどり着いた、絶対的な基本姿勢についてお話ししたいと思います。
1. 長年の経験からたどり着いた、プロジェクトを成功させる基本姿勢
「小さく産んで、大きく育てる」
ビジネスの現場でもよく聞かれる言葉ですが、私自身も自戒として胸に刻んでいます。これから外れると、プロジェクトはとにかく上手くいきません。
開発はチームで行うものですが、メンバーの「より良くしたい」という純粋な気持ちが、時として仇になることがあります。あれもこれもと便利に思える機能を個々人が追加し始めると、プロダクトの規模は際限なく膨らみ、複雑化し、あっという間に巨大な怪物へと変わってしまうのです。恐ろしいのは、「機能が増えても、売れ行きがよくなるわけではない」という現実です。なのに、プロダクトが肥大化した結果メンテナンス工数だけは雪だるま式に膨らみ、気づいた時には自分たちの首を絞める結果になる……。これが、開発現場が往々にして陥りやすい罠です。
では、機能を絞ってシンプルにし、代わりに細部まできっちり設計しておけば、その罠から逃れられるのでしょうか? 完璧に基本設計を組み上げ、あとはその通りに作るだけというのは、一見エンジニアにとっては理想的に思えますよね。しかし、現実はそうもいかないのは、皆さんもご経験の通りです。どんなにやり取りをして要件定義を行っても、必ず後から現場の切実な「要求」が入ってきます。そのとき、ガチガチに基本設計をしてしまっていると、これらの変更を何も組み入れられなくなってしまうのです。
では、具体的にどうしたらいいのか……。少し長いお話になりますが、私のこれまでの開発者人生を振り返りながらお伝えできればと思います。
2. 1997年、私の原体験はある小さなプロダクトから始まった
おぼろげながらこの基本姿勢を意識するようになったのは、私の学生時代の強烈な体験がきっかけです。
私は学生時代、デジタルアーツという会社でアルバイトとして働き始めました。とにかくお金がなく、学費を払うために必死でコードを書いていました。1997年、ちょうどインターネット黎明期にあたる時代です。私は趣味のC++と大学での研究テーマだった形態素解析の技術を組み合わせ、運よく「フィルタリングソフト」を開発することができました。
この時に作ったのは有害サイトを見せないためのソフトで、全国の小中学校をターゲットに想定したものでした。URLで有害サイトをフィルタリングする仕組みは当時からあったのですが、全世界の有害サイトURLを網羅する必要があり、学生の私にはとうてい不可能なものでした。できたとしても「いたちごっこ」になるのは目に見えていましたから、それをメンテナンスし続けていくとなるとかなりの資金が必要になります。
そこで私が作ったのは、サイト内の単語の組み合わせを工夫し、内容だけで判別する仕組みです。これならURLがどんなに変わっても、中身が同じなら遮断できます。学生一人でも作れるサイズのソフトでしたが、当時の世の中にはまだ存在しておらず、非常に珍しいものでした。これが当時の需要とマッチして、非常に「売れた」のです。
しかし、ビジネスは一つのヒットだけで続けていくことはできません。大学を卒業してそのままデジタルアーツに就職し、本格的にエンジニアの道を歩み始めた私は、二本目の開発を要求されました。しかしそれは一本目を当てるよりも遥かに厳しい道のりだったのです。どう市場で優位に立つか考えれば考えるほど、プロダクトは「積み上げ」の産物になっていきました。私はメールフィルタリング、そして社長の念願だったファイル暗号化ソフトへと手を広げ、その開発にあたって競合との「機能比較表」で足りない部分を追加していくことにしました。
私一人で始めたプロジェクトだったものが、気付けば大人数の体制になっていました。こうなってしまうと、どうしても「小さく産む」ことはできなくなります。次々と新しい機能を追加していく中で、プロダクトの「コアだった部分」が失われていきました。結果、結果として、メールフィルタリングは競合よりわずかに優位な点こそあったものの、決定的な強みを欠いた月並みなプロダクトにとどまりました。一方でファイル暗号化は当時として先進的すぎたため、市場に受け入れられるまでに大きな時間を要することになりました。
プロダクト開発責任者として、もっといいやり方があったのではないか、そんな後悔を抱えることになった出来事でした。
3.2020年、過去の学びから誕生したInsight Masking
以来20年ほど開発者を続け、多くのことを学びました。そのひとつが、今開発しているプロダクトが最終的にどんな設計で、どんな着地になるかなんて、誰にもわからないということです。 だからこそ、設計には後々手が入れやすいように、あえてラフに、作り込みすぎない程度にしておく部分が必要なのだと痛感する出来事が何度もありました。
そしてもう一つが、「プロダクトのコアとなる強みはここだ」と確信できる、気合を入れて作り込んでおく部分が必要だということです。これがあれば、プロダクトが成長していろんな機能が追加されたとしても揺らがない土台になってくれます。この「攻め」と「守り」のバランスを組織として適切に設けられるかどうかが、プロダクトの命運を分けるのです。
現職のインサイトテクノロジーで自社製品の開発に携わることになった2020年、その教訓を胸に最初に取り組んだのが、「Insight Masking」の立ち上げです。
きっかけは、あるお客様からの「既存のマスキングソフトが遅すぎて使い物にならない」という切実なリクエストでした。「とにかく高速にマスキングしたい」——これは、私が長年C++で高速並列動作システムを作ってきた、得意分野です。自分のもつ技術を最大限に活かし、秒間100万レコード以上を捌ける強力なエンジンを搭載したマスキングソフトを開発しました。この高速処理が、プロダクトの「コアとなる強み」となりました。
一方で、新しい挑戦も忘れませんでした。 当時、AI(Transformer)の性能向上が著しく、これをマスキングに取り込めないかというアイデアがありました。その頃ちょうどインターンに来ていた学生が、研究的に簡単な「AIマスキング」のプロトタイプを作ってくれました。私はかつての自分の姿を彼に重ねながら、その成果をハイブリッドで製品に取り込み、「フリーテキストマスキング」として仕上げました。
ここで徹底したのは、「どの機能も作り込みすぎず、小さく作って、早期リリースを繰り返す」ことです。そのフットワークの軽さが、結果として大型案件獲得という成果に繋がっていきました。
4.これが私の思う、「小さく産んで、大きく育てる」
製品を開発するにあたって、最初から完璧なものを作ってドカンと当てる方がかっこいいと思われる方もいるかもしれません。しかし、そんなに簡単に世の中にヒットを放つことはできません。
世の中はゆっくり変わっていくように見えて、ひとたび動き始めると大規模な変化となって私たちに押し寄せます。私はその圧倒的な変化のうねりを、「マグニチュード」と呼んでいます。それに対応するには、私たちはフットワーク軽く、市場にアプローチし続ける必要があります。 そのアプローチは、決して突飛である必要はありません。でも、ありきたりではない、ちょっと光るところがあるものを「小さく産んで」市場に置いておく。そしてお客様の声を聞きながら、スピーディに一緒にエンハンス(成長)させていく。このサイクルを複数並行して走らせることこそが、不確実な時代における開発の「黄金パターン」だと確信しています。
最初に「これ」と決めたものを突きとおすだけでは思うように成功はできません。だからこそ、私たちは今日も小さく産み、変化を楽しみながら、大きく育てていくのです。
