チームでモブプログラミングをやってみました
こんにちは、HACARUS のインダストリー事業部でデータサイエンティストをしております宇佐見です。最近はもっぱらC#にどっぷり浸かってアプリ開発をしているので、肩書きがふわふわしてきてる気がします。C#面白いからいいんですけども。
さて、先日チームでモブプログラミングをやってみましたので、感じたことを記事にしてみたいと思います。
モブプログラミングとは
こちらの記事を引用させていただくと、
とされています。
活用目的は色々あると思いますが、今回モブプログラミングをやってみようとなった理由は、チームメンバー間でのプログラミングにおける暗黙知を共有したいという要望が出てきたからです。
チームとしてコードレビューを行ってお互いのコードを見たり、勉強会を開いてみたりして知識の共有は行っていますが、やはり実際にコードを書く作業の中で無意識にやっていること、心がけていることは共有しづらいものです。
また、私が所属するインダストリー事業部はHACARUS Checkという外観検査プロダクトを開発していて、メインで使用されている言語がC#及びC++となっています。しかしC#を書いているメンバーはほとんどがこの事業部にきてからC#を書き始めた人ばかりで、かくいう私も半年ほど前にC#を始めたばかりです。(それ以前はPythonを3年ほど書いてました)
従って、C#及び.NETを使った最適な書き方はまだ模索している人も多く、より学びを加速したいという狙いもあります。
特に昨年末ごろからC#開発のアドバイザーとしてチームを応援してくださっている方もいるので、その方を交えればより効果的なのではということで開催に至りました。
実施したモブプログラミングの内容
今回は下記の様な条件でやってみました。
ドライバーを1人設定し、10分で交代
コードはGitLab上のリポジトリで管理し、各自更新内容をpullして同期することで、各自のPCで作業する
画面共有し、その内容をプロジェクターで写して皆で議論する
PCを共通化してドライバーが交代するという方法もあるようなのですが、各人のキーボードの違いなどもあり、各々の使いやすい環境の方がいいだろうということでこの方法をとりました。
題材としてはこちらの課題を拝借しました。本活動の目的がお互いの持つ技術スタックの共有が主だったため、まっさらな状態から課題をどういう風に進めていくのかを見ることで、その目的が達成できるのではないか?という理由で実際のプロダクトのコードは使用しませんでした。先程の説明の通り、今回はC#の知見共有ということで、プログラミング言語はC#を使用することにしました。
やってみてどうだったか?
やってみた感想として、私のみならず皆さん良かったという感想でした。
暗黙知を共有するというのみならず、入っていただいたアドバイザーの方の助けもありTDD的な考え方を実践しつつ進められたのは非常に学びになりました。
ここで議事録の一部を抜粋してみます。
namespaceでくくるのは古い書き方、セミコロンでいい
Forkが流行りのgit client
Ctrl R, Rでメソッド名リネーム
private変数の頭に_付けるか付けないか問題
付けるとプロパティとかの内部変数とぶつからなくていい
Microsoftは付けなくてもいいルールになった?
unix2dos.exeを使うと改行コード修正できる
unix環境に入ってるので、cygwinとかなら実行可能
テストファイルのネーミングは後ろにTestをつけるでチームで統一
複数系のsはつけない
Testは必ずいれる
後ろにいれる
git diff -wで空白や改行を無視したdiffの表示
様々な点が学びとして挙げられていますが、単純にコードの書き方以外にも、便利なツール、gitの便利なコマンド、チームのコード規約の確認など話題は多岐に渡っていて、暗黙知の共有という点では非常にためになりました。
全員の時間を拘束するため、頻繁に開催することは難しいのですが、また開催したいと思っています。
今後の課題としては、広く話題が発散することも多かったので、コードに集中してコードに関わる話題のみに絞った方がよりコーディングに関する知見は深まったかもしれません。そこはその時のモブプロで何に集中する会であるか?というのは明確にして始めてみるのもよさそうです。とはいえ、話題が広ければ色んな分野の情報を得られるので、そこは一長一短です。
まとめ
モブプロは暗黙知を共有するには非常に良いイベントでした。チーム内での情報共有をより加速するために今後も活用していきたいと思います。また、モブプロ以外にもチームの開発力をあげる活動も進めていきます。
この記事が気に入ったらサポートをしてみませんか?