2つの技術力

「ソフトウェア企業の技術力」と聞いて、あなたはどんな技術力をイメージしますか。僕は、技術力は次の2つに大別できると思っている。

  • 数学的な技術力
  • 工学的な技術力

数学的な技術力とは、他社には出来ないことを実現する技術力だ。例えば圧倒的に高速な演算を実現するとか、他のソフトでは解けない演算を解いてみせるとか。グーグルの検索技術などはこちらに分類できるだろう。

一方、工学的な技術力とは、同じことを他社よりも低コストで実現する技術力だ。きれいにモジュール化し、ソフトウェアコンポーネントの独立性を高め、変更に強い設計を実現する。あるいは、アジャイル開発手法などを取り入れてスムーズに開発を進める技術力も含まれるかもしれない。

下図のように、2つの技術力を軸としたマップを考えてみると面白いと思うのだけれど、どうだろう。業界内で自社はどこに位置するだろうか。社内で自分はどこに位置するだろうか。

さて、ここで思い切って、ちょっと極端な意見を述べてみよう。

数学的な技術力は営業力を持つが、工学的な技術力は営業力を持たない。

例えばトヨタ生産方式は(狭義には)同じものを他社よりも低コストに素早く生産する技術であって、これ自体は営業力を持たない。もちろん低コストが低価格に結びつくことで結果的に営業力に繋がることはあるけれど、「トヨタ生産方式で作っていること」自体が商品の魅力を上げているわけじゃない。だから、もしテレビCMで「カローラトヨタ生産方式で生産されています」とやっても、視聴者は「はぁ?」と思うだけだろう。もちろんそんなCMはなく、技術力としては燃費性能などをアピールするのが普通だ。

それはソフトウェアも同じではないだろうか。「ウチのソフトは高度なオブジェクト指向設計で開発されています」とか言っても「はぁ?」と思われるだけなのではないか。「そんなことよりも、お宅のソフトは他社と比べてどんな優位性があるのか?」と聞き返されてしまうのではないか。

そういう意味では、数学的な技術力を確立することは経営上非常に重要なことであろうと思う。しかし、この世界に身をおいてネットをウォッチしていると、工学的な技術力ばかりが重要視されているように勘違いしてしまいそうになる。思わずそちらの技術力ばかりに気をとられてしまう。なぜなら、工学的な技術力のほうがずっと汎用的で、しかも非常にオープンに議論が交わされているからだ。一方、数学的な技術力というのは非常に限られた狭い業界内でしか話が通じない技術力であることが多く、そういった場にはライバル企業がひしめいているわけだから、当然ながらオープンな議論というのはあまり行われていない(もちろん、アカデミックな場は別)。しかし、お客さんの視点から見ればこの技術力こそが重要なのだ。この辺は意識的に気をつけないといけないと思っている。

思うに、配分としては工学的な技術9に対して、数学的な技術は1で良い。実際の開発において問題になるのは工学的な技術が殆どだからだ。しかし、1割くらいは数学的な技術が込められていないと、商品としての魅力に欠けるのではないか。魅力のないソフトウェアを美しい設計で仕上げたところで意味を成さないのではないか。

もちろん商品の魅力というのは単に技術力だけではないので何とも言えないのだけれど、今僕が戦っている土俵ではそんな感じがしている。