読者です 読者をやめる 読者になる 読者になる

Mercari Engineering Blog

We're the engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

PHPカンファレンス関西2016で基調講演してきました

サーバーサイドエンジニアの@Hirakuです。 2016年7月16日(土)、 PHPカンファレンス関西2016 にて基調講演をしてきましたので、その報告と補足をします。

トーク動画は後日公開されると聞いていますので、口頭で補足した内容などはそちらをご期待ください。

内容について

講演内容は今年2月に公開した記事 光遅い問題を克服してcomposerを10倍速くした話 - Mercari Engineering Blog をもう少し詳しく解説したものです。

基調講演ということだったので、Composer自体の細かい話をするよりも、なぜこんなことに時間を費やしてきたのか、自分より若いエンジニアに何か伝えるものがないか、というようなことを考えて、エモ全開の内容になりました。

改善活動だけを話すとComposerを貶す内容になってしまいます。詳しい事情も知らない人にDISの口実を与えるのも嫌だったので、そこはComposerは偉業なのだ、という内容も含めてバランスを取っています。

Composerプラグイン開発のノウハウやComposerのあまり知られていない機能、Packagistのミラーリングのノウハウなど、他にも話せることはあるのですが、それはまた別の機会にできればと思います。

時間も長かったので、伏線を作ってみたりとか、工夫する余地があって楽しかったです。

自分の原点

基調講演というのは、参加者全員がそれを聞いて、盛り上げてウオオオオってするものだと伝え聞きました。なので講演のお誘いを頂いたとき既に、話すことは自分の原点しかないと決まっていました。

私がプログラミングで何かを作ったのは、社会人になってからです。特別な教育を受けたわけでもなく、素早くコードを書くことも苦手で、才能はないんじゃないか、この先プログラマーとしてやっていけるのだろうか、という風にずっと自信が持てませんでした。

そんな時、書籍の「プログラミングPerl」のはじめにの一節を読んで、衝撃を受けました。ちょっと引用します。

最も大切なのは、すべてを学び終えないうちに、役に立つプログラムが書けるという点である。あなたは、Perlを「端っこ」から少しずつ学び始めることができる。あなたは赤ちゃん言葉でPerlのプログラムを書くことができる ―― 私たちはそれを笑ったりしないと約束しよう。 (中略) われわれは、言語公安警察にあなたを尾行させたりはしない。上司からクビにされないうちに仕事を片付けられれば、それは「正しい」Perlスクリプトなのだ。

それまでずっと、周りと自分を比較してウジウジしていた私は、プログラミング言語を作るようなスーパーエンジニアが、拙いコードを書いてもいいと言っていることに非常に感動しました。それこそ「君はヒーローになれる」と言われたような気がしたのです。「自分でも何かできるかもしれない」と思えて、ゆっくりだけどコードが書けるようになったのは、たぶんそれからです。

でも、クソコードしか書けない人がクソコードを書こうと言ったところで何も説得力がないし、勉強しろと叱られるだけです。 だからいつか誰もが認めるような成果を出して、「クソコードでいいのだ」と断言してやるのが私の夢でした。

基調講演で言いたい放題言えて、ちょっと夢が叶ったな、と思いました。コードの話にしてしまうとコードを書かずに解決する場合のことが抜け落ちてしまうので、「問題と向き合うこと」という風に言い換えました。

「問題と向き合っていて孤独に感じないのか?」

そうそう、会場からのこの質問に、若干うまく答えられなかった気がするので、補足しておきます。

問題がすぐ自分で解決できればいいんですが、自分ではどうしようもなく、他にだれも解決しようとしていない場合は孤独でつらいものです。そもそも、答えのない問題も多くあります。

なので、そういうときは仲間を探すといいです。勉強会やカンファレンスに出たり主催したりしてもよいでしょう。インターネットで同じ問題に苦しんでいる人がいないか探し、日本語圏で見つからなければ英語や他の言語でも探してみましょう。会社に話の通じる人がいなければ、いっそのこと転職に踏み切るのもいいかもしれません。

同じ問題で苦しんでいて、解決できなくても「これをなんとかしたい」とあきらめない声を聞くと、勇気が湧いてくるものです。一番良くないのは、感覚が麻痺して問題を問題だと認識できなくなったり、どうせ解けないと問題に慣れてしまうことだと思います。

残念ながら、カンファレンスでありがたい話を聞いても、何か技術書を読んでも、自分が抱えている問題が突然に解消されることはありません。納期の迫っている開発、なぜかたまに起こるエラー、もう辞めてしまった人の残した負債、DBに残された使われていないテーブル。たぶん、世の中にいっぱい問題はあるのでしょう。

問題の大きさにかかわらず、そこに居合わせた人が何かしないと解決しないはずです。別に自分自身で解決しなくても、助けを求める声を上げるだけでも何かのきっかけになるかもしれません。「これは問題だ」と断言するのは誰にでもできますが、英雄的な尊い行為です。

きっと、みんなが少しずつ自分の抱えている問題に向き合っていれば、世の中少しずつよくなるのだと思います。