テストステ論

京大卒の高テス協会会長がテストステロンに関する情報をお届けします

騒動の内容と今後について

騒動について

はじめに、今回の騒動について語る。ついにスラドに取り上げられたので、以下のスラドを見れば大まかには分かるだろうが、多くの人が事実を誤解していると思うので、釈明したい。

slashdot.jp

現職VA Linuxに入社後すぐ、もう一年前のことになるが、素晴らしい功績をスラドに取り上げられて(第9回日本OSS貢献者賞・奨励賞の受賞者、発表される | スラド)、いよいよ開発者としてキャリアを始めようかという時にこの惨事なので自分の社会不適合性が嫌になる。私は過去にも散々、掲示板やSNSなどでやらかしてきた。しかし私は根っからの異常者ではない。私という人間に興味があって会う人は口々に「ふつうだ」という。ネット社会の私が、完全な異常者なのだ。ちなみにリアルの私は、自己評価になるが、極めて素敵な好青年である。

私が日立からVAに転職をした理由は、転職記事に書いたとおり、高い技術力を持った集団の中に身を置いて、修練したかったからである。VAは、少なくとも低レイヤの技術力については単なるの弱小企業として語られるべきではない例外である。この点を、今回の騒動でコメントしている人たちの多くが理解していない。
私はVAで低レイヤの仕事をしている。もともと、若いうちに低レイヤの技術と戦っておくべきと思っていたので、内定をもらった時、私は本当に嬉しかったし、周りもおめでとうと言ってくれた。Linuxに関わる技術者の中では、知らない人間はいない会社である。日立の研究職を蹴ってでも行きたい会社なのだ。

入って半年は、学ぶことが多くて充実した日々を送っていた。なるほどこういう世界もあるのかと、情熱的に吸収した。それから、重要な機能について開発を任された。私はこの仕事についても、自分にとって新しいことだったので、高い興味を持って集中した。しかし最近になってモチベーションがなくなってきた。

低レイヤというのは、テストやデバグが恐ろしく大変である。最近は、コードを書き進めて技術を学ぶというよりは、こういう品質向上の仕事が中心になってきた。 テストについては、ソフトウェア工学に基づいたアプローチを行って学びが豊富ということかと思いきや、かなり原始的な方法でテストをひたすら書いていくというものである。テスト手法そのものについては、学ぶことはない。現代的なプログラミング言語ユニットテストを書く基盤があり、高度なものではQuickCheckのように入力を乱数生成するようなものも、形式的手法に基づいてバグを撲滅するアプローチもある。 デバグについては、くだらない型間違いや、些細なミスが重大なバグを引き起こすことが多く、結局は慎重な絞りこみと洞察という基本的なスキルを駆使して謎解きをしていくだけである。現代的なプログラミング言語では起こり得ないミスでバグっていたことも多く、その度にうんざりさせられる。確かに、プライベートでOSS開発をしていても、デバグ力は高まったと思うが、1年コーディングをすれば、この程度はふつうに成長するもののような気がする。そもそも、プライベートでも山ほどコードを書いているので、どこが成長に貢献しているのか切り分けが出来ない。 まとめると、現代的なプログラミングの本質からは程遠いところで仕事をしているという印象がある。

今回の件で「生き急ぐな」と何人かの大人に言われたが、今のIT業界というのはとにかくものすごい勢いで加速している。その理由の一つは学習のリソースがネットにごろごろ転がっているということである。勉強会も日々開催され、エンジニアのレベルはどんどん高まっていく。若手には焦りがあり、それが大人には生き急ぎに見えるのだろうと思う。10年前と今とでは、時間の密度が全く違うと私は思う。チャンスが来るのを力を蓄えながら待つという思考は、少なくとも私の中には存在しない。

