- エンジニアリングマネージャー①
- メンバー:5人
- 期間2年(新卒2年目-)
- 開発ディレクター
-メンバー:10人
- 期間1年(新卒3年目-)
- エンジニアリングマネージャー②
- メンバー:5人
- 期間1年(新卒5年目-)
- QA責任者
- メンバー社内4人、外部20人
- 期間半年(新卒6年目)
# エンジニアリングマネージャー①、②
## 役割
- エンジニアリングチームのマネジメント
- コード/サービスの品質担保(テックリード)
自身もコードを書きながらのプレイングマネージャーとしての
# 開発ディレクター
## 役割
- 各リリースタイミングごとの開発物の決定(事業責任者とのすり合わせ)
- ガントチャートを利用した進行管理、遅れた場合の調整と意思決定
- リリース作業の統括(クライアント、サーバー、QA)
エンジニアリングマネージャー①と兼任
# QA責任者
## 役割
- エンジニア/QA間での認識合わせ/情報共有フローの構築
- QA計画の立案
- QA計画の実施
# エンジニアリングマネージャー①
## 直面の課題:
①エンジニアリングマネージャーとしての信頼確立
②サービスの品質担保
## 考えと対策:
### ①エンジニアリングマネージャーとしての信頼確立
#### 課題:
自分より全員10歳以上年上のエンジニアのチームでエンジニアリングマネージャーに就任。
経験の浅い若手がリーダーになったと見えていたようで、あまり信頼されている状態ではなかった。
自分がチームとして正しい意思決定を行い、遂行出来る状態を目指した。
#### 対策:
##### ・メンバーと普段から徹底的に話す
マネジメント以前に、人間同士としてある程度信頼関係がある状態が必要と考えた。
ランチにたくさん行く、毎日雑談を話しかける、相手がやっているスマートフォンゲームを自分もやって話しかけに行くなど、地道に話す接点を増やし続けた。
##### ・根拠のある意思決定の提示、間違っていなければ絶対にぶらさない
意思決定をメンバーに伝える場合は、その意思決定がなぜ妥当なのかを必ず説明するようにした。
なりでやってこなかったこと(レガシーな実装の仕方やテストを書かないなど)は、雰囲気に押されそうな曲面でも必ず断り、決めたことをやってもらうようにした。
### ②サービスの品質担保
#### 直面の課題:
・コードの品質が低く、レビューで良くなる環境になっていない
・単体テストがほとんどない(ゆえに肥大化したメソッドが乱立している)
・本番環境で不具合/障害が頻発する
コードの品質担保とサービスの品質改善を目指した。
#### 対策:
##### ・徹底的にコードレビュー
デザインパターンやリーダブルコードで基本とされている内容を徹底的にコードレビューで書いた。
必要あれば席まで行って説明しにいった。
##### ・単体テストの推進
仕組みだけは存在していたので、リファクタ時にメソッドの切り分け、テストを書くことを推進した。
「こういう風にやるのが良い」を伝えるためにも、参考になるようなプルリクを出すようにした。
##### ・インフラ構成/実装設計の見直し
事業責任者やインフラチームを巻き込んで障害に強い設計に変えるための手順立て、工数の確保を行った。
機能開発だけで工数が一杯になていたところから、保守性の向上のための工数を取れるようにした。
# 開発ディレクター
## 直面の課題
開発ディレクターが突然不在になった後の、開発チームの再構築
## 考えと対策
開発ディレクターはビジネス職のメンバーが担っていたが、急遽移動になり不在になった。
残ったメンバーから開発ディレクターを出す必要があり、バックエンドチームのエンジニアリングマネージャーと兼任する形で立つことになった。
兼任である以上以前のようなマイクロマネジメントを開発ディレクターとして担保することは困難。
- 自分が一番コミットするのは最上流の意思決定と全体の進行/品質担保
- 各セクションの業務は各セクションのリーダーにより移譲する
方針で進めることとした。
その分全体の進行と品質担保には強くコミットするようにした。
結果エンジニアが開発ディレクターをやっている利点も作用し、以前よりプロダクト改善開発のリリース物量が2倍以上に増え、機能開発に止まらない開発チームになっていった。
# QA責任者
## 直面した課題
- プランナー/エンジニアとQAが連携できていない
- 情報共有すらままならず、お互いに不信感がある状態
- 開発ワークフローが構築/定着されていない
- QA状況がチームから見て見えてこない
状況を改善するべく、QAの責任者として入ることになった。
## 対策
### 徹底的に情報を集約 / 開示
- 開発物の共有
- QA必要項目/観点のすり合わせ
- その後開発からQAスケジュールの確認
を行うmtgを全開発機能に対してやり直し、QA/他セクションが認識あっている状態を作った。
### QA状況の開示
他セクションから見て欲しい情報を洗い出し、デイリーで開示できるスプレッドシートを構築。
毎朝の共有ができる状態にした
### 開発環境のフロー整理
QAを行うにあたり
- 開発物の開発状況
- クライアントのビルド
- サーバーの環境
- 各種データ/アセット状況
がちぐはぐなまま進行していた。
QAを開始できる状態定義を行い、全て満たしている場合QA着手を行うフローを整理した。