これは SmartHR Advent Calendar 2021 の10日目に書かれた記事です。今は 12月10日の42時31分なので、ギリギリ滑り込んだ形になってしまいましたね。

スクラムの中心で進捗を叫んだけもの

僕の所属するチームは2021年はじめから働き方にWorking Out Loud (WOL) という考え方を取り入れて実践してきた。あれこれ試行錯誤を重ねつつ1年弱やってきて一定の成果を実感できているので、なんとなくまとめておく。

Working Out Loudとは

Working Out Loudとはなにか…という解説は Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog に分かりやすくまとめられているので、ここでは割愛したい。

要点だけを抜き出すと、以下のような感じである。

  • あくまでコンセプトである
    • ルールではない
    • 方法論に関する言及もない
  • 以下のような考え方で働くことを志向する
    • 作業が途中であってもチームメンバーの目の触れる場所にガンガンアウトプットする
    • 作業で詰まったらとにかく尋ねる

極めて大雑把に要約すると 「分かることも分かんないこともけたたましく叫びながら働く」という感じ の概念である (ほんとか?)

チームにおける実践

チームメンバーが実際に取り組んでいることを書き出してみる。完全にできていることも、そうでないこともあると思う。

ステータスの表明

まずは「今から何をするのか」という作業ステータスの共有である。具体的には以下のような内容が該当する。

  • このチケットを取ります
  • Pull Requestをレビューします
  • お昼食べてきます
  • MTGに行ってきます
  • 買い物行ってきます
  • 頭痛いので寝てます

大きく分けると「作業の内容を伝えるもの」と「チーム業務からの一時離脱を伝えるもの」とがあり、いずれにしても、「あの人いま何してるんだろう」と思えば大体は現在のステータスがわかるような状況を作ろうとしている。

進捗の開示

作業の切りがよいところで「これぐらい進んだ」ということ、あるいは「あんまり進んでいない」ということを共有する。例は以下の通り。

  • パフォーマンス改善タスクに着手したところ手元のベンチマークで速度がn倍になった!
  • Pull Request出せそう・出せた!

特にこれ以上書くことがないので余談だけど、進捗の開示という部分に関連して僕のチームはPull Requestを以下のようなルールで運用している。

  • 作業途中でもとりあえずDraftでPull Requestを作る
  • レビュー前ならrebase・force pushしてOK

これで突然家が火事になっても大丈夫!みたいな観点もなくはないんだけど、どちらかというと「どこまで進んでいるか」「どういう方針で実装を進めているか」が常に見えるところにある…という状態に対して価値を感じているところが大きい。このGit運用は以下の記事に影響を受けて採用したものです。

Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々

詰まっている部分の相談

手が止まってしまったときには積極的に相談する。割とよく見かけるのは以下のような内容である。

  • ここってこの仕様でいいんだっけ
  • こういう関数なかったっけ
  • あのドキュメントどこだっけ
  • 実装方針どれがいいだろう

こうして書いてみると当たり前のような内容だけど、進みが悪いことに焦って一人で状況を打破することに固執してしまったり、様々なチャンネルからのSlackメンションに即レスしているうち気づけば何も告げずチーム外業務をしていたとか、そういう「自分が詰まっていることに気づかないまま時間が過ぎる」状況は割と誰にでも起きる。

逐次共有を前提とすることで、そうした自分が置かれている状況に対して自覚的な心理状態を保ちやすくなっているという側面はあるんじゃないかと思う。

実感している効果

透明性が向上する

当たり前なんだけど、他メンバーが今何をしているのか分かるようになった。これはスクラムチームにおいてメンバー全員でスプリントタスクを消化していくためにより効率的な動きは何か…ということを考えるうえで非常に重要な情報なので、結果として全員がチームの動きを考える動きが活発化したように感じる。

たとえば、あるメンバーが困難なタスクに突き当たって詰まっているとき、他メンバーは「困難なタスクに取り組んでいること」も「詰まっている」ことも知っているので、「ペアプロしましょうか」とか「今出てるPull Requestのレビューはやっておくので実装に集中してください」的な発言が自然に飛び交うようになった。

やはり完全な実践が難しく、ステータス表明が滞ってしまうメンバーもいた (いる) のだけど、仮にそうなっても「自分のチームはWOLを実践している」ということを合意しておけば「他メンバーの進捗は分からないより分かったほうが良い」という価値基準が共有された状態を作れるので、割と機械的に「今どんな感じですか?」と尋ねることが可能になっていると思う。逆に、そうした合意がないまま突然「今どう?」「進んでる?」と聞くのはと共有不足を責めているようなニュアンスにならないよう必要以上に気を遣ってしまうことが多く、割と疲れやすい (今そうした気遣いを全くしていないわけではないけども)。

助け合いの心が生まれる

前項の微妙に重複するけど、メンバー同士の知見共有・助け合いが活発に起きていると感じる。

