orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

本番システムと対峙するシステムエンジニアのあるべき論

f:id:orangeitems:20180205173202j:plain

本番システムと対峙するシステムエンジニアのあるべき論

私がある金融システムのデータセンターでインフラ系システムエンジニア(SE)を担っていたとき、ある人の発言が心に残っているので書いてみたいと思います。IT業界の若いエンジニアには、アプリケーション・インフラ関係なく役に立つ話だと思います。

 

本番システムとは

さて、本番システムというものは本当におっかないものです。

この前のやらかしたコインチェックのシステムも本番システムだし、ECサイトを運用しているシステムも本番システム。最近の本番システムはお金を扱うものも多く、その取扱いについては最新の注意が必要です。昔は人間の仕事の補助的なものだったのですが、もはやビジネスそのものになっています。例えば証券取引システムが、取引時間中に1分でも止まったら、何千万何億との金額に影響が出てしまいます。したがって、本番システムへの変更作業は、どんな現場でも、相当な注意を払って行われているものです。

例えば、ハードウェアやOS、そのうえで動くアプリケーションは24時間監視されています。エラーが出ようものなら、システム担当者へ確実に電話されます。その後、すぐに対応ではなく、まず打ち合わせを行い、対処の方向性を責任者に承認してもらいます。その後、手順書を作り、それを上役にレビューしてもらい、承認をもらって初めて作業ができます。かつ、その作業もちゃんと時間を設定し、システムを利用するオーナーの承認も得て実施します。メンテナンス、と読んでいます。

最近だと、ソーシャルゲームのメンテナンスは有名ですよね。新しいイベントやシナリオのリリースを行う際、メンテナンス時間を設けます。ここで行うのはアプリケーションのリリースですが、その枠の中でインフラも何か作業をすることもあります。定常メンテナンスではなく緊急メンテナンスなどは障害であることが多いですね。

スポンサーリンク

 

同僚と上役の議論

さて、そんな本番システムの中で働いていた時、あるシステムエンジニアが上役と議論をしていました。

「システムエンジニアは専門的な技術を持っているのだから、手順書などなくても正しい操作ができてしかるべきだ。なんでもかんでも手順書化して満足するのはおかしい。」

この言葉を、エンジニアが上役に主張していました。なお、この上役は、超怖い人で、私も手順書やレビュー、本番作業は2名体制など、カッチリしたルール信者だったので、「ああこりゃすごく怒られるな」と思って聞いていました。

ところが、この上役が「君の言っていることは正しい。ただ・・」と一旦理解を示したのです。もう10年ほど前になるのですが、この会話というのが私にとってコペルニクス的転回(物事の見方が180度変わってしまう事)でした。

 

私のあるべき論

今、私は、もちろん部下に対して本番作業に取り組む際には手順書化とレビューの実施を指示しています。準備の伴わない作業は失敗しやすいことを知っていますし、ここは厳守してしかるべきです。

でも、自分が、いざ障害対応をしようものなら、手順書無しでも作業できるスキルを持っておきたいと常々思っています。自分の基準と部下への基準が違うダブルスタンダードなのですが、この理由として3つあります。

・自分は失敗しない自信がある。それぐらいスキルがある。
・部下が失敗しても部下では責任が取れない。
・エンジニアには手順書無しでやらねければいけない場面があるのを知っている。

けっこう大きなことを言っている自覚はありますが、所詮、部下ではどうしようもない状況のときに私に回ってくるのですから、そういうときは手順書など作っている場合ではないのです。目の前が火事なのに、逃げる方法を手順書化している場合ではないのです。レビュー会を開いている場合ではないのです。

そういう困難な状況を、独力で解決するほどの卓越したスキルを持つエンジニアでありたい、と思って常に情報収集を心がけています。部下にも、将来はそうなってほしいことを伝えつつ、まだ実力が伴わないうちは、ルールをしっかり守れ、と言っています。システムエンジニアにとって、ルールとは自分を守るための道具なのです。まず自分を守るルールを駆使し実力をつけてから、「手順書などなくても正しい操作ができるスーパーエンジニア」になってほしいと、部下には告げています。

 

まとめ

若い人ほど、スーパーエンジニアにあこがれてルールを逸脱しがです。本当にそうだなあと若い人を見て思います。これは順番が逆で、まずはしっかり本番システムを安全に扱うルールを心に刻むべきだと思います。それは単なる技術的知識だけではなく、物事を安全に扱うプロセスといった他の業界でも使える知識だったりします。そのベースをしっかり身に着けてから、スーパーエンジニアになるべきです。部下にはルールを厳守させつつ、自身は、スーパーエンジニア的な判断を課したり行動する。それが正しいエンジニアとしての成長の仕方ではないかと考えます。

 

今では、あの厳しい上席も、上席に議論を仕掛けたエンジニアにも感謝をしています。あの議論が自分のベースになっているなあと思います。