生産性向上は一筋縄ではいかない Q&A [デブサミ2022夏]

こんにちは。生産性向上チームの平木場(@korosuke613)です。最近はよくダーツを投げています。好きな料理は辛麺1です。

この記事では、Developers Summit 2022 Summer で発表した「生産性向上は一筋縄ではいかない 〜改善を進める上で生じる課題との付き合い方〜」に寄せられた質問に対して回答します。

はじめに

先日 Developers Summit 2022 Summer というイベントで生産性向上チームの活動を発表してきました。 タイトルは「生産性向上は一筋縄ではいかない 〜改善を進める上で生じる課題との付き合い方〜」です。

Developers Summit とは翔泳社さんが定期的に開催しているソフトウェア開発者のためのカンファレンスです。

2022/07/21 に開催された Developers Summit 2022 Summer は「アジャイル・DevOps 時代のプロダクトとエンジニア組織を支える、Developer Productivity への道」というテーマだったため、生産性向上チームとしてこれはぜひ応募せねばとなりました。

event.shoeisha.jp

目次

発表

こちらが発表に使ったスライドです。


チームでの取り組みを紹介するのはこれまでも行ってきた2ため、今回は僕たち生産性向上チームが活動の上でつらさを感じていることについてもお話することにしました3

いただいた質問と回答

発表中は主に参加者チャットでいただいた質問を同じチームの @miyajan さんが返信する形で回答しました。 発表者とは別に質問回答者を用意したため参加者の疑問に多く答えることができてよかったです。

発表終了後は僕が口頭でいくつかの質問に回答しました。

たくさんのご質問をいただきありがとうございました!

※列挙している質問内容は要約したものを載せています。

Q: どういうメトリクスで生産性を測っていますか?

生産性を単一のメトリクスで表現するのは現実的ではないと考えているため、現在、生産性向上チームでは特定のメトリクスを常に追いかけるということはしていません。個別のタスクでなにかしらの指標を設定することはあります。

ただ、最近はチーム内でやはり何かしらは測れるといいよねという機運があり、Four Keys などのフレームワーク等を調査中です。

調べてみるとやはり機械的に取りやすいメトリクスと取りにくいメトリクスがあって楽に取るのはやはりむずかしそうだなとかなっています(サイボウズの場合製品たくさんあるし)。 とりあえず機械的に取りやすいメトリクスを取ってみるかという話になってるのでいつか続報を出せるといいですね。

Q: 生産性向上チーム爆誕はトップダウンで決まりましたか?

ボトムアップの提案から生産性向上チームが立ち上がりました! サイボウズは、ボトムアップの提案でチームが生まれるパターンがわりとよくあります。

立ち上げ時の詳しい話は 開発者の生産性向上の始め方・育て方 をご参照ください。

Q: SRE と情シスを合わせたような役割ですか?

サイボウズの場合、SRE と情シスは別チームとして存在しています。主に次のような役割の違いがあります。

  • SRE:本番環境の運用や信頼性向上など
  • 情シス:全社で利用される情報システムの運用など
  • 生産性向上:開発者が使うシステムの運用や開発チームの改善活動の支援など

Q: 生産性向上チームと SRE はやることけっこうかぶりませんか?

被る部分もありますが、SRE は運用に近い部分の支援が多くなるのに対して、生産性向上ではより開発寄りの支援もするという感じです。

Q: チーム毎に異なる CI/CD 環境を提供しているのでしょうか?チームによって使用ツールは変わると思いますが、チーム毎に柔軟に支援しているのでしょうか?

生産性向上チームは CircleCI や GitHub Actions など、サポートする CI/CD 環境を複数提供しています。

各開発チームはその中から選んで利用してもいいですし、全然異なるツールを選んでもいいという形で、最終的な決定権は開発チームに委ねています。

CI/CD 環境に限らず、生産性向上チームが提供するサービスやツールは開発チームにとって選択肢の 1 つにすぎないという状態となっています。

Q: 生産性向上チームは幅広いスキルが求められそうですが、オンボーディングはどのようにやっていますか?

生産性向上チームではモブ形式でタスクを進める時間を毎日一定時間確保しています。これにより、集合知で幅広いスキルをカバーでき、新しいメンバーがキャッチアップしやすくなるようになっています!

