2018年度を振り返る

さぁ新しい節目、心機一転!!というタイミングでもないのだけれど。
やるなら年初だよね〜という気もしつつ、まぁ年末年始はブログだったり執筆だったり個人開発だったりにかまけていたので。「振り返ろ〜」というより、前に進ませようモードだったのでスルーしていた次第。

個人的には2018年度はとても苦しんだ・苦々しい時期が長かったように感じる。
そこで、自分自身を禊ぐという意味合いと現在位置を確認しようという狙いで、この1年の行動なんかを振り返ってみようと思った次第。
・・・年度末からずっと「やっておきたいな」と思っていたのが、3,4月は完全に何かを考える余裕がなく・自分自身にベクトルを向けて思考する気力がなかったので、この大型連休のタイミングまでずれ込んでしまった。

前置き

今の会社、自分に限らず「専門性が高いプレイヤーが堅いコアをベースに動いていく」というよりは、「上流に近い補佐だったりグロース周りの支援だったり」というところから「ディレクターと関わらないうなシステム改修・アーキテクチャ変更」までの広めな振れ幅の中で動くことが多い。
まだまだ「赤魔道士的なプレイヤー数名からなる集団」だったことが遠い過去でない、という事実ゆえか。

そういった面での流動性が高く、兵站をいじれるがゆえに1,2四半期でチーム分け(中身の移籍だけでなく、外殻ごと)を行うのがしょっちゅう。
実際に、「背負うべきミッション」「担わされる期待、方向性」というのがガラガラと変わっている印象がある。

とりわけ、ここ1年ちょっとは「ディレクターが増えた」「予算もつき、サービスのフェーズが変わった(このあたりの流れの本格化)」ことが手伝い、ふんわりした言い方だが、サービスについての「育て方」の捉え方が変わった気がする。その「新しさ」ゆえの試行錯誤があり、結果として「チーム体制がしょっちゅう変わる」。

そうすると、1つの「代表作」を生むような深化・連続性というのは追い求めづらく(1Qフルコミットしてても次の月からマインドの入れ替えが要求されるのだから)、「やったこと」としては雑多になりがちで、ややもすると「自分が何をしていたのか分かりづらい」。

「ああいうのもそれもこれも、いろいろやったね」というのは、自分自身としても「何をやったか」「やりきれたのか」「レベルが上がったか」というのが捉えづらく曇るので
だから「ちょっと整理してみようかな」と思ったのが、このエントリーを書いている理由でもある。
いち専門職サラリーマンとして、自分は何をしていたのかな・・的な。

これを、2018年度+そこに至る前日譚としてFY17-4Qから時期別に並べていってみようと思う。

2017-4Q

前半; DB構成変更(冗長化)対応

プロダクト的な大きい話としては、前例のない規模でのマスマーケティングを打って出たタイミング。TVCMなど。
それに備えて、DBの冗長化、master-replica構成への移行を行っていた。
インフラ側の対応はそもそもインフラエンジニアが1人しかないので、そしてアプリ側は自分が担っていた。
対象はCakePHP2製のWebアプリケーション2本と、CakePHP3製のWebアプリケーション1(+1)本*1
CakePHP3のそれは、当初は自分が中心的に、途中からは2名の中途採用者を招き入れて立ち上げ設計実装を行っていたもの。現時点ではサーバーサイドappのメインとなっているレポジトリ。

この「大きなpj」の主務として自分がアサインされた理由としては、PHP/CakePHPアプリケーションを最も書きなれているから〜という期待からだろうか、と思う。
大幅な障壁!!のような印象はあるし、実際に生み出した成果としては間違いなくでかいのだけれど。

が、結果としてコード的には大分シンプルになったはずで、なんというか「どこをどういじればすんなり行けそうか」という見極めの部分に最も力を割いた記憶がある。
「デカイことを最低限のコード量で」成し遂げるときというのは、ものすごい充足感を得る。
また、このレベルの「根本的な部分」の移行において、なにも障害やトラブルを招かずに成功させられたのも、ちょっとした自慢。

とても「Cakeぽい」コードになったと思うし、ちゃんと「自分のキャラクターと、そこに組織が期待している部分」に対してしっかり打ち返すことは出来ていたのではないだろうか。

