ソフト開発チームを立ち上げた際に、一般的に何をするべきかをまとめる。

フェーズ1: 目的の明確化と基盤ツールの設定

  • チーム内でミッションとビジョンを共有し、最初の方向性を確定させる
    • 全員が自分の言葉でチームの長期的目標を説明できるようにする
    • 最初の1~2週間で達成するべき具体的成果物を定義し、全員で合意する
  • ナレッジベース・使用ツールの確立
    • ナレッジベースを決めて、構造化する
      • どのツールを使うか?(git? obsidian?)
      • 中の構造はチームに応じて変える
      • 構造の案は、AIに聞くといい感じのアイデアをくれる
    • コミュニケーションツール、およびコミュニケーションルールを決める
      • どのツールを使うのか、どのチャンネルを使うのか
    • コードリポジトリを用意する
      • ブランチルールなどの基本ルールを決める

フェーズ2: チームのルールとプロセスの定義

  • ワークフローを決定する
    • 開発手法は何か?(Scrum?Kanban?そのほか?)
    • どのような会議体を設けるか?
      • 設定するべき会議体は開発手法に依る(AIに聞いてみると良い)
      • スクラムの場合はスクラムのイベントを参照
    • タスク管理ツールを選定する
      • タスクのライフサイクルを定義する
      • 場合によって最適解は異なるので、AIに相談してみる
  • 品質とコーディングルールを決める
    • コーディング規約を決める
    • レビュープロセスを決める
      • コードレビューは必須か?
      • レビュアーは誰がやる?
      • マージの承認基準は?
    • テスト戦略を決める
  • 意思決定プロセスを明確にする
    • 誰がどの範囲の決定権を持つかを明確にする
    • 意見対立時の解決方法は?

フェーズ3: 継続的な改善文化を醸成する

  • レトロスペクティブを実施する
    • 定期的に何が上手くいったか、何が改善できるかを話し合う場を設ける
    • ルールやプロセスをチームの状況に合わせて柔軟に調整する
  • ドキュメント作成を習慣化する
    • 重要な技術的決定は必ずADRを作成する
    • 古いドキュメントを定期的にレビューして鮮度を維持する
      • ドキュメント更新の責任者も明確にしておく必要あり