はじめに
私は普段プログラマーとして案件に携わっていますが、先日初めてテックリードを担当しました。
その際に具体的に何をすればよいのかわからず困ったので、未経験なりに試行錯誤した内容を反省も兼ねて記事にしました。
不足点は多々あると思いますが、今後テックリードを経験される方の参考になればと思います。
テックリードとは
プロジェクトの技術面を管理し、エンジニアチームをまとめる存在です。
具体的に何をしたか
前提条件
実施内容
技術選定
- 要件を基に、使用する言語やフレームワーク(FW)等を選定します。
- 同期/非同期やバッチ処理の有無など考慮点が多い上に、ここでの決定は後続のタスクへの影響度が高いため、慎重に選ぶ必要があります。
- 選定結果によってはメンバーアサインにも影響を与えるため、人的リソースの確認も重要です。
開発環境作成
- 開発フェーズが始まり次第すぐ実装ができるように開発環境を作成します。
- 必要コマンドをREADMEファイルにまとめ、どの開発環境でも環境構築ができるようにするのが大事です。
- メンバーが環境構築でつまずいた場合は、他のメンバーが同じつまずきをしないように更新していく必要があります。
wiki作成
- 案件に関するルールを定義します。
- 使用するツールの運用ルールから変数名の命名規則などの実装ルールまで、多岐にわたります。漏れがないように、網羅性を意識して作成します。
- wikiは一つにまとめる必要もないですし、全員がすべてを把握する必要もありません。wikiを役割ごとに分け、各担当者はそれぞれ担当のwikiを読むようにすると、キャッチアップにかかる時間を削減できます。
スケジュール管理
- 開発スケジュールの決定と管理、開発メンバーへのタスク振りを決定します。
- リスクの低い機能や優先度が高いものから順に着手させると効率よく進みます。
- 一部のメンバーがタスクを持ちすぎないように、バランスよく割り振ることを意識します。
成果物の品質維持
- コードレビューは、主に「要件通りの機能になっているか」、「コードの可読性・保守性が高いか」の2つの観点から行います。
- コードの可読性・保守性について不安な場合は、使用している言語/フレームワーク(FW)のコーディングガイドを基準にするとよいです。
※PHPの場合、PSR-2 コーディングガイド(日本語)など
まとめ
ここまで読んでいただきありがとうございます。
私がテックリードを経験してみた率直な感想は、「考えることが多すぎる!」でした。
また、具体的な作業以前に「コミュニケーション能力」と「深い技術的知識」が必要だと実感しました。
この2つはテックリードの主な役割である「人をまとめること」と「技術部分の決定を行うこと」においてどちらも欠かせないため、テックリードを担う上で必須になると思います。
本記事の内容は、テックリードの作業内容の一例です。 案件の状況によっても変動するので鵜呑みにはしないようお願いします。
この記事が「テックリードを担当することになったけれど、何をすればいいのかわからない」という人の参考になれば幸いです。