1
/
5

チームでモブプログラミングをやってみました

こんにちは、HACARUS のインダストリー事業部でデータサイエンティストをしております宇佐見です。最近はもっぱらC#にどっぷり浸かってアプリ開発をしているので、肩書きがふわふわしてきてる気がします。C#面白いからいいんですけども。
さて、先日チームでモブプログラミングをやってみましたので、感じたことを記事にしてみたいと思います。

モブプログラミングとは

こちらの記事を引用させていただくと、

複数の開発メンバーが同じ場所にあつまり、1台のコンピュータを使い、話し合いながらソフトウェア開発を進める手法。 ペアプログラミングをさらにチームに拡大したものと言える。 メンバーが一定時間ずつ交代でドライバー役(実際にキーボードでコードを入力する係)を務め、それ以外のメンバーは画面を見ながら、プログラム上の問題などについて議論し、コーディング内容をドライバーに指示していくという流れが一般的。

とされています。
活用目的は色々あると思いますが、今回モブプログラミングをやってみようとなった理由は、チームメンバー間でのプログラミングにおける暗黙知を共有したいという要望が出てきたからです。
チームとしてコードレビューを行ってお互いのコードを見たり、勉強会を開いてみたりして知識の共有は行っていますが、やはり実際にコードを書く作業の中で無意識にやっていること、心がけていることは共有しづらいものです。
また、私が所属するインダストリー事業部はHACARUS Checkという外観検査プロダクトを開発していて、メインで使用されている言語がC#及びC++となっています。しかしC#を書いているメンバーはほとんどがこの事業部にきてからC#を書き始めた人ばかりで、かくいう私も半年ほど前にC#を始めたばかりです。(それ以前はPythonを3年ほど書いてました)
従って、C#及び.NETを使った最適な書き方はまだ模索している人も多く、より学びを加速したいという狙いもあります。
特に昨年末ごろからC#開発のアドバイザーとしてチームを応援してくださっている方もいるので、その方を交えればより効果的なのではということで開催に至りました。

実施したモブプログラミングの内容

今回は下記の様な条件でやってみました。

  • ドライバーを1人設定し、10分で交代
  • コードはGitLab上のリポジトリで管理し、各自更新内容をpullして同期することで、各自のPCで作業する
  • 画面共有し、その内容をプロジェクターで写して皆で議論する

PCを共通化してドライバーが交代するという方法もあるようなのですが、各人のキーボードの違いなどもあり、各々の使いやすい環境の方がいいだろうということでこの方法をとりました。
題材としてはこちらの課題を拝借しました。本活動の目的がお互いの持つ技術スタックの共有が主だったため、まっさらな状態から課題をどういう風に進めていくのかを見ることで、その目的が達成できるのではないか?という理由で実際のプロダクトのコードは使用しませんでした。先程の説明の通り、今回はC#の知見共有ということで、プログラミング言語はC#を使用することにしました。

やってみてどうだったか?

やってみた感想として、私のみならず皆さん良かったという感想でした。

2週に一回のKPT確認の時のKEEP

暗黙知を共有するというのみならず、入っていただいたアドバイザーの方の助けもありTDD的な考え方を実践しつつ進められたのは非常に学びになりました。
ここで議事録の一部を抜粋してみます。

  • namespaceでくくるのは古い書き方、セミコロンでいい
  • Forkが流行りのgit client
  • Ctrl R, Rでメソッド名リネーム
  • private変数の頭に_付けるか付けないか問題
    - 付けるとプロパティとかの内部変数とぶつからなくていい
    - Microsoftは付けなくてもいいルールになった?
  • unix2dos.exeを使うと改行コード修正できる
    - unix環境に入ってるので、cygwinとかなら実行可能
  • テストファイルのネーミングは後ろにTestをつけるでチームで統一
    - 複数系のsはつけない
    - Testは必ずいれる
    - 後ろにいれる
  • git diff -wで空白や改行を無視したdiffの表示

様々な点が学びとして挙げられていますが、単純にコードの書き方以外にも、便利なツール、gitの便利なコマンド、チームのコード規約の確認など話題は多岐に渡っていて、暗黙知の共有という点では非常にためになりました。
全員の時間を拘束するため、頻繁に開催することは難しいのですが、また開催したいと思っています。
今後の課題としては、広く話題が発散することも多かったので、コードに集中してコードに関わる話題のみに絞った方がよりコーディングに関する知見は深まったかもしれません。そこはその時のモブプロで何に集中する会であるか?というのは明確にして始めてみるのもよさそうです。とはいえ、話題が広ければ色んな分野の情報を得られるので、そこは一長一短です。

まとめ

モブプロは暗黙知を共有するには非常に良いイベントでした。チーム内での情報共有をより加速するために今後も活用していきたいと思います。また、モブプロ以外にもチームの開発力をあげる活動も進めていきます。


Noteでも技術ブログやってます

Noteでも技術ブログを発信しています。ご興味ある方はぜひご覧ください(^^)

HACARUS INC.の記事一覧|note(ノート)
HACARUS INC.さんの記事一覧です。
https://note.com/hacarus/all
株式会社HACARUS's job postings
31 Likes
31 Likes

Weekly ranking

Show other rankings
Invitation from 株式会社HACARUS
If this story triggered your interest, have a chat with the team?