TDDBCオンライン開催のためにやるべきことリスト


# 前提
- [はじめの一歩からわかる「TDD Boot Camp」の開き方 ](https://dev.classmethod.jp/articles/how-to-hold-a-tddbc/)においてオフライン開催の手引きがあるが、本記事はそれを踏まえさせていただいた上でのオンライン開催固有の知見をまとめたものである。
- 準備会と本編を別途開催する形式を継承する前提
- `[tips]`とあるものは、運営上必須なtodoではないが、やっておくとスムーズにいくもの
- 執筆者:
  -  [TDDBC Online #1](https://tddbc.connpass.com/event/181973/)運営コアスタッフ
     - [松岡(@little_hand_s)](https://twitter.com/little_hand_s)
     - [なかじま(@jnuank_)](https://twitter.com/jnuank_)
     - [mohira](https://twitter.com/mohirara)
- 改善点、不備などあれば編集リクエストをお願いします。

---

# 事前準備

## 開催宣言・運営メンバー集め
- TDDBCのMLで開催したいと宣言する
  - [参考: 1.TDDBCのMLで開催したいと宣言する](https://dev.classmethod.jp/articles/how-to-hold-a-tddbc/)
- 基調講演講師を依頼する
  - [参考: 2.講師を依頼する](https://dev.classmethod.jp/articles/how-to-hold-a-tddbc/)
- TA・スタッフを募集する
  - メーリングリスト or Discord (or connpassイベント)
- 日程を決める
  - [tips]準備会や、そのための運営陣の準備がオフラインよりかかる傾向があるので、余裕を持つこと

## 運営全般
- 全体の運営方針を決める
  - [tips]キックオフミーティングをして顔合わせをする
  - [tips]定例ミーティングの時間を決める
      - 定例化できると、何も意思決定を挟まずに集まって、タスク進捗確認ができる
  - [tips]ミーティングの１度の時間を決める
      - 45分ぐらいで休憩を10分入れるなどを入れておくと、途中参加・途中抜けがしやすい
  - [tips]運営において大事にしたいこと(VALUE)を決める
    - Online#1では
      - TDD: 実際に手を動かし成功体験を作ることで言葉ではなく身体でTDDを理解する場
      - つながり: TDD"を軸に、言語を超えて人が繋がれるコミュニティ
      - 気づき: あくまで主人公は参加者。TAが正解を教えるのではなく、参加者が能動的に気づきを得るのが大事。"
  - [tips]迷ったときの判断基準を決める(ex: 「困ったら安全側に倒す」「無理しない」など)
  - [tips]各人が運営への関わり方を表明する
- 行動規範(CoC; Code of Conduct)を公開する
	- オンライン#01のCoC →[tddbc/tddbc-online-coc: オンライン開催におけるCOC(ConfcodeOfConduct: 行動規範)](https://github.com/tddbc/tddbc-online-coc)
- 運営費用が余った場合の精算方法を決める

## 参加者募集関連
- 準備会・本編の開催日時を決める
  - [tisp]オンライン準備は結構手間がかかるので、余裕を持っておくのがおすすめ
- 参加枠人数を決める (Online#1ではTAとの人数比、全体のレビューのやりやすさを考慮して決定)
- 言語募集方法を決める(Online#1では言語ごとに枠を決めて、枠指定で募集)
- 募集方法を決める
  - 準備会の日程
  - 本編の日程
  - ツール (Online#1ではPeatix)
  - 参加費 (Online#1では1,000円: オンラインツール使用費とキャンセル防止目的)
  - 決定方法 (抽選 or 先着)
  - キャンセルポリシー (Online#1では返金なし)
  - 募集時のアンケートで聞くことを決める (Online#1ではペアプロ経験・TDD経験・言語経験)
  	- [tips]得意言語の経歴などを回答必須にするとペア決めやTA担当調整時に役に立つ
- 参加者応募時に合意すべき重要事項を決める
  - Online#1では
    - 返金不可であること
    - 準備会への参加必須であること
    - CoCへの合意が必須であること、違反したら運営の権限で退出させることがあること
- 重要事項への合意を取る方法を決める
  - Online#1ではPeatixの応募時アンケートにチェックボックスで回答できるようにした
- 参加者をDiscordに招待する
  - 参加者には、「呼ばれたい名前」をサーバ設定→ニックネームの変更から、付けてもらう

<img src="https://i.imgur.com/e7FsDDr.png" height="400">

## 参加者ペア・TA担当決め
- 参加者とTAの人数を決める
  - Online＃1での観点
      - TAが見られる人数 (Online＃1ではTA1人に対して参加者グループが1.5グループ以下とした)
      - レビュー時のやりやすい人数 (発表時間、フィードバックをもらう時間と、自分以外の事例を見られる数のバランス)
- 参加者ペア、TA担当決めの方法を決める
  - Online＃1での方法
      - TAの対応可能言語を聞いておいてTA同士をグルーピング
      - 参加者ペアは同じ言語で申し込んだ人どうして、ペアプロ未経験同士を避けた

## 準備会の準備関連
- 準備会の目的を決める
  - Online#1では、本編開始時にすぐペアプロがはじめられるようにすること
- 準備会で完了すべき事項のチェックシートをつくって公開する
  - [Online#1のチェックシート](https://docs.google.com/spreadsheets/d/1OSWxm1hqzq9bhc15va8rk-AnOeckIVhGps7MwvAOOHo/)
- 準備会のコンテンツを決める (Online#1では自己紹介、ペア作業環境構築、オンラインペアプロデモ)
	- [tips]準備会の進行表を作る
- ペアプロのコミュニケーションツールを決める（Discordなど）
- 各ペアが、事前に2つのペアプロ環境を用意しておく
  - Online#1では 「Push/Pullパターン」 と 「VSCodeLiveShareパターン」の2つ
  - [tips] ブラウザIDEが進化している可能性があるのでチェックすると良いと思うよ
    - [TDDBC準備会スライド](https://speakerdeck.com/mohira/tddbc-online-preparation-day)
  - [tips] 構築を素早く行うために、[TDDBCのGitHub](https://github.com/tddbc)にあるテンプレートを使用するのも有り
    - 必要があれば、運営・TAの方誰かにアップデートをしてもらう
- 準備会のアンケートを作成する

## 本編のハンズオンコンテンツ準備関連
- 本編のタイムテーブルをつくる
  - [当日タイムテーブル](https://docs.google.com/spreadsheets/d/1bChki6ASV89cPre-yKzG2L3EsBRV1pLAYWqx_FDaUkY/edit#gid=363228061)
    - [tips] 本編の進行表をつくる(※進行表は、「タイムテーブル + 各自の行動」を示したもの == いつ誰が何をするかを一撃で理解するためのもの)
      - [8/1 進行表](https://docs.google.com/spreadsheets/d/12BHK2_We7LfqA8mi3itIFvWkJk3jPqXn5GzANcFkRMs/edit#gid=844845788)
- レビューの仕方を決める
  - 各ペアのみでやるか、全体でやるか、時間はどのくらい取るか
- 本編でのペアプロ回数を決める
  - 2〜3回
- お題を決める
  - Online#1では[閉区間](https://gist.github.com/twada/75fb219c8cc180e9de166d8a58e877b0)
    - 自分たちで問題をToDoリストに分解をしてやっていくタイプ
  - [tips]決定基準
    - オンラインだと、リアルホワイトボードが使えないので、モデリング要素が強めなお題（たとえば[自動販売機](https://gist.github.com/yattom/884741ecbd3c660fb393b2d7b116b4b2)）は選定外にした
- ふりかえりのやり方を決める

## 本編のランチ・懇親会関連
- ランチ開催有無を決める
- ランチツールを決める (Online#1ではRemo)
- 懇親会開催有無を決める
- 懇親会コンテンツを決める (Online#1では5分のLTを2人)
- 懇親会ツールを決める (Online#1ではRemo)


## Discord設定 (Discordを使用する場合)
- [tips]Discordに詳しい人が1名いると安定する
- [tips]Discordの通知設定をいい感じにする
- [tips]Discordのロールを割り当てると便利
    - Online#1では以下のロールを割り当てた
      - 運営参加者
      - TA参加者
      - 一般参加者
      - 基調講演者
- [tips]カメラONにしなければ、人数制限は特になし
  - カメラONにした音声会話は、10人（2020/08/15現在、25人にサービスで拡張されている）までしかできない
- [tips]ペアプロデモや基調講演などのチャンネルには、参加者が間違えて発言できないように、チャンネルごとに発言権限を奪うなどの設定をする


----

# 当日
## 準備会の当日実施すること
- 参加者の出欠をとる(ペア調整などに必要)
- Discordの招待は準備会当日の朝をもって無効化する(無関係の人の参加を防げるため)
- アンケートを取る

## 本編の当日実施すること
- 参加者の出欠をとる(ペア調整などに必要)
- アンケートを取る

----

# TDDBCオンライン#01 資料まとめ
## 説明に使ったスライド群
- [TDDBC準備会 / tddbc-online-preparation-day - Speaker Deck](https://speakerdeck.com/mohira/tddbc-online-preparation-day)
- [TDDBC Online #01 開幕編/tddbc-online-01-opening - Speaker Deck](https://speakerdeck.com/mohira/tddbc-online-01-opening)
- [TDDBC Online #01 朝会/tddbc-online-01-morning-mtg - Speaker Deck](https://speakerdeck.com/mohira/tddbc-online-01-morning-mtg)

## 運営ふりかえりブログ
- [TDDBCオンライン#01 1人でふりかえり やってよかったこと編 - mob-mob-village](https://mohira.hatenablog.com/entry/2020/08/04)
- [TDDBCオンライン#01 でのふりかえり（雰囲気作り編） - jnuank blog](https://jnuank.hatenablog.com/entry/2020/08/09/194542)
- [TDD Boot Camp 2020 Online#1 で TA (Kotlin, Swift)を担当しました - なかしょの技術日誌](http://nakasho-dev.hatenablog.jp/entry/2020/08/15/020940)

## 参加者のレポート
- 準備会: [TDD Boot Campの準備日で学んだペアプロの大事な点。準備日どんなけ学びになるねん。 - Qiita](https://qiita.com/Sho-heikun/items/c521602c46b087280d09)
- 本編: [【イベントレポート】TDDBC2020に参加しました - Qiita](https://qiita.com/ko-flavor/items/69fd8819cf83d4e1f580)
- 本編: [TDDBC Online 参加レポート | LIGHT BLOG](https://light.fusic.co.jp/2020/08/12/20200812-kondo/#.XzN0k_fftEQ.twitter)

## LT資料
- [TODOリストの整理を通じて実行すべきテストを考える #tddbc / TDDBC 2020 Online LT - Speaker Deck](https://speakerdeck.com/nihonbuson/tddbc-2020-online-lt)
- [Kuniwak/isabelle-range](https://github.com/kuniwak/isabelle-range)



以上