現職でテックリードとして、フロントエンド3名・バックエンド2名の自チームをマネージメントしていました。加えてリソースが不足していた時期には、インドチームからフロントエンドエンジニア2名の支援を受け、計7名体制で進めていました。国内メンバーとは日本語、インドメンバーとは英語でコミュニケーションを取っています。
安定したアウトプットを維持し、不具合の少ないリリースを速いサイクルで回すことが責務でした。PdM やエンジニアリングマネージャーと要件を擦り合わせ、設計ドキュメントに落とした上で、自分を含むメンバーにタスクを分配しています。各タスクは数日で完了できる粒度に分割し、早い段階でリリースできる状態を保つことを重視していました。
最大の課題は、メンバー間でタスクの意図とドメイン知識の理解を揃えることでした。特に日本語と英語という言語の違いに加え、時差もあるため、認識のズレをその場の会話で埋めることができません。同期的なコミュニケーションに頼らずに理解が揃う状態をどう作るかが本質的な論点だと考えました。
そこで、以下の点に取り組みました。
・日次のドキュメントを整備し、誰でも非同期に進捗と背景を追える状態にした
・タスクの説明に「何をするか」だけでなく「なぜ必要か」を必ず含めるようにした
・文章だけで伝わりにくい部分は図やスクリーンショットで補い、言語に依存しない形で伝えた
・ドメイン知識をドキュメントとして蓄積し、都度の口頭説明を不要にした
結果として、タスク1件あたりの完了までの期間は約1週間から2日程度に短縮され、スプリント内でのタスク完了率も50%から80%に改善しました。
前職の暗号資産取引所で、エンジニアリング組織の責任者としてフロントエンド4名・バックエンド3名の計7名をマネージメントしていました。日々の開発の指揮に加えて、採用、評価制度の設計と運用、技術方針の決定を担当し、親会社との契約や調整も担っています。
ゼロからプロダクトを立ち上げ、限られたリソースと期間の中でローンチまで到達させることが責務でした。同時に、一時的に速度を出すだけでなく、メンバーが定着し継続的に開発を続けられる組織にする必要がありました。
立ち上げ期は目の前の実装を優先しがちですが、手戻りとメンバーの離脱こそが最もコストの高い損失だと考えていました。実際、実装に着手してから仕様の認識齟齬が発覚して作り直しになるケースが目立っており、これは個人の能力ではなく進め方の問題でした。
そこで、実装前に仕様を固めるフローを整備し、Jira チケットの書き方と粒度についてチーム共通のルールを設けました。あわせて技術選定も見直しています。初期のサービスは最初のエンジニアが得意としていた Nim で書かれていましたが、採用市場に経験者がほとんどおらず、オンボーディングの負荷が組織の成長を制約していたため、以降の新規サービスは Go と TypeScript に切り替える判断をしました。言語としての良さよりも、チームとして継続できるかを優先した形です。
組織面では、評価制度を設計し四半期ごとのレビューを運用しました。スタートアップでは評価が後回しになりがちですが、何を期待されているかが不透明な状態は定着率に直結すると考えたためです。
結果として、3ヶ月で初期プロダクト、1年でアルファ版をローンチし、開発速度は30%向上しました。メンバーの定着も改善しています。