あけましておめでとうございますということで 2022 年をふりかえってみます。

2022 年ふりかえり

2021 年のふりかえり記事は こちら になります。

2022 年の三行まとめとしては以下のようになります。

  • 2022 年はほとんどの時間を一社での稼働のみで過ごしていました。週 4 〜 5 日で稼働していました。前半はマネジメントよりの動きが多め、後半はプレイヤーよりの動きが多めになりました。
  • 2021 年から引き続き、レガシーが極まったシステムと正面から対峙し、ついに本丸に手が入り始めました。
  • 前年比でフロントエンドのスキルセットを強めに獲得しました。

稼働状況概要について

2022 年のほとんどの時期を B 社のみに絞って稼働していました。

年前半は週5日稼働で、年後半は週4日くらいになるように調整するよう B 社からおねがいされていたため稼働を少なめにしていました。 事業状況的にすこしでも開発メンバーのコストを下げたいというところが理由でした。

たまにエンジニア向けの媒体等で案件探しをしたりなどもしましたが、市況感的に条件がマッチする案件があまりなかったかなぁというところを鑑みて 積極的に案件を取りに行く動きはしていませんでした。 一方、10 月に面談を進めてみた M 社さまとご縁がありまして 11 〜 12 月で稼働しましたが、こちらも事業状況の転換により 2 ヶ月の短期間で案件終了となりました。

マネジメント業務について

7月くらいまではマネジメント業務が多めで推移していました。マネジメント業務の内容としては以下のような案件を対応していました。

  • ソフトウェア検証の外部委託
    • QA 組織の立ち上げを行いました。
    • 委託先の選定、契約、オンボーディング、開発プロセスへの組み込みと運用、改善もろもろを実施しました。
    • 先方都合により11月いっぱいで終了になってしまいました。事業状況的にボリューム感を出していく未来を先方に感じていただけなかったのでしょうがないかな〜というところだったかと思っています。
    • QA 組織は再度持ちたいというところで経営側とも握っているので、2023年のどこかでまた着手することになる予定です。
  • 成果物の品質向上に向けた動き
    • 開発チームが生産する成果物(コード、ドキュメントなど)のクオリティの基準を底上げするための様々な活動を行いました。
    • 各種ガイドラインの策定とプロセスへの組み込みおよび運用が2022年末時点で板についている状況になっており十分な成果が得られたなというところになっています。
  • エンジニア育成
    • 1年通して実施しました。詳細は各月のふりかえりを御覧ください(本文書の末尾にリンクをおいておきました)。
    • 大量の技術文書・書籍をインプットした一年になりました。そして、人はちゃんと成長すると実感しています。明らかにコードや設計の質が向上しているので本当におすすめです。
    • 逆の観点からみると、シンプルに知識量が不足しているエンジニアが多いということでもあるので、知識量を増やすのはとても大事なことだと再認識しました。
  • 採用活動
    • 年始付近で採用ストップして以降、採用は停止したままで 2022 年を終えました。
    • 2023 年も事業計画上は同様の状況が続いていく予定です。
  • 契約関連
    • 顧問弁護士の方といくつかの契約について喧々諤々とやりとりした時期がありました。
    • 学びが多いなというのはありつつ、本職ではない知識をインプットしたり普段接しない形式のコミュニケーションを大量にしたりするのはなかなか骨が折れました。
  • 中長期計画策定
    • 恒例の中長期計画の策定を 2 回ほど実施しました。
    • 事業成長が踊り場なこともあり、組織の変化が出せないので、技術面を中心にまとめる形式にしました。
  • TechLead 業務
    • ほぼすべての Pull Request の詳細なレビューを実施しました。
    • 2022 年から、すべての DesignDoc のレビューを僕が実施して設計レベルでのクオリティを担保するようゲートを設けるようにしました。実施してみた結果、半数以上の DesignDoc で要件の手入れが入ったため、手戻り削減効果はかなりあったのではないかと思っています。また、無理なデータ構造やアルゴリズムを作る前に修正できたのも 2022 年のコードの品質の安定に寄与したかなと思っています。

プレイヤー業務について