ただ、スキル面でのちゃんとしたオンボーディング資料も用意したいとも考えています。しかし、生産性向上チームは使っている技術の幅が広かったり運用しているサービスが複数あるため、これをやっておけばオッケーというものがなく、良い資料は用意できてないのが現状です。

用意できるなら用意したいよねとはなっているので、良い方法を模索しているところです。

Q: 生産性向上チームとしてのコミットメント数値はあるのでしょうか(例えば年間で X 件提案、コスト Y 円削減など)

開発基盤の運用や支援という役割上、問い合わせや依頼による想定外の変化が多いため、特にコミットメントは設定していません。

一方で未来の見通しがないのもよろしくないので、大まかに「3Q 中に完了を目標とするプロジェクト一覧」みたいなロードマップはチーム内で作成しています。

Q: どのようなスカウトサービスを活用していますか?

現在は Findy さんのサービスを活用しています!

詳しくは 「導入して約半年で 10 人採用決定できました」サイボウズ株式会社様 - Findy 成功事例インタビュー! | Findy Enterprise エンジニア採用 をご覧ください。

Q: CI/CD などの具体的な技術スタックが知りたいです

生産性向上チームの主な技術スタックは「サイボウズの生産性を高める生産性向上チームと開発文化」の P20を参考にしてください!

Q: 開発チーム側が引き継ぐ人を立てる余裕がないと言われることはありませんか?

そういうこともあります。ただ、最終的に開発チームが自立した形にならないとお互い不幸になるので、できるだけ最初から少しの時間でも開発チーム側の人を巻き込んで進めるように意識しています。

Q: 現在はオンラインでモブプログラミングを行うことが多いですか?オンラインでのやり方で工夫していることがあれば知りたいです。

生産性向上チームのモブプログラミングでは 25 分作業 -> 5 分休憩を繰り返すようにしており、作業毎に原則ドライバーを交代しています(詳細)。

コロナ前はオフラインでモブプロを行なっていましたが、コロナ禍に入ってからは常にオンラインでのモブプロを行なっています。

オンラインモブプロの工夫としては次のものが出てきました。

  • できるだけカメラは ON にする
    • モブプロ中にできるだけお互いの表情を見られた方が反応や考えてることやわかるので心理的に楽という意見がありました
    • 生産性向上チームではカメラ ON を強制していませんが、自然とみんなカメラオンにしています
      • カメラを ON にしたくない人もいるかもしれないけど、OFF にできない空気感になってしまってる可能性もあるので難しいところです
  • ポモドーロタイマーの共有
    • モブの時間、休憩時間をオンラインでも同期できる Cuckoo というサービスを使っています
  • 時間になったら WIP コミットを積んで絶対ドライバーを交代する
    • リアルモブでは目の前のキーボードを叩く人を変えるだけですみましたが、オンラインではそうもいきません
    • コミットのキリのいいところで交代しようとなるとドライバーをする時間に大きな差が生まれてしまうので、生産性向上チームでは時間になったら WIP コミットという一時的なコミットを積んでしっかりと交代します
  • チャットで非同期に質問する
    • オンラインで同じルームだと 2 つの話題を並行して会話することが困難です
    • そこで、モブ中でもチャットで質問する場合があります。チャットだと非同期で質問・回答ができてモブの流れを止めないため、質問回答しやすい環境となります

Q: 開発基盤提供・チーム支援、どちらの比重が多いですか?またどのようにそのバランスをとっていますか?

肌感覚としては開発基盤関連のものが多い気がします。理由としては開発基盤関連のタスクはチーム内で完結することが多く作業を進めやすいのと、保守のタスクがどうしても多くなってしまうためです。

ただ、どちらかにとても偏っているという気はしていなくて、大体半々にはなっているかなと考えています。

意図的にバランスを取ろうとすることはありませんが、毎日の朝会などで、タスクをトリアージし、基盤、支援関わらず優先度を決めています。

Q: モチベーション維持で気をつけていることはありますか?

僕個人の意見としては、仕事のモチベーションを維持するには次が必要だと考えています。

  • やりたいことができる
  • 休みたい時に休める
  • チームにいて楽しいと思える(一番大事な気がする)

