忙しい時には学びが多いものです。しかし、忙しい時にはなかなか振り返る時間が持てないものです。一山超えて一息ついているこのタイミングにしっかりと振り返りをしてみます。
6月はとても学びの多い月となりました。タスクとしては、大きく1つ、DMPのリリースを担当することでした。これは内部的プロダクトではありますが、既存のDMPに手を入れつつ、ユーザ分析基盤を新しく設計し、実装し、カットオーバーする機会を得ました。
僕は惰性なエンジニアですから、普段の仕事というのは極力面倒なことを少なくする方向に常に意識が向いています。ですが、時間に余裕がなくなるとどんどん仕事の質が落ちていって、ひどく将来性のないコードをたくさん書いてしまいました。余裕がなくなると、勉強の時間も削られていって、コードの質が上がらない時間を過ごしてしまうことになりました。これは負のスパイラルで、「こういうパラダイムがあるとわかっているのに、そこに触る時間もなく目の前のものをなんとかするしか無い」という判断を積み重ねていくと、その先にはあまり良くないコードや設計が残ってしまいそうになります。本当にプロダクト開発というのはなまものなのだなと思うのです。
4-6月で進めていたプロジェクトでした。4,5月のマイルストーンを着々とこなし、余裕のあるペースで進めることができていました。しかし、6月の中盤以降は毎日ひどく遅くまで残らざるを得ない状況となってしまいました。最も酷かった日は午前9時半に出社して、一歩もオフィスから出ずに、誰とも会話をほとんど交わすこともなく、午前2時までコードを書いていました。出演する予定だった演奏会もキャンセルして、ひたすら設計してはコードを書いていました。こうなってしまった理由はシンプルで、4,5月に「作るべきもの」として認識していたものと、6月中盤に「作るべきもの」であったものが、量・質ともに乖離があったからです。これはもう、社内の当事者間でのコミュニケーション不足としか言えませんでした。僕として出すべき情報を先方にも出せていなかったですし、先方の希望をしっかりと聞くこともできませんでした。「ひとまずこれくらいのものを作っておけばよいのだろう」と考えていた甘えが僕に有りました。しかし、実際はそうではなかったのです。
6月中盤以降、実際に先方の要求を把握し、さあ全くもって要件を満たせていないということを知ってからは戦争のような毎日でした。集中をなんとか持続し続けて、長い長い2週間を、多少無理しながら終えました。機能を追加・拡充し、インフラを整備し、ミドルウェアを調整し、デプロイし続けました。これ自体やっていることはいつもと変わらないことですが、驚くほど短期間でやらなければならなくなってしまいました。
そういうプロジェクト佳境では、多くの同僚に助けてもらいました。インフラのメンバーには無理を言ってかなり優先して、スピーディーに環境を作ってもらいました。また、同じくリリースを控えていて、僕よりミッションクリティカルなシステムのローンチを控えているチームのメンバーに負荷テストや設計を手伝ってもらいました。運用ポリシーで悩んだ時には社内の専門チームにすぐに相談して、設計方針をブラッシュアップすることが出来ました。もういろんな人にお世話になり、迷惑をかけてしまった2週間となりました。入社以来最も過酷で、最も色々な人に迷惑をかけ、そして感謝をする2週間となりました。僕がもっとこういう設計をできていたなら、もっとプロダクトを取り巻く環境について知っていたなら、もっと事前にいろんなメンバーを巻き込んで早め早めに進めることができていたなら…。そう思わずにいられませんでした。
最終的には機能要件を満たし、なんとかリリースすることが出来ました。まだまだ求められているものには程遠く、やっとスタートできたというところではあります。何より、DMPというプロダクトの性質上、徐々に効率を高め、成果を上げて行かなければならないのです。やっと正常にサイクルを回せる環境が整っただけなのです。こうして少し落ち着きを取り戻しつつある今、自分が2,3週間前にできていれば超えられていたであろうところを学ぶ時間を得ることが出来ました。
そんな6月でした。
4-6月で進めていたプロジェクトでした。4,5月のマイルストーンを着々とこなし、余裕のあるペースで進めることができていました。しかし、6月の中盤以降は毎日ひどく遅くまで残らざるを得ない状況となってしまいました。最も酷かった日は午前9時半に出社して、一歩もオフィスから出ずに、誰とも会話をほとんど交わすこともなく、午前2時までコードを書いていました。出演する予定だった演奏会もキャンセルして、ひたすら設計してはコードを書いていました。こうなってしまった理由はシンプルで、4,5月に「作るべきもの」として認識していたものと、6月中盤に「作るべきもの」であったものが、量・質ともに乖離があったからです。これはもう、社内の当事者間でのコミュニケーション不足としか言えませんでした。僕として出すべき情報を先方にも出せていなかったですし、先方の希望をしっかりと聞くこともできませんでした。「ひとまずこれくらいのものを作っておけばよいのだろう」と考えていた甘えが僕に有りました。しかし、実際はそうではなかったのです。
6月中盤以降、実際に先方の要求を把握し、さあ全くもって要件を満たせていないということを知ってからは戦争のような毎日でした。集中をなんとか持続し続けて、長い長い2週間を、多少無理しながら終えました。機能を追加・拡充し、インフラを整備し、ミドルウェアを調整し、デプロイし続けました。これ自体やっていることはいつもと変わらないことですが、驚くほど短期間でやらなければならなくなってしまいました。
そういうプロジェクト佳境では、多くの同僚に助けてもらいました。インフラのメンバーには無理を言ってかなり優先して、スピーディーに環境を作ってもらいました。また、同じくリリースを控えていて、僕よりミッションクリティカルなシステムのローンチを控えているチームのメンバーに負荷テストや設計を手伝ってもらいました。運用ポリシーで悩んだ時には社内の専門チームにすぐに相談して、設計方針をブラッシュアップすることが出来ました。もういろんな人にお世話になり、迷惑をかけてしまった2週間となりました。入社以来最も過酷で、最も色々な人に迷惑をかけ、そして感謝をする2週間となりました。僕がもっとこういう設計をできていたなら、もっとプロダクトを取り巻く環境について知っていたなら、もっと事前にいろんなメンバーを巻き込んで早め早めに進めることができていたなら…。そう思わずにいられませんでした。
最終的には機能要件を満たし、なんとかリリースすることが出来ました。まだまだ求められているものには程遠く、やっとスタートできたというところではあります。何より、DMPというプロダクトの性質上、徐々に効率を高め、成果を上げて行かなければならないのです。やっと正常にサイクルを回せる環境が整っただけなのです。こうして少し落ち着きを取り戻しつつある今、自分が2,3週間前にできていれば超えられていたであろうところを学ぶ時間を得ることが出来ました。
そんな6月でした。