ランサーズ(Lancers)エンジニアブログ > イベント/登壇 > 開発ランチ(lunchers) > 開発ランチ(Lunchers #6) ~kakakakakkuさんによるzenhub & モブプログラミングによるプロジェクトリード~

開発ランチ(Lunchers #6) ~kakakakakkuさんによるzenhub & モブプログラミングによるプロジェクトリード~

inamuu|2018年07月11日
開発ランチ(lunchers)

はじめまして、SREチームの稲村と申します。
最近、会社と自宅それぞれで自作キーボード使うようになり、日々快適なキーボード生活を送っています。
自分の好きなキースイッチとキーマッピングが選択できるのは最高ですね。

さて、今回のLunchersでは、巧みな文章力と確かな技術力で書かれたブログで有名なkakakakakku(カカカカック)さんに、プロジェクトリード理論編ということで「ZenHubとモブプログラミング」についてお話していただきました。

イベントページ

https://lancers-engineer.connpass.com/event/92801/

発表時の資料

ご挨拶

弊社神庭からLunchersというイベントの趣旨について説明を行いました。
なお、今回初めて弊社コワーキングスペースを利用して、社内/社外/フリーランスの方を交えての開催となりました。

フリーランス専用のコワーキングスペースを無償提供開始

kakakakakkuさんについて

  • 株式会社マクアケでSREをやっている
  • ブログを大事にしており、アウトプット芸人と呼ばれている
  • 副業でRuby on Railsの講師もやっている

kakakakakkuさんの「楽しく!アウトプットを習慣化しよう」の記事はこちら

ZenHubを使ったタスクの管理

前半はZenHubを使ったタスクの管理方法についてお話いただきました。

  • BacklogsとDoingとReviewingとClosedを作る
  • Backlogsはメンバーを割り当てない
  • DoingはWIP制限する
  • プランニングポーカーはやってない
  • 優先度は言わない
  • 優先順位を使う、上が最も優先順位が高いようにする
  • デイリースクラム(朝会)
  • みんなの前でcloseすることで右に進んでるcloseおめでとう を朝会で共有する
  • 流れの速さをデイリースクラムで感じ取る
  • 完了の定義を決める

質問

  • Q: GithubのProjectsやTrelloと比べてZenHubを使用している理由はあるか。
  • A: ZenHubだとEpic(issueをまとめる)機能が良い。
  • Q: ビジネス上の理由で差し込みが入るタスクはどうするか。
  • A: 障害対応などの緊急を要する場合を除き、あとまわしにしてBacklogsに入れて対応する。
  • Q: ラベルの付け方どうしているか。
  • A: 職務(デザイン、フロント、サーバーサイド、インフラなど)横断でやりたいので職務でラベル付けしている。スキルマップを作成して、自分が高めていきたい職務に挑戦しているのを可視化している。

ZenHubを中心に話していただきましたが、Github ProjectsやTrelloでも採用できる内容で大変参考になりました。
特に、タスクの粒度はバラバラになりがちで作業記録を残していったらissueが膨大な量になってしまうということはよくあると思います。
kakakakakkuさんのチームでは1つのタスクを1-3日で終わるような粒度に落とし込んで、タスクの完了までのサイクルを高めているようでした。
また、優先度を使わないという点でも、高中低のような優先度を設定してしまうと同じ優先度のものがBacklogsに存在してしまうので、優先順位にして上が最も順位が高いというルールに定めているのは、ZenHubの画面をパッと見てタスクの状況を把握しやすいルールだなと感じました。

モブプログラミングについて

後半はモブプログラミングについてお話いただきました。

  • スウォーミング
  • 「タスクをメンバー」にではなく、「メンバーをタスク」に割り当てる
  • One day in Kanban land
  • みんなで詰まっているタスクを終わらせる
  • 実装、設計、エディタとかのテクニックを共有する
  • モブリリースでみんなでデカイ画面でリリースする
  • ポモドーロ
  • メンバー全員のコミットが並んで達成感がある

質問

  • Q: Aさんのタスクが遅くなった場合、BさんとCさんがフォローすると、BさんCさんのタスクが遅くなってしまうのを防ぐにはどうすればよいか。
  • A: もともとBacklogでメンバーをアサインしていなければ他のタスクが遅れるということは基本的には無い。
  • Q: モブプログラミングの開催頻度はどれくらいか。
  • A: kakakakakkuさんのチームでは週一か二週に1回。イベント的にやったり教育的にやったりもするし、毎日やっているチームもあるがコストは高くなる。

チームでプロジェクトを完遂していくにあたり、メンバーをタスクに割り当てるというのはなるほどなぁと思いました。
インフラだからインフラだけ進めるというのではなく、優先順位の高いものをみんなで進めていくというのはまさにチームで為せる技です。
また、モブプログラミングを実施することで、みんなでワイワイと時間を決めて作業を進めることで個々が得た知識を共有でき、スキルの底上げだったり、作業に対する共通認識が生まれやすいだろうと感じました。

kakakakakkuさんの「モブプログラミングの基礎を学べる洋書「Getting Started with Mob Programming」を読んだ」の記事はこちら

全体を通して

kakakakakkuさんの発表は実務でどう活用しているかの話以外にも、分かりやすい例えを使って発表をしていただき、大変素晴らしい発表でした。
社内だけではなく、社外から来られた方も沢山質問をされていて、みなさん有意義な時間を過ごすことが出来たのではないでしょうか。
我々SREチームでもGithub Projectsを使ってタスク管理を行っており、大きめのリリース時にはメンバー全員でリリースを見届けることもあるので、今回発表いただいた内容はすぐにでも取り込めるものばかりで大変参考になりました。

kakakakakkuさん、来社いただいた皆様、お忙しいところ誠にありがとうございました!!

※さっそく今回のイベントをブログにしていただいている「プロジェクトの成功を支える ZenHub と モブプログラミング」の記事はこちら