phpカンファレンス2018に参加しました。

12/15(土)
phpカンファレンス2018に参加しました。
---
前回初めてカンファレンスに参加したときは準備不足だと思うことがあったので、今回は「あれやっておけばよかった」という反省を踏まえて参加しました。

例えば……
「PCを持ってくる」
とか……
「事前に公開されている資料へ目を通しておく」
とか……

て、低次元と言われてしまうかもしれませんが……!
---
ちなみに、午前中は用事があって行けず……。
午後13時以降の5トラックに参加しました。

PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み』
ユニットテストが入れられないレガシーなソースでCIが回せるようになった』
『Phalcon Essentials: Phalcon で作る成長可能なアプリケーション』
『エンジニアだけで完全内製化のQAチームを立ち上げた話』
『エンジニア経験5ヶ月の新人がDDDやTDD、コンポーネントを駆使してクソコードを改革してきた話』

どれもためになるトラックでしたが、その中でも印象深かったのが……

『エンジニアだけで完全内製化のQAチームを立ち上げた話』

でした。
これは、トラックの内容が自分の境遇と少し似ていたからかもしれません。
ここでは、カンファレンスの内容と合わせて、自分の取り組みを振り返ってみようと思います。
---
ここで、改めて自分のスペックを紹介します。
2015年4月に、新卒でとある会社に就職します。
(この話をすると、どこに勤めていたかわかる方がいらっしゃるかもしれませんが)ほぼ1年課題突破型の研修を受け、2016年2月から、現場へ配属されることが決まりました。
当時はJavaでの開発がメインで、時にJavaScriptを触ったりもしていました。
ただ、無理な長時間労働を続けてしまったせいかその年の9月頃に体調を崩し、そのまま離職。
2017年の3月から、今の会社で働き始めることになりました。
言語がphpに変わり、ゼロからのスタート。大変な時期はありましたが、現在無事に2年近く勤務できております。豆腐メンタルな自分を受け入れてくれた今の会社がとてもやさしい……。
---
そんな僕ですが、昨年2017年の12月、新しい案件へのアサインが決定します。
最初お話をいただいたとき、「僕なんかがあの案件に行って大丈夫か!?」とドキドキしていましたが、行けと言われたら行くしかないと、年明けから新しい案件で業務が始まります……。
その案件で当時『不具合が多いのを何とかしたい』という動きがあり、僕がアサインされた直後から開発者がテストケースを書き、相互にチェックする工程を増やすという方針が決まりました。
自分としては簡単なテストケースをいつも作って開発していたので、テストケースを書くことへの抵抗はありませんでしたが、実施初期は開発期間よりもテストケースを作成する期間がどうしても長くなり、工数を圧迫してしまうことがデメリットであると感じていました。
しかし、導入の結果は、案件メンバーにとってとても良いものになったのです。
---
テストケースを書く、これ自体はアナログチックで、自動テスト化する話に比べるとインパクトは小さいかもしれませんが、実際にテストケースを書く、という工程が増えたことにより不具合は激減しました。
今回のカンファレンスを受けて改めて感じたのは、
『各開発者がテストケースを書く』
『そのテストケースへのレビューを実施する』
というルールを設けることで、属人化されてしまう品質管理の部分がある程度底上げされたのだと思います。
また、ソースレビュー以上に効果を感じたのが『仕様漏れの解消』でした。
本当は設計時点で芽を摘んでおかねばならないのですが、テストケースを書く際にソースの見直しだけでは気付けない仕様漏れを確認出来たことがあったので、個人に依存してしまう作業ではありますが、個々人の検知レベルも上がったのかな、と推測します。
---
このトラックを聞いていても思ったのですが、『ルール作り』は重要だなと。
これが「個人で頑張ってテストしてください」では絶対にエラーは撲滅出来ません。
また、ルールを作った後でそのルールを守ったのがまた大事ポイントなのかなと。
仕事が忙しくなると、ルールを無視してしまうことは往々にしてあると思いますが、
順守出来たことで安定運用を実現出来たことを考えれば、『ルールを作る』『ルールを順守する』という工程は、テストの自動化より意義のある取り組みだったのかな、と思います。あ、もちろんテスト自動化は新しい課題だと思っています!!!
---
エンジニア4年目もあと3ヵ月で幕を閉じます。
最初の1年と半年の休職があり、実質2年半の実務経験しかない僕は毎年、がむしゃらに業務をこなし、成長するんだ!!!という気持ちで今日まで取り組んで来ました。
ただ、今日カンファレンスに来てみて、「このままじゃ食っていけねえ!!!」という危機感がまた、大きくなりました。
まだまだ勉強不足で、わからないことが沢山あって。
でも、1日でそれが解消されるほど優しい世界ではなく。
そしてまた、僕がそこまで熱意を持っているスーパーエンジニアでもなく。
恐らく今の僕は、どーーーーーこにでもいると言われてしまうであろう、平凡なPHPerのひとりでしかないのだと思います。
そんな僕に出来ることはなんだろうかと、帰りの電車で考えていたのですが。

『知らないことは知る』

これしかないな、と。

ちょうど、php5技術者認定試験を受けた、というエントリを書いた時にも思ったのですが、『自分が知らないこと』を知るきっかけを作っていかないと、『自分が勉強不足』だということにも気付けないなと。

だから、今日のようなカンファレンスや勉強会は、出れるなら出て、そこで知識を吸収する。わからないことは調べて、それも吸収する。
日々、技術系のニュースは一つでも良いのでウォッチして、そこでわからないことがあればまた調べて、吸収する。
その地道な作業を繰り返すしかないなと。
あ、もちろん、自分でソース書いてプログラム動かすとか、そういうのも重要だと分かったうえで、ですよ!
ただ、この仕事をやっていると『わからなくて答えられない』というのがとても恥ずかしくて、悔しいと思うことがよくあります。そこから脱出するために、エンジニア5年目に突入する来年に向けて、知識の習得に貪欲な姿勢を見せていこうと決心したところで、今日のブログ更新を終了します。

ps
来年のカンファレンスは、macBooksurfaceで参加したい…。