Slackは何も考えずに使うと発言量 (投稿数) が偏りがちで、チームが「ずっと喋ってる人」と「反応する人」に分断されてしまう…というのは割とあるあるなんじゃないかと思うんだけど、WOLはある意味で強制的に全員を「ずっと喋ってる人」の側で押し上げる効果がある。「時間が経っても反応がもらえないと寂しい」とか「間違い・懸念だけでなく『問題なさそう』であることも伝えてもらえないと不安」みたいな気持ちは、案外その立場にならないと気付けなかったりする。

僕のチームでは、誰かの相談に対して即レスし早押しクイズ的にその回答速度・精度を競い合うような文化が生まれたりした。これは相談した人からも振り返りで「ありがたかった」という声が出ていたりして、とても素晴らしいことだと思う。

知見が拡散する

進捗の共有が活発化することで、人による粒度の差こそあれ作業の途中経過がある程度見えるようになった。開発現場で超人的な生産性を持つ人がやりがちな「ジェバンニが一晩でやってくれました」的なムーブは減った気がする。勝手に知見共有にモチベーションを見出してくれたメンバーもいたし、1on1で僕から「こういう感じでガンガン発信してくださいよ!」って頼んだケースもあった。

僕を筆頭としたスキル的な弱者としても、チームの強い人が仕事する過程を横から見たり、自分のアウトプットに対してリアルタイムにFBを受けたりした結果、物事を進めるうえでの考え方や前提知識をインプットする機会が積極的に起きるようになったと思う。「今からこれやるけど見たい人おる?」という発信もあれば、「このあたり分かってないから次こういう作業する人いたら見せて!」という要望もある。

特に今年の年末調整チームはスクラムの採用によってフロントエンド・バックエンドの横断やQA・UXライティング業務の実践といったクロスファンクショナル化に注力していたということもあり、こうした知識的な断絶が減少したことは結構大きな意味を持っていると思う。

苦労したこと

アウトプットの粒度を適切に保つ

「何してる?」「人間生活www」みたいなことを言う奴が小学校のクラスに一人はいたけど、自分が今何をしているかということについて適切な粒度・タイミングでアウトプットを行うというのは中々難しい。「違う、そうじゃない」みたいなのは結構ある。

僕のチームでも最初期には「Slackの他のチャンネル見てます」とか「このスレの返信を考えてます」とか「トイレ行ってきます」というような、特に共有せず個人的活動として割り切ってもよさそうなものが沢山流れてきていたりした。それで大きな問題が起きたりはしなかったけど、当時は完全に全員手探りという雰囲気で、実践にあたるメンバーの中にも多少の混乱があったんじゃないかと思う。

そして、これは時間によって解決された。特にチーム全体として合意を取り付けたことはないけど、各々が皆の進捗報告を見たり、反応が返ってくるもの・こないものがあることに気付いたりしているうちに、自然と「大体これぐらいの内容をこれぐらいのペースでアウトプットするとよさそうだぞ」ということを体得したように思う。

臆せずメンションする

誰かに何かを教えてほしいという旨の共有なのに、誰にもメンションをつけずにポツリと「呟き」「独り言」のような形でアウトプットしてしまう…という現象もよく起きていた。振り返りや1on1の場で当事者に話を聞いてみると、一様に口を揃えて「皆の注意・時間を奪うのが申し訳なくて」「メンションをつけるほどの内容かどうか判断がつかなくて」というような理由を挙げており、他メンバーに対する過度の配慮・遠慮が要因のようだった。

そうした行動に対する「気付かせる工夫をしないまま誰かが気付いて助けてくれるのをじっと待っているのはプロの態度ではない」という意見は確かに正しいんだけど、今後に向けた行動変容を促せるかという観点でいうと微妙だし、そもそもこれを個人の精神性の問題として片付けてしまっていいのかどうかはそれなりに考える必要があると思う。

僕たちのチームは、この問題を「気付いてもらうための努力を躊躇させるチームに問題がある」と考えることにした。つまり、この問題は「メンションされて煩わしいという事態は存在しない」「メンションを躊躇って大切な連絡を見逃すことこそリスクとして考える」という合意形成が取れていない・伝えられていないチームの課題であるということになる。

実際の業務ではメンションなしの連絡に対して横から入ってメンション入れまくるとか、振り返りで繰り返し課題に上げるとか、1on1でフィードバックするとか、とにかく様々な接点で「僕たちチームではこうやっていこうな」という前提を伝え続けるという泥臭い活動によってこのあたりはクリアになってきたし、現時点ではそれしかやりようがないと思う。

この先また新たなメンバーが入れば同じことが起きるのかもしれないけど、その時も同様に粘り強く期待値を伝え続けることになるんじゃないだろうか。

実績だけでなくリスクも共有する

