スクラムにおける既存職種のあり方について考えてみた(後編)
はじめに
前編、中編では既存職種のスクラムにおける役割を考えてみました。後編ではスクラムマスターはどのような人が適しているかという考察をします。
スクラムマスターに求められるもの
まず最初に開発者としての立場から、スクラムマスターに一番お願いしたいことについて書きます。それは障害・妨害の除去(Impediment removal)です。スクラムチームが仕事をする上で障害となっていることを見極めて、それをスクラムチーム一丸となって取り組めるように働きかける、それがスクラムマスターの一番の責務だと考えています。
なぜなら、自分は一昨年末に(スクラムをやっていない)チームを抜けましたが、どうやってもうまくいかなかったのは、開発者の役割を超えた問題解決です。開発者内で解決できる問題、例えば「たまに通らないテストがある」というのは開発内の問題として根気よく時間をかければ解決できました。しかし開発者の役割を超えた問題は手が負えませんでした。
その理由は2つあります。1つ目の理由は開発者が「片手間」で行うには大きすぎるからです。例えばアーキテクチャの見直しといった「重要だが緊急ではない」大きな変更は到底1スプリントで終わりません。技術的には漸進的に進めることも可能でしょう。しかし多くの場合、緊急なものを優先してしまいがちです。「重要だが緊急ではない」ものを進めるためには必ずこれはやり切ると宣言してチーム一丸となって取り組む必要があります。
もう1つの理由は、開発者の立場で仕事をしていると、開発者としての自分ができることにフォーカスしがちだからです。ボトルネックが開発者にない場合、開発者内で改善しても全体のスループットは上がりません。ボトルネックを解消するためには、全体を俯瞰的に見れる人が必要です。
この2つの問題を解消するためには、既存の役割と独立した、独自の役割が必要です。それがスクラムマスターです。スクラムマスターはチームの中にいながら、「岡目八目」ということわざが示すように、第三者視点で見ることができます。
そしてスクラムイベントはその障害を見つけ出しやすい形に作られています。例えばデイリースクラムは15分と決まっていますが、これは15分というタイムボックスを定めることで「毎回15分を超えるので進め方に問題があるのではないか」「毎回10分未満で終わるので形式的なものになっているのではないか」といった問題点を見つけやすくする効果があります。
スクラムマスターは人を活かし、持続可能なチームを作る
そのようなスクラムマスターはどのような人がふさわしいでしょうか。自分は職種を問わず、何より人を大切にする、共感力の高い人にこそなって欲しいと考えています。
プロダクトを持続可能にするためには、プロダクトの成長に合わせてアーキテクチャを追従させ、品質を高く保つ必要があります。その作業を行うのはチームメンバーです。そのためにはチームが持続可能でなければいけません。書籍「エクストリームプログラミング」(以下「XP本」)には「チームの継続」について次のように書かれています。チームメンバーがコロコロ変わるのも、属人化してしまいその人がいなくなると成り立たなくなるのも良くありません。
そして開発者もプロダクトオーナーも無理しがちな人たちです。無理が祟ってチームが持続できなくなっては意味がありません。持続できないやり方を続けているなら、それを止めて持続できるやり方に変えて、チームを守るのがスクラムマスターの役割です。そしてもちろんその責務を果たすためにはスクラムマスター自身も持続できる働き方をする必要があります。
このような持続可能なチームを作るためにはどうすればいいでしょうか。XP本にはそのためのヒントがいくつか載っています。
いきいきとした仕事(Energized Work)
XPの主要プラクティスの1つである「いきいきとした仕事」は以前は「週40時間」として知られたプラクティスです。XP本ではより本質的な「無理なく続けられる時間だけ働くこと」という表現になっています。
ゆとり(Slack)
同じくXPの主要プラクティスに、ゆとり(Slack)というプラクティスがあります。Slackと言えばチャットツールという時代になりましたが、英語では「緩み」「ゆとり」「余裕」といった意味があります。
「組織パターン」の重要人物
中編で紹介した書籍「組織パターン」にもいくつか興味深い役割があります。中編で登場した「門番」の他に、「パトロン」「人気者」「偉人」「賢い愚者」と言ったロールが特に重要とされています。スクラムマスター自身が行うこともあれば、適した人を見つけることもあるでしょう。
パトロン
パトロンはマネージャーを説明するためのロールですが、マネージャーはチームを守るためにあると明確に説明されています。このロールの説明もスクラムマスターの障害・妨害の除去(Impediment removal)そのものと言っていいでしょう。
人気者
人気者はコミュニケーションのハブとなる非公式のロールです。自分もこのような人に助けられたことが何度もあります。
偉人
数多くの役割をこなしていた人に対して、その人にちなんだ名誉あるロールを作るパターンです。偉人は多くのことをこなす一方で、属人化してしまい、その人が引退してしまうことで組織がバラバラになってしまう危険性があります。それを緩和します。
賢い愚者
最後に賢い愚者というロールです(自分はタロットカードの「0.愚者」を想像しました)。スクラムマスターはときにはこの「不快な真実」をチームに伝える必要があります。
おわりに
3回に分けて、XP本を通した既存職種のスクラムにおける役割を考察してみました。スクラムを実際に導入する際はスクラムについて書かれた書籍を読むことが多いと思いますが、本記事ではあえてスクラム以外の書籍、古典とも言える「エクストリームプログラミング」「組織パターン」を取り上げてみました。
スクラムガイド 2020の内容はわずか13ページで、スクラムの本質とそれを実現するための最低限の要素が凝縮されています。読みやすくなった分、よく読まないと間違って解釈される危険性もあります。
一番多い誤解はスクラムを「開発プロセス」と考えることです。実際はスクラムガイドに書かれている通り「フレームワーク」です。開発者ならフレームワークという単語に馴染みがあると思いますが、プログラムの枠組みを決めるのがフレームワーク、プログラムから使うのがライブラリです。
これをスクラムに置き換えると次のようになります。スクラムというフレームワークがあり、チームのやり方、例えばデイリースクラムのやり方を自分たちで決めます。その際、定評のあるプラクティス、例えばXPのプラクティスを自分たちで選んで採用できます。
そして、フレームワークには明確な目的があります。スクラムガイドの先頭には次のようにスクラムの定義が記載されています。
「次の環境を促進するためにスクラムマスターを必要とする」、これを言い換えると、この環境を阻害するものを取り除くのがスクラムマスターの責務です。
この構造を理解しておかないと、スクラムを「開発プロセス」と捉えてしまい、スクラムイベントを形式的なものとし、開発者をコントロールしてしまう、従来のプロジェクトマネジメントのやり方に戻ってしまいます。それではスクラムでないのはもちろん、アジャイル開発とすら言えなくなります。アジャイルソフトウェア開発宣言に「プロセスやツールよりも個人と対話を」とあるのを思い出してください。
おわりのおわりに
「おわりに」が長くなってしまいました。改めて書き直します。
なぜアジャイル開発が必要なのか、それは人間性の回復のためです。
アジャイル開発以前のソフトウェア開発手法は人間性を無視してきました。人の強みをなくし、人のつながりをなくし、人を交換可能な部品として扱ってきました。
アジャイル開発では人間性を尊重します。人の弱さを認めつつ、人々が対話し、協力し合うことで人々に力を与えます。それを支える前提が「リスペクト(敬意、尊重)」です。まずありのままの相手に敬意を持ち、尊重する、それだけは忘れないでください。