はてなに入社してから3ヶ月が経ちました。
4月に入って年度も替わり、新元号も無事発表され、一つの節目としてちょうどよいだろうと思ったので、はてなでの3ヶ月間のことを少し振り返ってみようと思います。
3ヶ月なにしてたの
はてなブックマークのアプリチームで、自分自身の専門領域である Android アプリを担当しています。
はてなブックマークアプリには更なる機能の拡充や、変化し続けるアプリ開発現場への対応が求められているため、様々なタスクに取り組んでいます。 はてなブックマーク開発ブログで告知したものだと、これらのことになります。
その他のこととしては、不具合修正、ソースコードの Kotlin 化、定期的なリリースを行える仕組みの整備などを行っています。
やらなければならないこと、やりたいことはまだまだ沢山あるのでもっと貢献していきたいですし、僕自身ヘビーユーザの1人であるはてなブックマークに関われることは強いモチベーションにもなっているので仕事面ではもちろん、エンジニアとしても、とても恵まれたことだと捉えています。
ところで、僕の知識が明るくない iOS 版のほうにもほんの少しだけですがコミットしています。iOS 力を付けるための目標、環境の整備も済ませているので少しずつでも iOS 方面への継続的なコミットもしていきます。
コードレビュー文化
僕の担当しているプロジェクト以外のリポジトリのコードも参考にするため色々覗いているのですが、はてなでは少なくとも1人以上によるコードレビュー文化が強く根付いていると感じています。
これまでコードレビュー文化のある環境に身を置いていたことはありました。
ただし、コードレビューをしてもらう役割のレビュイー、レビューをする役割であるレビュアーの立場それぞれを自分自身がしっかり行う、というのは初めてのことでした。
特に業務のプロダクト開発において、自分のコードが実際のリリースに乗る前に沢山の人に見てもらえて、指摘が貰えるというのはとても安心できる環境です。
常に 100% の集中力、100% の注意力でコードを書けていればそれに越したことはないのですが、残念なことに、人間はそのようにデザインされていません。
1日の中でもパフォーマンスが大きくブレてしまうし、自分でも信じられないミスをしていることもいっぱいあります。
そのブレで発生してしまった機能的、コード的な品質の問題を修正できる場の一つがコードレビューだ、と僕は考えています。
自分の知らないアプローチ、知識などを得ることができる場でもあります。
「ここはどうしてこうしたのかな?」という質問をすれば、目の前のコードに至る考え方をコードを書いた本人の言葉で直接学ぶこともできます。
ちなみに、僕は自分の書いたコードにいつも自信がないので、WIP(Work In Progress) な Pull Request を作って、なるべく早い段階で他の人の目に触れる場に公開するようにしています。
とは言っているものの、結構忘れることがあります…。
さて、コードレビューというものは、緊張するし、恐ろしいものだと考えてしまうことがあります。そういったときには、いつも次のことを思い出すようにしています。
多くのコードレビューがうまくいかないのは、プログラマが自分のコードの価値を自分自身の価値と考えてしまうからだ。レビュアたちがコードの問題点を指摘すると、プログラマはそれを侮辱と受け取り、自己防衛的になるため、レビューの効果が急激に下がってしまう。 ここではっきりさせておこう。レビュアはかならずあなたのコードの欠点を見つけるものだ。それは確実と言ってよい。しかし、だからといってあなたを貶めているわけではない。コードをどのように書くべきかということに関しては、いつでもかならず改良の余地がある。少なくとも、別の考え方はあり得る。コードレビューは、あなたを被告とする裁判ではなく、オープンな議論の場と考えるようにしよう。 www.oreilly.co.jp
夕べはわたてん観てすぐ寝たのに夢の中でコードレビュー対応してて休んだ気がしない
— バトルプログラマー柴田智也🔄🍣乙倉とよしのんと結婚した (@tomoya_shibata) 2019年2月6日
福利厚生まわり
飲み物
フリーです。
コーヒーや炭酸飲料もありますが青汁や黒酢、野菜ジュースにビタミン系の飲料もあったりします。 最近は、お昼ご飯を食べたあと乳酸菌飲料を飲むことが多いかな。
お菓子
フリーです。
いまは僕の自席から2歩で手に入る位置にあります。
危険です。
おひるごはん
界隈では有名なことかもしれませんが、はてなではランチが提供されます。
僕は放って置かれると月火水木ラーメン金カレーという食生活になりがちなので、はてなで提供される健康的なお昼ご飯にはいつも感謝しながら頂いています。
一方でお米が美味しいのはメリットでもありデメリットでもあって、はい、ええと、つまり、食べ過ぎてしまうということですね、ここ3週間ほどは、根本的解決手段として「お米を食べない」をしていて、なぜかというと、眠くなるからです。
午後の眠気対策の一環として知られる「昼ご飯で白米を摂取しないムーブ」をやってみたんだけれど思いのほか眠気に襲われることがなく、とはいえ今日たまたまなのか、実際に効果を得られたのかが未知なので今週一週間やってみる
— バトルプログラマー柴田智也🔄🍣乙倉とよしのんと結婚した (@tomoya_shibata) 2019年3月18日
先週はランチで白米を食べないキャンペーンを実施して普段の昼〜夕方の睡魔を1としたとき白米食べなかった場合では 0.5 ぐらいまで収まる感触を得たので今週も白米を食べないキャンペーンを継続してる
— バトルプログラマー柴田智也🔄🍣乙倉とよしのんと結婚した (@tomoya_shibata) 2019年3月26日
お米以外のおかず、汁物はちゃんと取るようにしています。
何かの効果を目的に食事のコントロールをするときは、そもそも健康に必要な栄養素の摂取を欠かさないよう気をつけたいです。
とはいえ、本当に眠いときは可能なかぎり業務時間中であろうと15分ほど寝るべきだ、というのが僕の主張です。
眠いときの仕事ほど「あまりよくないこと」が起きるのは容易に想像できる通りですし、自身の経験談でもあります。
課題
はてなに入って嬉しかったことをいくつか書いてきましたが、僕自身が抱えている課題についても触れるべきかなと思いました。
明確に感じている課題としては「1 on 1 に持っていける話題をちゃんと用意できていない」ことを感じています。
日々の業務に携わっていく中で、何かしら思うところというのはどんな環境でも発生します。
一方で「思う」だけでは何も変化が発生しないのは当然のことで、もし 1 on 1 という他者に自分の思いを伝えられる仕組みがあるのなら、そこで自分の思っていることが正しく相手に伝わるよう言葉で届けてあげるべきだ、と考えています。
僕の場合、この3ヶ月間は目の前のタスクに夢中になっているあまり、「相手に正しく伝えるための言葉に起こす作業」ができていないことを明確に感じています。
せっかくの 1 on 1 という機会をおろそかにする理由はもちろん無いので、対策としては、自分の中の思いをいきなり丁寧な言葉に起こすのではなく、デジタルな走り書きでよいので、まず、メモをしておく(その瞬間における自分のスナップショット)といいかなと考えています。
だいたいそんなかんじです
つまり言いたいことは出社5日目につぶやいていました。
予め言っておくと数年以内に転職をする予定は一切無くて、それを踏まえて聞いて頂きたいわけですけど、はてなに入社して1週間を終えたわけですが、ぼく、この会社から別の会社に転職するの、まず無理だ、という感想になりました、
— バトルプログラマー柴田智也🔄🍣乙倉とよしのんと結婚した (@tomoya_shibata) 2019年1月11日
現場からは以上となります。
未だ至らぬ点がありますが、日々精進して行くため、皆様よろしくお願いいたします。