「やります」「できました」という内容を共有するのはとても簡単ですが、「できてません」に関してはその限りではない。そして、チームにとって大きな問題に気づくきっかけになるのは大体が後者だ。この共有が滞り (あるいは周囲の検知が遅れて)、チーム全体としてスプリントの見積もりを再調整するという判断が遅延してしまうという事態も頻発した。

要因はいくつか考えられるけど、確からしいものとしては「心理的安全性の問題」と「リスクの見積もり精度の問題」という2つが思い浮かぶ。前者はメンバーが「今ここでタスクの進みが悪いことが明るみに出ると自分が無能だと思われるのではないか」という恐れを抱いていること、後者は「まあ何とかなるだろう」と思いながらズルズル作業を続けてしまっている状態のことで、僕のチームの場合は振り返りで色々と話をした結果、前者っぽいことがわかった。

これも前項と同様に合意形成・期待値調整の問題で、「作業の遅れは個人の責任ではなくチームの課題」「チームとして対策を考えるために素早い共有が必要である」ということをチームメンバー全員が念頭に置く必要がある。自分を振り返ってみても2021年の前半はずっとこういう話を頻繁にしていたように感じる。

ちなみに、僕のチームは知識も経験も豊富で優秀なメンバーが多いので「成果はあなたのものだけど、リスクはチームのもの」ぐらいまで割り切った極論を伝えていたけど、たとえば相手が新卒入社して間もなかったりジュニアレベルのメンバーであればそのままの伝え方はできないかもしれないと思う。このあたりは「当事者意識を持って進める」と「一人で考えても分からなかったら聞く」の間の微妙なバランスをどう取るか…という話なので、僕もきちんと相手を見ながら言葉を選んでいきたい。

課題と展望

作業見積もりを共有する

個人単位で振り返るタイミングを作るためにも、今から作業を始めるというタイミングにおいては「何時間で終わる予定です」「何時までにここまで進めます」という内容をセットで共有するのが望ましい。やってくれているメンバーも居るんだけど、チーム全体として実践できているかというと、そんなことはなさそうな気がする。

これは非常に高度な取り組みで、ある程度やろうとしていることの全容を把握し、不確実性に伴うバッファを見積もり、かつ、その見積もり作業そのものには長い時間をかけてはいけない…というのは、「明日からお願いします」と言われてすぐにできるものではない。そこに見積もり精度の観点を加えれば尚更だと思う。

ということで、今のところ僕はメンバー全員にこうした作業見積もりの共有を期待する、という仕組みを作っていない。というか、そもそもメンバーが自律的に見積もり・実績の計測を行いつつ精度を高めていける仕組みを思いついていない。これは今後取り組んでいくべき課題だと思う。

個々人の作業スタイルを尊重する

全員が凄まじいペースで共有を続けている以上、Slackに流れる情報量は膨大になる。鳴り続ける通知に気を配り続けることで疲労感を覚え、作業中はSlack通知をOFFにしているというメンバーもいた 1

現状チームとしては上記のような対応を容認している (認める・認めないの話ではないような気もする) んだけど、これによって生じるコミュニケーション参加率の偏りについて、どんな問題が生じるかを見積もる、どんな対策を講じるか考える…といった取り組みはできていない。

ここから先はチームの総意ではなく個人的な考えだけど、こうしたストレス耐性や集中力の差異に端を発するコミュニケーションスタンスの多様性は絶対に否定したくない。つまり、「チーム全員で仕事をしているのだから通知ぐらいはONにしろ」はナシにしたい。言われたら嫌なので…。

実際、こうした距離感の近いコミュニケーションは人によって合う・合わないが大きく分かれる。僕たちのチームはコミュニケーション活発化の観点から「勤務中はDiscordのボイスチャンネルに常駐する」というスタイルで働いてみたことがあるけど、どうしても馴染めず速攻で没になったりした。息苦しいよね、なんか。

個々人が自分なりに集中できるスタイルで働きつつ、チーム全体の連携も取りつつ、というのを両立できるのが理想なんだけど、そうした問題を一発で解決できる仕組みは現状思いついてないし、多分存在しないだろうなとも思う。なので、これは個別の事例についてチームで話し合う必要があるし、逆に言えば「個別の事例について話し合えるチームで居続ける」必要があると思う。

おわり

Working Out Loud、僕も正直そこまで深い理解はできていない部分は多くて、チームでの実践に関しても「おすすめですよ!みなさんも是非!」というほどやり込めているとは思っていない。けど、チームがコミュニケーションを改善していく方向性として正しい…という感覚をかなり強く感じるし、これからも続けていきたいと思う。

やってみたい!やってみた!やってみてるけどお前のをLは間違ってる!などなど、ご意見をお待ちしています。おわり。


  1. ちなみに今は「通知音だけオフ」という運用で快適に過ごせているため通知自体を切ってはいないらしい。気付けないもんな…。 ↩︎