2月末にAmazon Web Service(AWS)のクラウドストレージサービス、Amazon Simple Storage Service(Amazon S3)が長時間ダウンするという障害があった。
原因は、デバッグ作業中のコマンドの入力ミスだという。
ごく一部のサブシステムを切り離すはずが、この入力ミスにより想定外の規模のシステムを切り離してしまったらしい。
そこにいくつかの他の要因も加わって、異例の長時間になってしまったようである。
「過つは人の常」なので、人間(ユーザー)が関わるシステムを設計する際には大小さまざまな「起こりうるミス(ヒューマンエラー)」を想定しなければならない。
ユーザーとシステムが関わる部分であるのでまさにUIの話である。
そしてユーザーもミスをしたくてするわけではないのでその内面まで考えるべきであり、UXにも関わる話である。
今回はそのあたりを見ていきたい。
ユーザー側よりも、システム側で対策する
まず、初めに強調しておくべきなのが、ヒューマンエラーが原因で事故などが起きたときに、エラーを起こした当人に(過度な)責任を負わせてはいけない、ということである。
ヒューマンエラーやUIなどに関して詳しくない、あるいは誤解している人たちであれば「『うっかり間違える』というのはうっかりしている当人が全て悪い」と信じて疑わないかもしれない。
しかし、そのエラーはUIの設計のせいで(ほぼ)必然的に引き起こされたものかもしれないし、エラーをきちんと想定していないシステムのせいで問題が大きくなってしまったのかもしれない。
また、繰り返すが、そもそも「人間はヒューマンエラーを起こすもの」なのである。
身もフタもないが、最大の対策は「自動化できる部分は自動化するなど、人間が操作・確認すべきところを減らす」である。
人間が操作・確認せざるをえないところのヒューマンエラーへの対策としては、「ミスをしないように気をつける」ではなく、まずはエラーを起こしにくいUIを設計すべきである。
特に、同じミスが繰り返し起こるようであれば、情報デザインも含めUIでの対応は必須である。
そして、それでもヒューマンエラーはゼロにはできない。何か間違えたときや意図と違うことが起きた際に気づきやすいUIの設計や、小さなヒューマンエラーがすぐに大きな影響につながらないようなシステムの工夫、訂正やリカバリも素早くできるようなシステムの設計などを考えるべきである。
冒頭で述べたAWSの事例でも、そうした対策が取られたと伝えられている。