ソフト開発チームを立ち上げた際に、一般的に何をするべきかをまとめる。
フェーズ1: 目的の明確化と基盤ツールの設定
- チーム内でミッションとビジョンを共有し、最初の方向性を確定させる
- 全員が自分の言葉でチームの長期的目標を説明できるようにする
- 最初の1~2週間で達成するべき具体的成果物を定義し、全員で合意する
- ナレッジベース・使用ツールの確立
- ナレッジベースを決めて、構造化する
- どのツールを使うか?(git? obsidian?)
- 中の構造はチームに応じて変える
- 構造の案は、AIに聞くといい感じのアイデアをくれる
- コミュニケーションツール、およびコミュニケーションルールを決める
- どのツールを使うのか、どのチャンネルを使うのか
- コードリポジトリを用意する
- ブランチルールなどの基本ルールを決める
- ナレッジベースを決めて、構造化する
フェーズ2: チームのルールとプロセスの定義
- ワークフローを決定する
- 品質とコーディングルールを決める
- コーディング規約を決める
- レビュープロセスを決める
- コードレビューは必須か?
- レビュアーは誰がやる?
- マージの承認基準は?
- テスト戦略を決める
- 意思決定プロセスを明確にする
- 誰がどの範囲の決定権を持つかを明確にする
- 設定するべき役職は開発手法による (困ったらAIに聞く)
- スクラムの場合はスクラムチームの構成を3章
- 意見対立時の解決方法は?
- 誰がどの範囲の決定権を持つかを明確にする
フェーズ3: 継続的な改善文化を醸成する
- レトロスペクティブを実施する
- 定期的に何が上手くいったか、何が改善できるかを話し合う場を設ける
- ルールやプロセスをチームの状況に合わせて柔軟に調整する
- ドキュメント作成を習慣化する
- 重要な技術的決定は必ずADRを作成する
- 古いドキュメントを定期的にレビューして鮮度を維持する
- ドキュメント更新の責任者も明確にしておく必要あり