最近のDeep Learning関連の開発では、論文や研究が随分身近になってきた。 論文を読むだけで無く、書くことも仕事の一部になってきている。 これは、これまでのソフトウェア開発とは結構違うな、と思う。 実際名前もデータサイエンティストとか、プログラマとは違う名前だったりするし。

ただ、ソフトウェアを開発する時に、これまで使ってなかった物を使うようになった、という経験は、この以前にもあった気がしている。 自分としては業務でオープンソースの出番が一般的になったのに、感覚的には似ている気がする。

オーブンソース自体は昔から一部では使ってたし、その広まり方も徐々に広まっていった感じなので、XX以前と以後、みたいにスパッとは分けにくいが、2000年代の頭くらいまでとAWSでの仕事が一般的になった最近とを比べると、オープンソース的な物の実力という物の重みは大分変わった気がする。

例えばちゃんとバグを挙げて開発チームとコミュニケートとったり、直ったかどうかを確認しておいてバージョンを上げたりといった判断をしたり、ちゃんとacceptされるようなパッチを書いてしっかりと本家にねじ込んだり、そういったオープンソースの世界での実力、みたいなのは仕事の実力の、結構大きな所を占めるようになった。

また、オープンソース界隈での流行りとか地雷とかを見抜いたりとか、やりたい事に応用出来るような物の存在を知ってたり、また使った経験をある程度持っていてさっくりと導入出来る引き出しをどれだけ持ってるか、みたいな実力なども、随分と重要になったと思う。

間接的にも、例えばイベントなどで良く発表したり参加している人を抱えておかないと人材が集まらなかったりするので、かつての感覚では無駄とか不要な情報発信と思える事でも、業務としてある程度やらせる方が良かったりする。 そうした人たちが集まってきやすい文化を作っておくのが大切だったりする。

そういうのは古い人には無駄にも見える。 リスクを減らす為になるべくオープンソースは使わずに、必要最小限な所だけで済ませたい、という組織人と、オープンソースの世界で活躍したい、そういう仕事が出来る場所に行きたい、という人の考え方は、凄く隔たりがある。
後者の人にとってオープンソースの活動が仕事より下とは限らない、というのも、今となっては当たり前だが、15年前なら新人類と扱われていたと思う。

こうした、オープンソースの世界での流儀を知っていて何かのプロダクトでちゃんとやっていった経験を持っていたり、またその世界の全体的な事情にある程度通じていて経験値を持ってたり、みたいなのが重要になったのは、ここ15年とかの話だと思う。

機械学習系の開発で研究コミュニティでの様々な能力が重要なのは、このオープンソース力と一つメタな所では似ている気がする。

  • かつてはそんな能力は必要とされていなかった
  • 社内の過去の仕事に詳しい、とは別の、外の世界の何か
  • これまでの仕事の常識とは違う常識がある
  • 必要最小限の範囲でなるべく深入りせずに済まそうという老人よりも、仕事の必要性を超えてどっぷり漬かってる人の方が、遥かに大きな力を発揮する
  • その文化圏で生きている人をプールしておくと、なんか同種の人が集まってきたりしやすい

という事で、自分としてはオープンソースとかと似たような物として研究活動を捉えている。

チーム内に学会とかに行ってる人を抱えている所の方が有利だし、さらには自身の分野でバリバリ論文書いて新しい手法やモデルを提案していく人が居ると、出来る事はずっと多くなるし、そうした人たちが集まってくるように文化的なものを整えたりするのが大切だったりする。

老人はなるべく研究的な事無しでサービスを作れないか、と思いがちで、一方で新人類はむしろ研究で活躍していけるようなサービス開発がしたい、と思っていたりする。