8月以降は比較的プレイヤー業務が多めで推移していました。プレイヤー業務の内容としては以下のような案件を対応していました。

  • CRM 運用
    • b-dash との連携部分の調整を継続的に行っていました。
  • 既存 Rails 環境のフロントエンド関連
    • IE11 終了関連の対応を行いました。
    • Coffee Script の撤去作業を一部行いました。
    • React 環境の Webpack バンドルフローを sprockets から切り離す作業を一部行いました。
    • Sentry JS を導入・調整しました。
    • React 環境に Prettier を導入しました。
    • Imgix 関連の各種調整を入れました。
    • 他メンバーの対応で、E2E 環境が刷新されました。Playwright + TS で実装され、従来比3〜5倍程度高速化して大変生産性が向上しました。
  • 検索基盤
    • ランキングデータを生成する仕組みを b-dash から生成するようにアーキテクチャを変更しました。
      • b-dash > s3 > lambda > MySQL というフローにして運用に乗っています。
    • 検索 UI のフロントエンド実装および API 実装を行い、11 月より稼働中です。
      • こちらの開発を通じて、マイクロフロントエンドなアーキテクチャへの移行がはじまりました。
      • API サーバーは既存の Rails からサーブするのではなく、マイクロサービスとして新たに API Gateway でサーブしています。
      • ファーストリリース以降の改善スピードがめちゃくちゃ高速・高クオリティを維持できているので、今の所とてもよい具合に仕上がっているのではないかと考えています。
  • Audit Logging 基盤
    • paper_trail だと厳しくなってきたので BigQuery ベースのアーキテクチャへ移行するプロジェクトを立ち上げました。
    • 要件を決めて副業な他メンバーが実装中です。
  • Feature Flag 基盤
    • 検索基盤関連の開発が長期になる予定だったことから、トランクベース開発の必要性が高まったため、Feature Flag を使えるよう、基盤として整えました。AWS AppConfig ベースの基盤が稼働中です。
  • バッチ基盤
    • 既存 Rails 環境にある、whenever ベースのバッチ群を ECS ベースの環境へ移行するプロジェクトがついに本番稼働開始しました。
    • 各バッチ毎に移行していくので本格的な移行作業は 2023 年で継続的に実施していく想定です。
  • 2023 年モノ日向け対応
    • 検討を完了し一部実装を始めています。
    • 2022 年のモノ日ふりかえり時点で出ていた課題である、Aurora Writer の負荷低減とシステム全体のスループットおよびレイテンシーの改善に向けて、エンドユーザーからのアクセス頻度が多くかつ負荷が高い UI について、検索基盤で構築したフロントエンドとAPIサーバーへ載せ替えることで高速化できる見込みを立てて移行作業を始めています。
  • Developer Productivity Engineering およびセキュリティ関連
    • Log4j 関連の対応を行いました
    • 継続的に WAF の調整を行っています。不必要な Bot からのアクセスを弾くように調整しつづけていました。
    • Renovate を導入しました。
    • Rails のキャッシュのキャッシュキーを見直して全体的に RPS を 30% 程度向上させることに成功しました。
    • モノ日向けのインフラ作業(スケールアップ・アウトおよびダウン・イン)を行いました。こちらは 2022 年で大きく改善が進み、2023 年からはほぼ手作業しなくてよくなっています。
    • CircleCI の完全撤去が完了しました。
    • Datadog の様々な調整を継続的に行いました。RUM を使用するようになり、社内業務の可視化が進みました。Reference Tables と Lookup Processor によるログの可視化も進みました。
    • 既存インフラの一部、および、新規構築したインフラ要素群については IaC 化が進みました。 CDK + TS にて実装しています。

M 社について

M 社さまとご縁がありまして 11 〜 12 月で稼働しました。 bubble という No Code 系ツールでシステムを構築しており、開発自体や業務をサービスとして実現していくのが難しくなってきたため AWS へ移行していきたいというプロジェクトに参画するというお話でした。

参画後様々みていくと、たしかに bubble は課題感が大きすぎるくらい大きいが、それ以前にプロダクトのイメージが不安定になっておりそれを解決するための話を経営層でしている状況だったため、まだ AWS への移行をする・しないという状況ではないのでは? = しばらくbubbleベースで開発を継続しつついわゆる PMF を目指していくフェーズじゃないでしょうか?と提案させていただき、その着地になったため僕は撤退することになりました。 (調達している資金的にもシステム移行をやっている状況ではないなというところでした)

M 社に関わらせていただいてみて、ふりかえりとしては以下となります。

  • 起業時の最初の一歩目のエンジニアリングは大事ですよね、というところを改めて痛感しました。
  • 情報流通の透明性が非常に低かったのですが、低い状況でのエンジニアリングマネジメントの難易度が異常に高いということを学びました。
    • この点は面談時点で気づく難易度が高いとおもっており、解決するにはお試し参画しかなさそうかなというのが難しいなと感じています。

各月の様子

もうすこし解像度の高い、毎月のふりかえりは各記事を参照していただく形にしたいとおもいます。 お時間ありましたらこちらもどうぞ。

おわりに

2022 年は前半・後半で自身の時間の使い方がかなり異なる結果になりました。

関わらせていただいているチームの生産性維持・向上は継続的に実現できているかなというところ、 フロントエンドまわりの要素技術の習得とシステムへの落とし込みが成功といえるかなというところ、 レガシーなシステムを刷新していく点については大きめの進捗が見えたところ、 あたりを中心として大変よい 1 年になったかなと感じています。

特にレガシー刷新の進捗が大きく出たのが自身のモチベーションによい影響が出ているなと感じており、 2023 年はより進捗を出すべくがんばっていきたいなと気持ちを高めている次第です。

おわり