SlideShare a Scribd company logo
自作Cコンパイラはモブプロで最適化の夢を見るか?
モブプログラミング
セキュリティ・ネクストキャンプ2020
2020年10月24日
uchan
Security Nextcamp remote mob programming
モブプログラミングとは
• 略してモブプロ
• 3人以上が集まって
• 同じ時間に
• 同じ画面を見て
• 同じ課題に一緒に取り組む
• Hunter Industryでのモブプロの様子
• https://www.youtube.com/watch?v=dVqUcNKVbYg
• Hunter Industryはモブプロの聖地
色々なモブプロ
• メンバーのレベルがある程度そろっているモブプロ
• がんがん実装を進めていく
• 互いに学びもある
• このスライドの想定はこれ
• ベテランと新人のモブプロ
• ベテランが新人に教えつつ開発を進める
• ベテランは教え方が上手くなり,新人は大量に知識を吸収
ドライバーとナビゲーター
• ドライバー
• ナビゲーターの議論の結果をコードで表現する
• 自分の考えだけでコーディングを進めない
• ナビゲーター
• 何を実装するかを議論する
• ドライバーが理解できる最も高い抽象度の表現で伝える
• チームの文化によって役割の差はある
ドライバー
https://gds.blog.gov.uk/2016/09/01/using
-mob-programming-to-solve-a-problem/
モブプロの良さ
• 互いに分からないことを補完しあえる
• 調べる時間が短縮される
• 不正確な知識を得てしまう可能性が下がる
• チームメンバー皆が内部構造等に詳しくなる
• ドキュメント量を削減できる
• チームメンバーの知識レベルを揃えられる
• 属人性をある程度防げる
• チームでわいわい楽しい!
リモート・モブプログラミング
サイボウズ株式会社の事例
様々な場所からリモートで
モブプロを行っている
https://blog.cybozu.io/entry/2020/02/28/080000
リモート・モブプロのやり方
• ドライバーの順序を決める
• ドライバーの交代方法を決める
• 時間で区切る?機能単位?他の何か?
• リモートチーム用タイマー https://cuckoo.team/next-ccmob
• ナビゲーターが議論し,ドライバーがコードを書く
• ドライバーの交代時間になったらコードをcommit & push
• 適度に休憩時間を設ける
ドライバーの技術
• 自分の考えだけでコーディングを進めない
• ナビゲーターが静かに見守るだけ,になりがち
• ナビゲーターからの案を素直に実装するのが基本
• もちろん,よりよいアイデアがあれば議論に参加しよう
• 自分の思考を垂れ流す(しゃべる)
• どんなコードを書こうと思っているかを垂れ流す
• 分からないことがあれば,分からないことを伝える
• 難易度が高い技術なので練習しよう
モブプロQ&A
• 個々人で分散開発した方が効率良いのでは?
• 時と場合に依るとは思います
• 複雑な作業はモブプロが適すると感じます
• 皆の英知を集めて作業できること,皆が知識を得られることが大きい
• 事実,サイボウズの開発は大部分がモブプロになりました
• その他質問ありますか

More Related Content

More from uchan_nos (20)

PPTX
MikanOSと自作CPUをUSBで接続する
uchan_nos
 
PPTX
OSを手作りするという趣味と仕事
uchan_nos
 
PPTX
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
 
PPTX
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
 
PPTX
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
 
PPTX
自作言語でお絵描き
uchan_nos
 
PPTX
OpeLa 進捗報告 at 第23回自作OSもくもく会
uchan_nos
 
PPTX
サイボウズ・ラボへ転籍して1年を振り返る
uchan_nos
 
PPTX
USB3.0ドライバ開発の道
uchan_nos
 
PPTX
Langsmith OpeLa handmade self-hosted OS and LPS
uchan_nos
 
PPTX
OpeLa セルフホストなOSと言語処理系の自作
uchan_nos
 
PPTX
自動でバグを見つける!プログラム解析と動的バイナリ計装
uchan_nos
 
PDF
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
 
PDF
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
 
PDF
Building libc++ for toy OS
uchan_nos
 
PDF
プランクトンサミットの歴史2019
uchan_nos
 
PDF
Introduction of security camp 2019
uchan_nos
 
PDF
30分で分かる!OSの作り方 ver.2
uchan_nos
 
PDF
Timers
uchan_nos
 
PDF
USB3 host driver program structure
uchan_nos
 
MikanOSと自作CPUをUSBで接続する
uchan_nos
 
OSを手作りするという趣味と仕事
uchan_nos
 
小型安価なFPGAボードの紹介と任意波形発生器
uchan_nos
 
トランジスタ回路:エミッタ接地増幅回路
uchan_nos
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
 
自作言語でお絵描き
uchan_nos
 
OpeLa 進捗報告 at 第23回自作OSもくもく会
uchan_nos
 
サイボウズ・ラボへ転籍して1年を振り返る
uchan_nos
 
USB3.0ドライバ開発の道
uchan_nos
 
Langsmith OpeLa handmade self-hosted OS and LPS
uchan_nos
 
OpeLa セルフホストなOSと言語処理系の自作
uchan_nos
 
自動でバグを見つける!プログラム解析と動的バイナリ計装
uchan_nos
 
1を書いても0が読める!?隠れた重要命令INVLPG
uchan_nos
 
レガシーフリーOSに必要な要素技術 legacy free os
uchan_nos
 
Building libc++ for toy OS
uchan_nos
 
プランクトンサミットの歴史2019
uchan_nos
 
Introduction of security camp 2019
uchan_nos
 
30分で分かる!OSの作り方 ver.2
uchan_nos
 
Timers
uchan_nos
 
USB3 host driver program structure
uchan_nos
 

Security Nextcamp remote mob programming