きっと自分以外だと「この仕事」をできるのは社内に恐らく1,2人・・Cake2/3同時にかつ期間を絞ってやりきる!!みたいなとこまで求めたら、もう俺しかいませんよね!というのは確かだと思うし*2、単純に技術的なチャレンジがあったので、良いやりがいも得てはいた時期。

後半

それ以降は、4Qからの新チームの他のメンバーと一緒に粛々とIssueを回していた時期。
レガシーよりのアプリケーション(4,5年前からあるレポジトリ)とモバイルapp内コンテンツ用の素朴なwebviewサービスを扱う編成で、ディレクターに対してデータ分析文脈での支援を担ったり、biz職(サービスのオペレータなど)の作業効率化のためのモノなどをやったり。

もともとデータ分析系はTableauの導入を行ったりRedashを浸透させるためのアクションを打っていたりしていたので、というコンテキストがあっての役回りだろうか。
このQiita記事に繋がるような事をしてたのも、多分この時期かな?

RedashでのSankey Diagram、Sunburst Sequence Diagramの利用 - Qiita

2018-1Q

自分としては、データ周りの支援業務に比重をおいていったかな〜という記憶。

この時期に仕込んでいたネタがきっかけで勉強会への登壇などもさせていただいたり。

みんなが Redash を 気持ちよく使うやり方を 考える #redashmeetup - Speaker Deck

どうしてもデータは「長く見ている人・肌感や嗅覚の鋭い人」が強くなりがちで、他方でエンジニアやSQL慣れしている人だと力になりやすい部分〜というのも絶対にあるので、その辺りをお互いの力を合わせてできたら絶対に素敵!!という願望。

その他に、2017-3Qに取り組んでいた内容のアウトプットとしてCakeのプラグインを外に出したのもこの時期みたい。

GitHub - Connehito/cake-sentry: CakePHP plugin integration for Sentry

2018-2Q

チーム体制の変更・・実際には顔ぶれは(ほぼ)変わらなかったのだけど、前Qと担うミッションがやや変わった。「もっとココに注力していくぞ」という号令だ。

分析ソースの取り回しを効率化すべくETL的なタスクを行ったり。
具体的にはAWS Lambda駆動でGoogle BigQueryのデータをゴニョゴニョ->中間集計を行う、といった道具などを作った。
理想としては「テーブルがシンプルになったことによって、ディレクターが自身で手に負えるデータの世界が広がる」というものを描いていたが、そこまでの活用は進まなかった。
それよりも、寧ろ「データだしを依頼されて手を動かす」場面において、自分が圧倒的に楽になったという功績が大きいか。

引き続き「データ分回せる人を増やすと楽できそう」というモチベーションがあった時期で、例えば↓みたいな啓蒙などもしていた

https://speakerdeck.com/o0h/we-love-array-in-bigquery

この時期が最もRedashのクエリ組んだりしてたのかなー

mixpanel接続のためのQuery Runnerなどを書いていたのもこの時期。

GitHub - o0h/redash-mixpanel-query-runner: Redash's query-runner for mixpanel

また、プロダクトチーム全体をスコープとした啓蒙を見据えての取り組みも行い、そのアウトプットが↓

2018-3Q

ここが1番大きな組織変更。
「開発部」という物自体が解体されて、自分は「CTO室」となった。

諸々の事由により「CTO直下」の部隊が編成された形だが、特定のミッションに取り組むためのタスクフォース的な色が濃かった。

ここでもまた「Cake好きなやつ」役を期待されての配置だと思うのだが、具体的にはレガシー化していたバッチのスクラッチでのリプレイスや社内向けツールのリプレイスを担った。
このときに一緒に動いたappエンジニアが「主領域はJS」という人だったので、自分はPHPだし、よく言えば「お互いに背中は預けながらやりたいようにやってスピード上げる」みたいな布陣だった。
久々にCakePHP3に深く関わることができたかなーという時期。

主ミッションとは異なる文脈で、CI/CDの改善に取り組んでいた時期でもある。

コレ以外にもDockerfileのリストラだったり、PHP関連でのイメージ作成・コンテナ立ち上げの最適化なども。

あ〜〜あと執筆とかAdvent Calendarとか〜〜〜あった〜〜仕事じゃないけど〜〜

1人Advent最終日 - 大好き!にちようび