その焦りが恐ろしい量の「ぼやき」に繋がった。現在、IT業界の主流はウェブ業界である。インフラエンジニアといってもそれはLinuxカーネルをいじる人間のことではなく、バックエンドシステムを構築・解析したりと言った仕事をする人のことである。多くの開発者の努力により、Linuxカーネルをはじめとして基盤OSSの性能・信頼性が十分となり、人類にとってやることが少なくなってきたというのが、その流れを作っている主な要因である。今、優秀な若者がどこに流れていくかというと、低レイヤ業界ではなく、ウェブのバックエンドだ。私と同等以上のLinuxカーネル経験を持つ私の知り合いも、そういうレイヤに流れた。Linuxカーネルの知識を活用し、非常に充実した日々を送っているように見える。また、ウェブ業界での価値もどんどん高まっているように見える。私はどうだろうか。

私はいずれは少しずつ上のレイヤに上がっていきたいと思っているし、その時の差別化のためにLinuxカーネルでの経験や現職の経験が活きると信じているが、このまま古典的な技術で地道に学び続けているのはあまりに足が遅すぎやしないだろうか?と悩み、焦りを生んだ。ぼやきの通り、給与をもっともらえば多少はその給与を守るためにやる気を出すかも知れないが、本質的な解決は、今やってることに自分の業務にとって自信を持つ他にないだろうとも思う。

今後について

今回の騒動で、会社や会社の同僚にも多大な迷惑をかけてしまったことなので、非常に居づらくなってしまった。VAは少人数の企業なので、人間関係はとても重要だ。この事も身を持って学習した(私は賢いので二度と過ちは犯さないだろうと思う)。私としては、再度転職をして、新天地でやり直したいという思いが強い。

私の希望を箇条書きする。もし、私に興味がある企業があれば、Twitter/Facebookのプライベートメッセージや、E-MailでContactしてほしい。私は強い戦力になれると自負している。

  • 低レイヤにはこだわらない。ただし、過去の経験が一切活きない分野というのは、おそらく双方にとって良くない。
  • プログラミングは出来る方であると自認しているし、Github(https://github.com/akiradeveloper)を見てもらえばそれは分かると思う。下には私の今年一年のOSSアウトプットをリストした。
  • 新しい言語への抵抗はなく、むしろ好ましい。最近ではNim、Rust、Elixirといった比較的新しい言語を学んで開発成果を出している。新しい言語を学ぶ理由は、より優れたソフトウェアを作りたいという願望が根底にある。
  • 現在注目しているElixirやRustといった言語で開発が出来るならば大変嬉しいが、これに限らない。ErlangScala、Goなどの実用的な言語を仕事で使い倒すことにも興味がある。
  • 関数型言語には興味がある。関数型言語での開発にチャレンジさせてもらえるのであれば喜んでやる。
  • マックブックを持ってカフェに出かけて開発することがプライベートのスタイルであるため、これが許される方が好ましい。
  • 車と時計の話ばかりしているオトナとではなく、アニメの話題などでも盛り上がれる若者と働きたい。
  • 外国人とのコミュニケーションにはあまり問題がないため、職場に外国人がいても問題はない。日立時代にはアメリカからのインターン生の指導員をしたことがある。
  • 勤務地についてはこだわらない。必要ならば引っ越す。
  • 過去の経験から年俸交渉には妥協しないが、驚くほどの要求はしないので安心してほしい。最終的には仕事の内容と労働条件の両方で決めたい。
  • 歯列矯正をしているため、今すぐ日本から出ていくのは控えたい。1年半後であればOK。

[参考] この一年で作ったソフトウェア

私は仕事外でずっと開発をしている開発の虫である。今年は特に、Post C++言語に注目して学習と実践としての開発を多く行った。なぜそのような方針で学習を行ったかというと、基盤依りのエンジニアとしてキャリアを積んでいくためには、言語もその領域に合った次世代のものを習得すべきだと考えたからである。また非常に残念なことではあるが、VAにおける次の開発ネタを探っていた意味もある。DockerがGoという言語で書かれたように、次に面白いネタとなるソフトウェアは次世代システムプログラミング言語のどれかで書かれるべきだという読みがある。