この記事は「ひとりでカンファレンスふりかえりo0h Advent Calendar 2021」のday-7です。

ひとりでカンファレンスふりかえりo0h Advent Calendar 2021 - Adventar

今日振り返るのは、「何が障害を減らすのか」です。 PHP Conference Japan 2021のCfPに応募しました。Regular session (25 mins)の枠になります。

何が障害を減らすのか

概要

システムやアプリケーションの開発に欠陥の混入やオペレーション等のエラーは付き物で、完全になくすことはかなり難しいと思います。あるいは、「内側は完璧なソフトウェア」であっても、それが依存するハードウェアや外部システムについてまで守り切ることは不可能です。 しかし、根幹的な要因が何であれ「障害」「故障」は避けたいものです。そのためには、もはや確率論によるものだし、幸運のパラメータも絡んできます。・・が、「出来る努力を常日頃からすべき」という事に異論がある人はいないと思います。

日頃からの努力、取り組み方によって「欠陥(バグ)を減らす・防ぐ」ことが可能なはずです。そのためのプラクティスやツールも多数あります。ただし、それが行き過ぎると「変更が怖い」「レビューを受けるのが怖い」「リリース恐怖症」に至るようなプレッシャーも高めるかも知れません。 開発者である我々の仕事は、「ソフトウェアを進化させること」「それによって顧客に価値を提供すること」にあるはずです。「変更が恐ろしい」となっては、本末転倒ですらあります。

個人的に、それらより重要なのは「バグ、不具合があったら直ぐに気付けるようにすること」「気付いた時には放っておかないこと」「起きてしまった障害に勇気を持って立ち向かう、そこからの学びの効果を上げること」だと考えています。そのために、「障害と向き合えるチーム」を組成することが必要です。

具体的に「エラーを減らす」ための方法については、別プロポーザルでも取り上げました

エラーと向き合うアプリケーション運用

本トークでは「組織の運用」「マインドの設定」といったテーマに重きをおいたものになります。

この辺りの話を共有していけると良いな、と。

動機

「障害は減らそうと思えば減らせるんだ」という気持ちがあります。減らしたいですよね。その上で、「減らせる・防げるんだから」という自信がつくことで、言葉を選ばずに言えば「もし何かあってもどうにかできる」という理解・認識が生まれ、逆説的に「リリースなんて怖くない」になれるはずです。

どうも「システム障害は不幸なもの、起きてしまったら巻き込まれる厄介なもの」というムードを感じる事があります。ある側面で正しいと思うのですが、そこから「どう防ぐか」に意識を向けたいものです。「起きてしまう不幸」ではなく、限界はあれど「しっかり自分たちがコントロールしていくんだ」という強気は必要だと思います。