「PHPをやっていきましょう」みたいな本を書きました - 大好き!にちようび

2018-4Q

障害対応とかモニタリングとか

幸いにも致命的なダメージは及ぼしていないものの、3Qから全体的にサービストラブルや実装ミスが増えてきたなーという感覚があり。
とりわけ12月末に生じた1件がきっかけとなり、ちょっと組織の意識レベルや対応力を改善したいなーというふうに取り組み始めた。

もともと自分は「サービスがトラブってたら対応する」というのは積極的にやっていたのだけど。インシデント等の発生に対して8割くらいは自分が対応に関わっている気がする。
のだけど、それ自体が「もしかしたら悪だったのかもしれない」「これは、いわゆる老害的な行いに繋がってしまっていないだろうか」と、良く言えば気づきでありパラダイム・シフト、ただ控えめに言ってもショックを受けていたのがこの時期。

そのあたりの話

本ミッションとしては、3Qと引き続き「(一部の)レガシーの廃止」なのだけど、個人的なテーマとして強く感じ始めたという意味ではデカい話。

総括

色々とやっているような、そうでもないような〜という感じ。
なにか「自分の幅」というのは広がったのだろうか・・・?

基本的に、チームや周囲に及ぼせる影響・価値というのは「自分ができること」×「周囲の要求」だと思うので、
そういう意味では「出来ることを適用させながら、自分なりに背負うものや掘るべき部分を定める」という動き方にはなっていたはず。
ただ、ベースにあるのは「自分がこれをやることで、周りの人がきっと楽になる!or取り組めることのレベルが上がる!!」という確信を持てていると、やり甲斐だったり意義を感じるのかなーという感性。ざっくりと振り返ってみて、改めてそう思った。

残念ながら、ここに列挙した事柄の中には「自分はやるべくしてやったつもりだが、浸透しなかった・継続されていかない」という結果に落ちてしまったものも幾つもある。
そういうのはとても悲しいのだけど、人を動かすぞ!!!ってところまで持っていけるかどうか〜の話は、やはりハードルが俄然高かったりする。

器用貧乏!という方向性で力をつけていく = 凄い勢いで幅を広げていくには、「自分の資産を食いつぶしながら」動いているような感が強い。
その一方で、「幅を広げて武器を増やすぞ!!」というには、2018年度はあまりにも(業務以外の)余力を生み出せていなかった。
その結果として「何か得るものはあったのだろうか?」という不安はあるなー。

わがままに、何かを環境に求めていいのなら「自分の知識や経験が生きる、ただし全く同じことの繰り返しではなく、新しい要素があったりレイヤーが違ったりする」みたいなものを掴めたら、日々が刺激的になったりするのだろうか。

残した成果や生み出した価値として、「障害対応ちゃんとやりたい〜」系の話が2019-1Qの部門目標(中期注力ポイント)にまで認められる事になったので、コレは自分がプレゼンスを出せたから〜コレは要因はあるかもな〜といううぬぼれはある。
他方で、(とりわけ後半において)主務についての達成率が今までの自分と比べて最悪だったり、それなのに労働時間が長期化する傾向があったり、客観的に見ても遂行能力に疑問が残るような期間だった。こうなってはどうも自信も無くすし、相応の疲弊感が否めない。

2019年度は何か良いことがあるとよい・・・

力の活かし方という話、自分の好きな部分がCakePHPなので、「そこなら力になれる!」と胸を張って言いやすいな〜というものはあるのだけど。とは言え、未だ、「苦しんで覚えながら、新しいことを覚えて作ってみる!」というのも出来ないことはないと思う。その自分の苦労や努力の先に、しっかりと恩恵を受けて活き活きとしてくれる個人が居てくれさえすれば、きっと報われる。新しい事が出来るようになるのは、自分にとっては善だ。

「周りにいる人は何を大事にしているか」「どこにこだわっているか」みたいなのを感じ取れたら自分としても動きやすい。のだが、今年度もこれまで通りorこれまで以上に「やることがすぐ変わる」側面はあると思うので、どう振る舞ってどうアクセルを踏み込んでいくのが良いのかな〜

*1:2本なのだけど、片方は責務やアクセス量が少ないので気持ち的にはオマケ

*2:ただ、これ別に1人で全部やらなきゃいけないという必然性もないと思う