# リモートペアプロ<br>ハンズオン --- ## WHY * **世の中の変化**<br>→コロナなどの影響で、リモートでのペアプロに切り替えようとするプロジェクトが増加 * **開発チームへの期待の変化**<br>→リモートでもこれまで同様orそれ以上に開発ができるようになることが、今後チームに求められる --- ## ハンズオンで行うこと * リモートでのペアプロを試してみる * リモート開発での **Working Agreement**<br>(チームの約束事)について考えてみる --- ## ハンズオンの狙い * リモートでのペアプロを経験を持ち帰っていただくこと * 参加者各自のチームでリモート開発を実践できるようになること --- ## 前提知識・経験(あるとよい) * ペアプロ * モブプロ * オンライン会議ツール、チャットツール、<br>などの使用経験 --- ## (事前のお願い) * 参加者の皆様の反応が見えないと、進行がし辛いです * できる限り、カメラオン&大きめの頷きや<br>相づちでお願いします! * リモートペアプロは特に疲れやすいので、<br>休憩が必要なときには遠慮せずに教えてください --- ## このハンズオンの進め方 * **ペアプロ→ふりかえり→ペアプロ→ふりかえり→ペアプロ→ふりかえり→**... * ペアプロ(各20分):20分毎にドライバー交代 * ふりかえり(各10~20分):参加者全員でKeep、Prpblemを共有、Tryを決める --- ## ハンズオンに必要な環境① * オンライン会議ツール * Zoom、WebEXなど * 顔やデスクトップを映せるツールがよい * コードエディタ * VSCodeなど * 参加者全員でエディタを揃えるほうがよい * 共同編集機能があるものを選ぶのもよい --- ## ハンズオンに必要な環境② * 共同作業ツール * Confluence、CodiMD、Miroなど * 作業メモや付箋などを全員で共有できるツール * ペアプロだけでなく、ふりかえりでも使用する * チャットツール(あるとよい) * Slack、Mattermostなど --- ## お題決め(10分) 参加者全員でペアプロのお題を決めましょう 例: * ①ランディングページ(目安:0.5日程度) * ②SPA作成+API活用(目安:1〜2日程度) ※ハンズオンの時間で終わらないようなお題でも構いません ※全員が触れたことのあるような言語がよいです --- ## 準備(40分) ペアプロを始めるための準備や<br>チームの決め事などを参加者全員で行いましょう * ペア or モブどちらでやるか * ペアの組み合わせをどうするか * ドライバー&ナビゲーター交代をどうやるか * ビデオ会議やチャットをペア毎に分けるか * ふりかえりをどのように行うか * 言語、開発環境、構成管理方法、などなど --- ## 参考:<br>Here’s how we do<br>Remote Mob Programming * https://www.remotemobprogramming.org/ --- ## 参考:一部紹介 * **Remote Everybody** * メンバー全員をリモートにすること * リモートチーム/オフラインチーム間で心理的壁が生まれるのを防ぐ * **Camera Always On** * カメラは常にオンにする * できれば全員でカメラをオンにする * **Small Team** * 発言しやすいチームのサイズを保つ * 必要に応じて、チームを適度に分割する --- ## 参考:一部紹介 * **Screen Sharing** * ドライバーがナビゲーターに画面を共有 * **xx Minute Intervals** * リモートは集中しすぎる・疲れやすい * 10〜20分でドライバーを交代するとよい * **Git Handover** * Gitのpush/pullでドライバーを交代する * **Group Decisions** * チーム全体で意思決定を行う --- ### 参考:某保険系PJ * 開発者13人からなる2アジャイルチーム * 緊急事態宣言後、リモートペアプロに移行 * Zoomのブレークアウトルーム機能で<br>ペアプロ毎に部屋を割り当て&<br>全員が自由に部屋を移動 * ドライバーがナビゲーターに画面共有 * 20分毎にGit Push/Pulllでドライバー交代 * 全員リモート、全員カメラオン * Miroに設計やタスクの情報を集約 --- ## それでは<br>リモートペアプロを<br>やってみましょう! --- ## ペアプロ1回目(20分) * チームでの決め事に従い、各ペアで作業を行いましょう --- ## ふりかえり1回目(20分) * チーム全員で集まり、振り返りを行いましょう * ペアプロ2回目に向けて、アクションアイテムを1つ以上決めましょう --- ## ペアプロ2回目(20分) * 同じペアで引き続き作業する場合は、ドライバーとナビゲーターを交代しましょう * 可能そうなら、20分の枠内でもドライバーを交代してみましょう * ふりかえりで決めたアクションアイテムに取り組みながら、各ペアで作業を行いましょう --- ## ふりかえり2回目(10分) * チーム全員で集まり、振り返りを行いましょう * ペアプロ3回目に向けて、アクションアイテムを1つ以上決めましょう --- ## ペアプロ3回目(20分) * ドライバーとナビゲーターを交代しましょう * 可能そうなら、20分の枠内でもドライバーを交代してみましょう * アクションアイテムに取り組みながら、各ペアで作業を行いましょう --- ## ふりかえり3回目(10分) * チーム全員で集まり、振り返りを行いましょう --- ## (延長戦) ハンズオンをカスタマイズして、4回目以降のペアプロやふりかえりに取り組んでも構いません --- ## ディスカッション(20分) * 各ペアやチームでの気づき、よかったこと、うまくいかなかったことなどを共有しましょう --- ## 事例紹介 * xxx * xxx --- ## 最後に * ペアプロに限らず、リモートでのコミュニケーションの取り方について、**開発メンバー全員で考えてみる**ことが大切 * チーム全員が作業しやすくなるような **Working Agreement** (チームの約束事)を、必要に応じて設定しましょう --- 本日はご協力ありがとうございました 皆様お疲れさまでした --- ## お題例: --- #### お題例①:ランディングページ(1/4) * トップページ <img src="https://i.imgur.com/HIxobzC.png" height="500px"> --- #### お題例①:ランディングページ(2/4) * サービス一覧ページ <img src="https://i.imgur.com/5UcReiv.png" height="500px"> --- #### お題例①:ランディングページ(3/4) * お問い合わせページ <img src="https://i.imgur.com/FRtuzNd.png" height="500px"> --- #### お題例①:ランディングページ(4/4) * 使用言語:HTML、CSS、など<br>それ以外のフレームワークを活用してもよい * 静的サイトでよい * 各データやボタンはモック程度のものでよい * コードは任意のGitサーバーに格納すること * デモページを公開できるとなおよい --- #### お題例②:SPA作成+API連携(1/4) <img src="https://i.imgur.com/akUVQrl.png" height="500px"> --- #### お題例②:SPA作成+API連携(2/4) 内容: 1. 郵便番号APIから都道府県一覧を取得し<br>動的に表示する 1. チェックボックスで選択された都道府県から、感染者数の円グラフを動的に表示する --- #### お題例②:SPA作成+API連携(3/4) 制約: * React/Vue.js/AngularJSなどを使い、<br>SPAとして構築すること * 都道府県一覧や都道府県別感染者数には、<br>外部WebAPIを活用して表示すること * Third Party製のグラフを用いて描画すること * 最新版のGoogle Chromeで動作すること --- #### お題例②:SPA作成+API連携(4/4) 参考WebAPI: * [都道府県一覧 - 郵便番号API](https://postcode.teraren.com/doc) * [COVID-19 Japan Web API](https://documenter.getpostman.com/view/9215231/SzYaWe6h?version=latest)
{"metaMigratedAt":"2023-06-15T08:53:08.689Z","metaMigratedFrom":"Content","title":"リモートペアプロ<br>ハンズオン","breaks":true,"contributors":"[{\"id\":\"ee88c024-09ed-4589-bebf-43866c39ff3f\",\"add\":25470,\"del\":21422}]"}
    491 views