Muranaga's View

読書、美術鑑賞、ときにビジネスの日々

尊敬するコンピュータ・サイエンティストが、ビジネスの現場にやってきた

研究所時代の同僚で、最も尊敬する同い歳の IT技術者(コンピュータ・サイエンティスト)と、久しぶりに 2人で飲んだ。分散システム、特に OS やミドルウェアの研究開発者であり、Tanenbaum 博士の書いた Minix という教育用 OS の教科書(原書初版)を輪講して、そのままそこに仮想記憶管理のコードを追加して書いてしまうようなハッカー。30年にわたる会社人生を技術者として全うするつもりだったらしいが、何と今は新しいデータビジネスの会社の立ち上げに奔走している。事業開発だけでなく、新会社のパソコンや情報システムの整備など、慣れないスタフとしての仕事もやっている。

monoist.atmarkit.co.jp

研究所からビジネスの現場へ。全く新しい環境に放り込まれた訳だが、「最前線」に出られたことを素直に喜んでいるようだ。研究所にいるとなかなか顧客の声を聞く機会が得られないらしいが、今だと「アイディアの段階でヒアリングに行ける。」研究所にいると、顧客のところに行く前に、かなりの技術の完成度を求められるらしい。

新しい開発なのだから、失敗するのは当たり前。MVP (Minimal Viable Product) で顧客の反応を見ながら、細かく軌道修正するリーン・スタートアップのやり方ができるという訳だ。

リーン・スタートアップ

リーン・スタートアップ

僕は20年前、彼よりはかなり早い30代後半で、研究所を追い出されて、インターネットビジネスの最前線に飛び込んだが、あの時は顧客のダイレクトな反応を感じながら、サービスを開発する喜びを感じたし、ビジネスを立ち上げるためなら、技術者という枠に閉じこもらず、何でもやらなければならない毎日が刺激的で、楽しくて仕方がなかった。彼はこの歳になってその喜びを初めて体験している。そしてその経験に共感する僕がいる。

muranaga.hatenablog.com

muranaga.hatenablog.com

お互い「ジャマおじ」にならないこと(安宅和人『シン・ニホン』参照)、若手の背中を押すおじさんになること、そしてその大前提として、現場で汗をかいて、おじさんの本気のほどを見せることを誓い合った。まさか、この歳になって、彼と研究開発ではなく、事業開発の話をすることになるとは夢にも思わなかった。

kaz-ataka.hatenablog.com

note.com

さて、優秀なコンピュータ・サイエンティストである彼との会話から、印象に残っているものを記しておく。

ここ数年ずっと気になっていた技術について、尋ねてみた。「Docker のようなコンテナ型仮想化って、どうなってるの?」

「あれは Unix のプロセス。fork & exec の世界。だから軽い。ただしプロセスごとにユーザやファイルシステムを持っている。」

なるほど。何とわかりやすい説明なのだろう。特にわれわれのような Unix 世代には、一発でその本質が理解できる。独立した名前空間により、ホスト名、ファイルシステム、ネットワーク、UID、GID などがそれぞれ別に管理されている Unix プロセス。それを使って実装されたアプリケーション実行環境という訳だ。

さらに「複数のノード上に分散するコンテナを管理する Kubernetes がメジャーになっていて、いろいろなクラウド事業者が採用している」と、Docker 周辺の最新動向まで教えてくれた。さすがである。

qiita.com

www.slideshare.net

kubernetes.io

www.slideshare.net

API エコノミーで、SaaS(Software as a Service)、マイクロサービス・アーキテクチャ、さらにはサーバレス、FaaS (Function as a Service) の時代。サービス化されたソフトウェアを中身はある程度ブラックボックスであっても、それらをうまく組み合わせて活用することにより、システム構築の生産性は飛躍的に上がっており、ソフトウェアこそがビジネスのデジタル化、いわゆるデジタル・トランスフォーメーションのコアとなっている。それを「ソフトウェア・ファースト」と呼ぶ人もいる。

note.com

note.com

一方、われわれはオープンソース・ソフトウェアの先駆けの世代。ソフトウェアをブラックボックスのまま使うというより、当時は公開されたソースコードを読んで、中身を理解することができる時代でもあった。Minix のような教育用 OS をはじめ、LinuxFreeBSD のような OS、Xウィンドウシステム、プログラミング言語処理系と言ったシステムソフトウェアのソースコードを読む、そのアーキテクチャやコードの美しさに感動する、場合によってはそれを改良するというのが、コンピュータ・サイエンスの世界での最初の一歩であり基本スタンスだった。したがっていまだに面白い技術は、どうやって実装されているのかが気になるし、ソースコードを眺めてみたくなる。そうしないと動作原理がわかった気がしないのである。

因みに深層学習、ディープラーニングに代表される機械学習の技術もそうだ。解説書を読んだだけでは、どうもわかった気がしない。ソースコードを眺めたくなる。特にディープラーニングの場合、その前提となる数学も必要になる。「数学から逃げない」で、機械学習モデルの原理となる数学を高校レベルから解説し、かつ Pythonソースコードで学習モデルが提供されている本がある。これを読むと、ディープラーニングの原理が、わかった気になるオススメの本である。

だいぶ脱線してしまった。実は彼が立ち上げに奔走している会社のウェブサイトは、僕が勤めている会社が構築した。不思議な縁である。今後はさらに一歩踏み込んで、事業面でのコラボレーションができるか、話をしてみたい。僕の事業開発・経営の経験が、少しでも彼の役に立つことができれば嬉しい。

muranaga.hatenablog.com