ミスをした人が謝り、「次から気をつけます」と約束する。それなのに、また同じ失敗が起きる。そんな職場では、何が見落とされているのでしょうか。『おい、とりあえず終わらせろ』を書いたエンジニアのnwiizo(ぬうぃぞう)氏が、自身の経験から伝えます。(構成/ダイヤモンド社書籍編集局)

おい、とりあえず終わらせろPhoto: Adobe Stock

「自分が悪い」で止まると、次の失敗は防げない

 提出したものがダメだったとき、落ち込むかもしれません。

 でもそこで思い出してほしいのが、「反省」と「省察」は違うということです。

 省察は、そこから「何が起きたか」「なぜそうなったか」「次にどうするか」と検証につなげます。「何が見えていなかったか」を問うのです。

 しかし、「自分がダメだった」で止まる反省はそこで思考が止まります。

 実際、私が本番でデータベースが落ちた夜もまさにそうでした。

 原因を、「デプロイ前の確認を怠った自分が悪い」と片付けるのは簡単だったけど、「何が見えていなかったか」と問い直したら、別のものが浮かんだのです。

 確認に使うステージング環境には、本番の100分の1のデータしか入っていなくて、つまり誰がどれだけ丁寧に確認しても、その負荷の問題は再現しなかった。

 原因は「私の不注意」ではなく、「本番を再現しない確認環境」の方にありました。「私が悪い」で止めていたら、次は別の誰かが、同じ環境で、同じ事故を起こしてしまう。

優れたチームは「誰が悪かったか」を問わない

 エンジニアの世界には、「ポストモーテム(事後検証)」という文化があります。

 障害が起きた後、関係者で集まって何が起きたかを振り返る。

 このとき優れたチームは「誰が悪かったか」を問いません。「どういう状況なら、誰がやっても同じことが起きたか」を問う。

 これをブレームレス(責めない)ポストモーテムと呼びます。

 犯人を捜すと、人は情報を隠す。隠された情報は、次の障害をまた呼ぶ。

 省察が「何が見えていなかったか」を問うのは、この構造と同じです。

きつい指摘を受けたら、15分離れてみる

 個人を責めずに構造を見るには、感情と行動の間に「間(ま)」が要ります。

 コードレビューで「この設計、根本から変えた方がいい」と書かれた日、すぐにSlackを閉じてコーヒーを淹れに行きました。

 戻ったのは15分後です。画面に向かったとき、さっきまで「全否定された」と感じていた気持ちが、「どの部分が問題なのか」という問いに変わっていた。

 感情と行動の間に15分の「間」を置いただけで、レビュアーの言葉が脅威ではなく情報として読めるようになったのです。

 必要なのは「落ち込まないこと」ではなく、「落ち込んだ後に何を見るかを決めておくこと」です。

 先に感情と行動の間に「間」を入れる。

 次に、その出来事を短く記録する。最後に、「見えていなかった前提」を考える。

 この順番を守れば、きついフィードバックも燃料に変えやすくなります。