2020年も終わるので,ふりかえりエントリです.本エントリでは7〜12月の半年間を中心に.2020年の1〜6月までは以下のエントリを参照してください.
またデスク周りの買ったものは別エントリに追記・更新してまとめているので,割愛します.
2020年7月
担当する某結婚相談所のユーザ認証基盤構築のプロジェクトのリリースを6月中旬に終え,リリース直後のID移行のドタバタも多少落ち着いてきました.残課題を整理しつつ改善のご要望もいただいていたので,お客様と優先度を確認しながら毎週のようにいくつもこなしつつアップデート・リリースをしました.並行してシングルサインオン(SSO)の要件定義も進めました.更にモバイルアプリ向けのAPI基盤のリリースに向けたレビュー・サポートなどもあり,実質3つのプロジェクトを見ていたのかもしれません.今思い返すと目が回るような1ヶ月でした.
残課題対応・改善に関しては以前からのパートナー2名と新卒のメンバーとで,実装・単体テスト・受入テストのシナリオ作成・実施時のフォローまでを割とスムーズにこなせました.特に新卒メンバーのオンボーディングに関してはパートナー2名がきっちりフォローしてくださったので,私は成果物レビューとお客様対応に注力できました.
SSOの要件定義の後の試作検証の段階でいくつか新たな課題がポロポロ出てきたため,当初の計画をスリップすることになりました.担当メンバーにある程度任せていたのですが,もっと細かく確認できていればスケジュールのスリップやスコープ変更など回避できたのかもしれません.
モバイルアプリ向けのAPI基盤に関しては,短期間ですが非常に難儀しました.リリース直前でソースコードやリリース手順書のレビューをしたところ,課題が散在していました.ソースコードもCloudFormationテンプレートもリリース直前まで書き直して,運用チームに渡せるレベルにはリファクタリングできたとは思います.
総じてもう少し前に着手・確認できていればと反省点の多い1ヶ月でした.
2020年8月
8月からは担当メンバーと私の2人でSSOの実装・単体テストを進めました.当初の予定では3週目にはリリースする計画でしたが,実現可能性確認の試作の段階での遅れが響き,早い段階で9月上旬リリースになりました.8月末までにはリリースできる状態のモノが出来上がりました.ただ時間的猶予ができるとスコープを広げようとする力には悩まされました.ご契約いただいている人月(コスト)でリリース後の運用にも耐えうる品質をと何度も説明はしましたが,最後までご納得いただけなかった印象です.もともと準委任契約なので瑕疵担保は負えませんに対しては,最後は善管注意義務に反しているのではとまでなったので,あとは上司にお願いしました.残念ながら結局最後まで信頼関係は構築できませんでした.諦めがついた時点で精神的にも余裕ができました.
2020年9月
9月上旬はSSOのリリースに向けた作業を中心に進めました.個人的には諦めもついたので,粛々と進め無事にリリースもできました.その後は担当案件が変わり,プロジェクトやチームの管理業務の役割も解かれて,設計・開発を中心に進めることになりました.Pythonで書いたコードをAWS Lambdaでバッチ的に動かして,以下の処理をするのががゴール.
ただ既に構築されているシステム構成があったので全体のキャッチアップを中心に進めました.また既存システムにはLambda + RDSなどアンチパターンもあったので,技術的負債の返済を検討しました.
今年もISUCONの予選に参加しましたが,惨敗しましたので反省エントリを書きました.今年のISUCON10予選はあとで見直してみると本当によく練られていて,簡単にはスコアを出せないようになっている良い課題設定だったと思います.自分に足りない部分が分かるので,引き続き精進してゆきます.
プロモーション活動のお手伝いとしてタレントブックに掲載されました.7月中旬に1時間ほどインタビューを受け,8月に校正して,9月初めに公開されました.インタビュアーにはこのように見えるのかと,自分自身を客観的に見れる良い機会でした.
記事にしていただきました.短パンなのはあしからずw → 新しい技術を学び続け、現場や後輩へ伝えていく。進化を止めないベテランエンジニア https://t.co/gzjs98L2kC @talentbook_jpより
— Toshiya SAITOH (@stoshiya) 2020年9月4日
2020年10月
9月に引き続きの某プロジェクトで,AWSインフラ・Pythonと戯れる楽しい1ヶ月でした.既存インフラの課題としてはパブリックサブネットしかない,なかなか漢らしい構成でしたので,アタックサーフェースを減らす構成などを試しました.プライベートサブネットだけの構成にしたらAWS System Manager経由でEC2に仕込んだSSMエージェントに接続できなくて,当初悩みました.VPC Endpointなどを適切に設定すれば良かったとあとで気付きました.またLambda + RDSのアンチパターンについては,RDS Proxyを追加導入することとしました.加えてRDSのパスワード情報はSecretsManagerに格納するようにしました.当初はAWSコンソールで設定できているように見えましたが,RDS Proxy経由でRDSへ疎通しなかったためにCloudFormationのスタック作成に何度も失敗して数日溶けました.結局はCloudFormationテンプレートの記述する粒度が,リソースによって違っていて,AWSの公式ドキュメントとAWS CLIの結果を何度も見返してうまくいくパターンを見つけました.
またこれまでは雰囲気でPythonを読み書きしていましたが,何冊かPythonの本を買って読みながら,某APIサーバのモックや単体テストコードを書いてと楽しく仕事をしていました.また書いたコードはAWS Lambdaとして動かすので,Serverless Frameworkを使ってコマンド一発でデプロイできるようにしました.いずれもリファレンスを見ながらコードを書くと言う点では,比較的単純な部類の作業に終始していました.
ただ某APIサーバのモックの仕様がなかなか決まらないので,こちらから提案するつもりでモックを書いていたのですが,10月末くらいに確認したら既に仕様があるとのこと…
何を血迷ったのかAmazon Prime Dayで2台目のHHKB Professional HYBRID Type-Sを購入し,沼を1つ脱出できたので反省文のエントリにまとめました.ホームポジションを肩幅よりも広くすることで,慢性的に酷かった肩凝りが軽減しているのでデュアルキーボードはオススメできます.
Salesforce認定Heroku Architectureデザイナーの試験を2度受けてなんとか合格しました.社内先駆者が蓄積したノウハウはあるし,社内の資格取得キャンペーン期間中であったこともあり,軽い気持ちで受けたのですが,1度目(10/26)は難しい方のパターンで微妙に足りませんでした.試験料44,000JPYを取り戻すべく気を引き締めて勉強しなおして,10/31の22時からの2度目の試験で無事にパスしました.2度目は比較的簡単な方のパターンだったのもありますが,みっちりと勉強したので見直すこともなくすぐに試験を終了して合格しました.深夜でしたが2回分の試験料が戻ってくることの安堵から,1人つつましくも祝杯を上げました.
Heroku Architecture Designerの勉強をやったけど落ちました.悔しいので再挑戦します.
— Toshiya SAITOH (@stoshiya) 2020年10月27日
再挑戦してなんとかパスした.受験料も戻ってくるのでホッとした.
— Toshiya SAITOH (@stoshiya) 2020年10月31日
2020年11月
業務は引き続きですが,某APIサーバの仕様が公開されたので,これに合わせて書き直すことになりました.Pythonの標準ライブラリは非常に強力で,バイナリデータもstruct.unpack()と書くと一撃でパースしてくれるので,人気があるのも頷けるななどと感心しながらコードを書いていました.またServerless Framworkも周辺パッケージが整備されています.これらを如何に効率よく見つけてコードにするかで生産性が左右されますね.
DJI Osmo Pocketを持っていましたが,色々と辛い部分が改善したのでついついDJI Pocket 2を購入してしまいました.
My New Gear!
— Toshiya SAITOH (@stoshiya) 2020年11月5日
届いたのでとりあえず開封してアクティベートだけしておいた. pic.twitter.com/P6r87utige
今年の8月末くらいから外壁塗装工事と一緒に太陽光発電パネル・蓄電池・エネファームを設置し,発電所としての認可も受けたので,自家発電が始まりました.
自宅の太陽光発電と蓄電池の稼働が始まった. pic.twitter.com/kA1WJLra5G
— Toshiya SAITOH (@stoshiya) 2020年11月6日
エネファームはとっくに稼働しているのだが,ナビフィッツとやっと連携した. pic.twitter.com/XQRZHSBiHa
— Toshiya SAITOH (@stoshiya) 2020年11月21日
2020年12月
9月中旬より担当しているプロジェクトで一旦の区切りを迎えるべく,結合テスト・ステージングや本番環境へのデプロイを経て,12/23に無事にリリースできました.ホッとする反面,個人的にはそれほど技術的に難易度も高いわけではないし,返済できないほどの大きな技術的負債があるわけでもなかったので,まぁ予定通りかなと思う部分もありました.
下記の一連のツイートの通りに,所属部門の部会の最中にやらかしてしまったので,覚悟を決めて退職の意思を伝えました.2021年2月末頃に経緯やしくじりも踏まえて反省文エントリーを書きます.
たまたま私物MacBook Proを立ち上げていて,たまたまミュートせず,たまたま読み上げ機能を有効にしていたばっかりに,社内Zoomの最中に「〇時〇分から〇〇社最終面接」との放送事故を起こしてしまったので,出社して上司に退職する旨の報告までを秒で終えました.笑ってやってください.
前日にオファーレター発行され,気が緩んでいたことは否めない…
— Toshiya SAITOH (@stoshiya) 2020年12月2日
昨日退職の旨を上長に伝え,本日執行役員と面談しました.社交辞令なのかもしれませんが引き留めてくださったり,いずれ戻ってきてまた一緒に仕事しようと温かいお言葉をもらえて,本当にありがたいと思いました.
— Toshiya SAITOH (@stoshiya) 2020年12月3日
本日夕方に人事部長と退職手続きについての打ち合わせをしました.「いつでも戻ってきてください」との暖かいお言葉をいただきました.本当にありがたい.
— Toshiya SAITOH (@stoshiya) 2021年1月8日
そして注意点としては住民税が一括徴収される点.
B&Hのブラックフライデー・サイバーマンデーのセールでLeofotoの自由雲台と三脚のセットが日本国内の最安値と比べても安かったので買いました.これで三脚は5本目ですかね.これで三脚沼は脱出します.あとは早く登山できるようになるといいのですが…
登山の時に使えそうな三脚と自由雲台のセットをB&Hでポチッとした.ブラックフライデーのセールで日本国内で買うより結構安く買えた. pic.twitter.com/H6SAfhASJY
— Toshiya SAITOH (@stoshiya) 2020年11月29日
My New Gear!!
— Toshiya SAITOH (@stoshiya) 2020年12月9日
B&Hのブラックフライデーで注文していたのが届いた.持った感じはかなり軽い.剛性はまぁまぁ.縮めると十分にコンパクト.脚を全部伸ばせばアイレベル付近まで.フリクション付きの自由雲台も良き.正直なところ中華三脚侮っていたが,これは登山で使えそう. pic.twitter.com/d7phwKSZzE
2020年の1年間をふりかえって
2020年は新型コロナウィルス感染拡大の影響で3月からほぼフルリモートとなり,私個人としては働き方に対しての考えが大きく変わりました.
リモートワークに関しては,裁量労働と組み合わせることでペースやメリハリを自分自身でコントロールできるため,普段から効率を考えている自分には合っているなと思います.週に5往復分の通勤時間を,他のものに割り振れるわけですから.
また労働に対しての考え方(特に成果の出し方)に関しては,自分自身というよりはリモートワーク環境下での開発チームの管理をしていて,改めて考える機会がありました.突然フルリモートになっても,毎日出社していた時と変わらずにチームのパフォーマンスが出ていたと思います.メンバーが柔軟に対応してくれていたことに助けられましたが,フルリモートになる前に開発成果物のイメージを合意形成できていたため,毎日30分程度のリモート朝会でも手戻りなど発生せずにデリバリまで持っていけました.
また秋頃より色々とお声がけいただき,だいたい10社ほどの方々と会話をして,2021年3月1日よりRuby on Railsやgolangでクラウド会計ソフトを提供しているfreee社に入ることにしました.現職(株式会社フレクト)では個人的に納得の行くデリバリをできなかったのは心残りではありますが,開発チーム運営やアーキテクト・テクニカルリードといった業務経験をできました.そして,これらは多くの企業で一定の評価をいただけたので,感謝しかありません.個人的にはRubyはChefレシピを書く程度で,Railsに関してはほぼ未経験ですが,新たにチャレンジできる機会を存分に楽しもうと思います.