生産性向上チームでは、自然とこれらの条件を満たせるようなチームとなっています。(おそらく僕以外の人も似たようなことを考えているんじゃないかな)

条件 やってること
やりたいことができる 毎日の探求時間で好きな技術を探求できるし、手をつけられていないタスクを 1 人で進めることもできる
休みたい時に休める ドキュメントを充実させたり権限を分散させることで、属人性をなるべく排除して休みやすくしている。チームメンバーも休みたい時に休もうぜって言う人が多い
チームにいて楽しいと思える 完全に主観だけど、冗談も文句も言いたいことが言い合える楽しいチームだと思ってる。特に工夫はしてないと思う

※ 探求時間とは、毎日午前中に設けている好きな技術を自由に探求する時間です。今回のスライドの P30 を参照

Q: これまでで一番手応えを感じた改善活動を教えてください

僕の場合はオートスケールする GitHub Actions のセルフホストランナー環境の構築でした。

理由としては、経験した中で一番社内で対象者が多く4、リリース後も多くの人が利用してくれている事による達成感が大きかったからです。 また、1 から開発に携わったため設計開発運用全てのフェーズに関われたという技術的な理由もあります。(入社したばかりの頃は既存システムの改善や既存のチーム支援への途中参加が多かったことが関係しています。)

現在行っている CircleCI Server の新アーキテクチャへの更新も一から構成を再設計しているためなかなか手応えがあって楽しいです。

いただいた感想

当日のチャット、ツイッター、後日もらったアンケートの感想を一部抜粋し、要約したものを載せます。 50 を優に超えるコメントが寄せられましたが、全てに目を通させていただきました。

  • チームに依頼がこないという現象、心当たりがある
  • クローズ作業はやりたがる人も少ないので大変
  • 使用する側がオーナーシップを持たないと横断組織は成り立たないと思うので、オーナーシップの明確化は確かに大事
  • 生産性の定義が難しい。GDP くらいわかりやすいのがほしい
  • Productivity WeeklyProductivity News を毎回楽しみにしている
  • チームとして存在することで、問題を客観的に見られそう
  • ちょうど似たようなことに取り組もうとしていた(している)ので非常に参考になった
  • 課題の内容がリアルだった
  • 長らく生産性向上活動をやってるサイボウズ生産性向上チームでも課題が多い点は意外だった

なかなか共感の声が多く、似たような課題を抱えている組織は自分の思ってた以上にいるんだなと思いました。

生産性とは何か、どうやって測るかが気になっている方も多い印象でした。

生産性向上チームいいな〜うちにも作りたいという方も、既にあるので参考にしたいという方もいらっしゃいました。

おわりに

ご視聴くださった皆様、コメントを寄せていただいた皆様、運営の皆様どうもありがとうございました。 思ったよりも共感の声が多かったのに驚きました。 参考にしたいという声もあってよかったです。

40 分の発表だったため不安が大きかったのですが、やってみて良かったです。

今回の発表がいろんな方の今後のご参考になれたなら幸いです。

We're hiring!

そんな生産性向上チームですが、まだまだ課題が山ほどあります。僕たちの活動に興味が湧いた方はぜひ次のリンクもご覧ください。

我々は生産性を上げることが好きな方をお待ちしております!

note.com

meety も募集中です。

meety.net


  1. 辛麺屋桝元というお店がお気に入りです。自己紹介で辛麺好きと話したところ、チャットで「辛麺好きです」と書いてくれた人もいました。辛麺好きに出会うと嬉しいですね。

  2. これまでの発表スライドは Cybozu Tech の「生産性向上チーム」タグ をご参照ください。

  3. 40 分の発表は経験がなくとても不安でしたが、チームメンバーにレビューをしてもらいつつ準備を進めたため、納得のいくスライドを作り上げることができました。いざ発表してみると 40 分はあっという間でした。

  4. サイボウズでは GitHub Enterprise Server と GitHub Enterprise Cloud の両方を利用しており、Server 利用者からの GitHub Actions を手軽に使いたいという要望が多くありました。個人でもランナーを立てることはできますが、オートスケールさせようとするとそう簡単には行きません。