情報流出やシステム障害などのニュースが相次いだ2019年。なかでもよく覚えているのは、AWSの大規模なシステムトラブルです。
8月23日。空調の異常によってサーバーがダウンし、6時間にわたってさまざまなサービスが停止してしまった障害は、クラウドサービスは安全という神話を脅かす事件と騒がれました。
…怖いですね、システム障害。
システム開発に携わりながら、「最も大事なのは安全だ」と頭ではわかっているのですが、納期が迫っていたり、予算内で何とか収めようとしたりすると、セキュリティの優先順位が瞬間的に下がってしまうこともときにあります。
システムエンジニアは、常に臆病であるべきなのでしょう。
トラブルがあると、開発に携わったシステムエンジニアたちの多くが「あのときやっておけばよかった」と後悔します。
「脆弱なポイントがひとつでもあれば、事故は起こり得る」ということを常に忘れず、すべての可能性をつぶし、安全に動くシステムを創り上げるのが私たちの最大のミッションです。
妥協案に流されず、もっと考え抜いていれば。応急処置ではなく、抜本的な見直しをしていれば。テストをもう1度、やっていれば。思考停止に陥らず、あらゆる可能性を考慮し、最後まで諦めずに行動し続けるのが成功するエンジニアの共通項です。
「タイムリミットぎりぎりでバグを発見し、何とか修復してトラブルを回避できた」「これ以上遅れると納期に間に合わないというタイミングで仕様通りに動かない原因が判明し、最適解を導き出せたと」いった経験があるエンジニアは少なくないでしょう。
そしてもうひとつ、システムエンジニアには「度胸」も必要です。
失敗を認め、ダメなものはダメだといい切り、ゼロからやり直す潔さ。障害が発生してもうろたえず、適切なプロセスで原因を突き止め、集中して修復を進められる胆力と冷静さ。
他人の責任にせず、感情に流されず、事実と向き合って解決策を導き出せるかどうかで、エンジニアの評価は変わります。
「最後は度胸だ」というと、精神論に聞こえますが、プロジェクトの条件が厳しくなればなるほど、心の力量が問われる仕事ですよね。
新しい技術が続々と世に出るなかで、セキュリティのあり方も変化し、何をどこまでやれば完璧といえるのかが問われ続けます。昨年話題になったトラブルをあらためて思い起こし、システムエンジニアに必要な力について、とあらためて考えた次第であります。
2020年もがんばりましょう!