感情論と政治的判断が入り混じる、不毛な「誰の責任?」論争
ソフトウェア開発の現場において、予期せぬインシデントやリリースの遅延が発生した際、当事者たちが「コト」に向かわず、「ヒト」に向かってしまう瞬間は少なくない。例えば、ある障害によって数百万円の売上が失われたとき、PMが厳しい口調で責任の所在を追及し、SREはインフラの問題がなかったこと、開発はコードレビューが通っていたこと、QAはテストシナリオに含まれていなかったことを主張し合うようなケースだ。それぞれが自己防衛に走る議論は、膨大な時間を浪費するうえに本質的な改善へつながることなく「犯人探し」で終わってしまう。
また別のケースでは、リリース期限が迫る中で負荷試験の未完了を指摘するSREに対し、売上目標を盾に「前回は大丈夫だった」という主観と政治的判断で見切り発車を強行するPM。あるいは、開発側が技術負債による障害発生の可能性を指摘したものの、PMは売上につながらないことを理由に優先度を下げ、数か月後に大障害が発生するといったケースだ。これらは「事前に対応しなかったのは誰の責任か」という、さらなる責任追及のループを生み出す。
このような悪循環が常態化する背景には、組織における「3つの欠落」が存在すると川崎氏は指摘。1つ目は感情論と主観ではなく客観的に判断できる「データ」の欠落、2つ目はリリースの実行などを客観的に判断する「基準」の欠落、そして3つ目は「心理的安全性」の欠落である。失敗が個人の責任として追及され、咎められる文化が一度醸成されてしまえば、エンジニアは守りに入り、「失敗を咎められるなら開発したくない」というマインドセットに陥ってしまう。チーム間の信頼は失われ、イノベーションが途絶え、結果として優秀な人材から順に組織を離れていくという最悪の方向へ向かっていく。
負の連鎖を断ち切るため、SREのプラクティスを組織の共通言語へ
川崎氏のチームにおいても少なからず存在していたという、PMとエンジニアの対立構造。川崎氏はエンジニアリングマネージャーとして、この健全ではない状態を打破するための解決策を模索していた。プロダクトをより良く育て、ユーザーに最大の価値を届けるという共通の目的地を持ちながら、手段の違いによって衝突してしまう。この負の状況を断ち切るために川崎氏が目を付けたのは、SREのコアプラクティスである「SLO(サービスレベル目標)」と「エラーバジェット」の導入であった。
しかし、これらを単なる開発側の監視ツールや技術指標として扱っているだけでは、組織の壁を越えることはできない。川崎氏は、これらをプロダクト開発にかかわる全員が理解し、目線を合わせるための「共通言語」として再定義することにしたのだ。
