ペペロンチーノ街道

無知を晒す

新卒入社としてサイボウズ生産性向上チームにジョインしました

新卒入社としてサイボウズ生産性向上チームにジョインしました

はじめに

2022年4月にサイボウズに新卒入社した @r4mimu です。 新卒史上2人目の生産性向上チームへのジョインした2022年の自分の心境を書き残しておきます。

この記事は Cybozu Advent Calendar 2022 の 2 日目の記事です 🎅

生産性向上チームとは

自分の所属する生産性向上チームは主に以下のような業務を行っています。

  • チームを横断した開発効率を高める基盤の整備
  • 開発チームの業務の自動化や効率化の支援
  • 最新技術のキャッチアップ・共有
    • 毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催
    • 勉強会の内容をまとめたものは Zenn で公開されています

一言でいうと「サイボウズの開発者が辛いと思っている部分を最高にしていく」活動をしている少し珍しい(?)チームです。

さらに詳しくはこちらの登壇資料を御覧ください。

また、 Cybozu Advent Calendar 2022 の 1 日目は自分と同じ生産性向上チームの @miyajan さんが生産性向上チームで構築・運用しているセルフホストランナーについて解説してくれていますので、生産性向上チームの活動を具体的に知りたい方は是非御覧ください。

チームにジョイン!(7月)

約1か月の新卒入社の研修と約2か月のエンジニア研修・チーム体験を終えた後、希望通り生産性向上チームに配属されました。 エンジニア研修については Cybozu Inside Out の記事 に詳細が公開されています。

自分が生産性向上チームを希望した理由としては、

だったと記憶しています。

生産性向上チームでは、普段のタスクをモブプログラミングで進めています。具体的には、1人のドライバーが画面共有をして、ナビゲーター(他の1,2人のメンバー)と議論しながら作業をします。 モブプログラミングはある程度チームに慣れているメンバー同士で行えば、認識齟齬の防止や属人性の解消に繋がり効果的です。 しかし、自分のようなジョインしたての迷える子羊の場合、ドライバーだとナビゲーターに言われるままの操り人形、ナビゲーターだと特に発言しない地蔵と化していました。

また、生産性向上チーム特有の幅広い技術領域とドメインもなんもわからない感に拍車をかけていました。 というのは、GitHub セルフホストランナーのタスクをしていたと思ったらすぐに CircleCI Server のタスクにも対応しないといけなくなったり、はたまたその途中で他チームからの依頼が舞い込んできたり、技術と業務のコンテキストスイッチがすごいです。 この頃はなんも分からん、と毎日思っていた気がします。毎日午前中の「探求タイム」で前日に分からなかったことをキャッチアップしていました。

インターン生がきた(9月)

9月にはインターンを2ターム行いました。

生産性向上チームでは、インターン生に取り組んでもらうタスクを別途用意せず、普段のタスクの中からインターン生に選んでもらい、モブ形式でタスクを進めました。 そのため、チームにジョインしたての自分はインターン生をがっつりリードしたりメンタリングは出来なさそうでしたが、それでも、ナビゲーターとして極力アドバイスしたり、インターン生の質問には自分から答えようと意識しました。 すると、このインターンのおかげで質問に答えたり、人に教えると自分の理解が捗ることを月並みですが実感しました。

ふと振り返ってみると、分からない状態を脱するためにインプットをして、そのインプットのせいで更に分からない・気になることが増えていくという悪循環に陥っていたなと気が付きました。 目的はタスクを解決することであって、タスクに必要な知識を隅々まで知ることではありません。そこで、アウトプットベースでインプットする方向に変えていきました。

この取り組みの一例として、インターンの第1ターム終了後の振り返りにおいて、オンボーディング資料が更に充実しているといいよね、と意見が出ました。 そこで、自分が次のインターン生を受け入れるまでの1週間の間にオンボーディング資料を用意することにしました。 インターン生向けのオンボーディング資料なので、社内ドメイン知識について共通のバックグラウンドがありません。そのような人にも理解できるような資料を短期間で作成するという目的を持ったインプットをしました。 すると、必要な情報を考えながら取捨選択していくので、ドメイン知識や情報の結びつきが明確になり自分の理解も捗りました。

といっても、自分のアウトプットが正確である自信はありませんでした。 そこで、進捗やアウトプットを小出しにして他のメンバーに共有して、フィードバックを細かく貰うように心がけました。

この経験で

  1. 必要な情報をインプットをする
  2. アウトプットを出す
  3. フィードバックをもらう
  4. フィードバックをもとに必要な情報を更新する
  5. 1へ戻る

というフローが自分に合っているなと気が付けました。 アウトプットがあれば何かしらコメントを貰ったりコミュニケーションが生まれます。どんなにだめでもアウトプットを出せないことが一番まずいと思っています。

ちなみに、インターン生が参加記ブログを書いてくれました。ありがとうございます!!(多分楽しんでくれています)

人が少ない(10月~)

少しずつできることが増えてきて、もりもり頑張るぞと思っていましたが、新規チームの活動に移るメンバーやしばらく兼務先にフルコミットするメンバーのためチームの人数が半分になりました。 人数が減ったため、自分が意思決定する場面も少しずつ遭遇するようになりました。格好つけて言えば責任ややりがいがあるとも言えますが、やはりまだまだ怖さがあります。 はやく一人前になりたいものです。

生産性向上チームのいいところ

個人的に感じている生産性向上チームのいいところをいくつか考えてみました。

いいところ

  • あらゆる活動を定期的に振り返り、改善アクションをすぐに実施する
    • イテレーションごとにプロジェクトの進捗を振り返ることは、どこのチームでも見られる取り組みだと思いますが、採用活動やチーム内1on1なども振り返りを行っています。 このときに出た問題に対する対応はすぐに話し合い、改善活動が実施されるプロセスの速さが印象的です。
  • 探求タイムと実践導入の検討
    • 毎日午前中に「探求タイム」を設けて、各々がタスクを進めたり、技術のキャッチアップを自由にできるという時間があります。業務時間内に業務で利用する技術をキャッチアップできるのですごく助かっています。
    • また、前述の Productivity Weekly という勉強会を行った後、チーム内で「Productivity Weekly で出た技術から導入できるものを検討する会」を行っています。これにより、新しい技術に詳しくなりつつ、既存の利用技術の理解も深まります。学んだ知識や新しい技術は使ってこそだと思うので、個人的に良いなと思う取り組みです。
  • モブでも個人でもタスクを行える
    • モブプログラミングは強い人からすると効率が悪くなるという意見もありますが、生産性向上チームでは一人でできそうなタスクは個人で巻き取ってやっておきましたというのもヨシ、普段のモブプログラミングで業務を進めていくのもヨシという雰囲気があります。
  • メンバーがおもしろい
    • そして皆さん強いので頼れる

おわりに

一丁前なことを書きましたが、技術力・ドメイン知識・お仕事力どれをとってもまだまだ足りないと感じる毎日です。 なにか1つ自信を持って取り組めるものを作って、そこから少しずつ領域を広げて行けたらなと思っています。

全体的に自分が大きく何か貢献した・成し遂げたというものではなく、一歩一歩地道にやってますという内容でした。

来年以降もチームの皆さんに助けられつつチーム・プロダクト・会社に自分の価値を還元していけるように精進します。