「インフラエンジニアとして24時間働く」と覚悟を決めた僕へ
はじめに
今回は「インフラエンジニアは夜勤や休日出勤が多いのか」「夜勤や休日出勤を避けるにはどうすれば良いのか」ということについて解説します。
この頃の君はもうすっかりインフラエンジニアになる決意を固め、やる気に満ち溢れていることと思う。それどころか、インフラエンジニアに関して調べる中で「インフラエンジニアは夜勤、休日出勤が多い」という記事を多く見つけ、「24時間365日働きます!!」というような決意さえ持っていることと思う。
それは立派なことだ。立派なことだが、その決意はもしかしたら不要かもしれない。
インフラエンジニアは夜勤が多い!?
Googleの検索窓に「インフラエンジニア」と打ち込むと、予測変換には「きつい」「やめとけ」などの言葉が表示されます。そのようなサイトを見てみると、その理由として「夜勤がある」ことや「休日出勤が多い」ことなどが挙げられています。
このようなネガティブな意見を見て「私には無理かもしれない…」と諦めてしまう方もいらっしゃるのではないでしょうか。それはもったいないことだなあと感じます。僕はこれまでインフラエンジニアをやってきましたが、夜勤を経験したのは2日だけ。休日出勤は10日くらいでしょうか。
「なんだ、やっぱりあるんじゃん」という声が聞こえてきそうですが、でも4年でそのくらいの回数なら僕的には許容範囲だと思います。少なくとも「インフラエンジニアがきつい」ということの根拠にできるほどの回数ではないと思うのです。
ちなみに、夜勤を経験したのは入社後1年目のことでした。普段とは違う雰囲気の夜のオフィスで同期や先輩たちと作業をするのは新鮮で、どこかワクワクしながら作業したことを覚えています。そのオフィスのトイレはドアを開けると正面の壁に姿見が設置してあり、突然現れた人間に飛び退くくらい驚いた思い出があります。もちろんそれは鏡に映る自分の姿だったのですが。
休日出勤を経験したのは2年目の冬のことです。新システムを既存システムに入れ替える作業で、ユーザーがいないタイミングで行なわなければならないため、休日に作業するという理由でした。作業日はクリスマスも終わった年末だったかと思います。システムの入れ替え作業の途中で問題が発生し、結局年が明けてからも作業しました。世間が祝日ムードのときに働くのは初めてのことで、これは結構大変な経験でした。
残業についても気になるところでしょう。僕の個人的な経験ですが、最も残業が多かった月で60時間ほど残業をしました。1ヶ月が20日とすると1日あたり3時間ほどの残業です。ただ、この月はスケジュールがタイトだったため特別多かった月で、その他の月は大体0〜20時間ほどの残業時間で収まっています。
会社全体で見ても、残業時間の平均は月20時間ほどのようです。これを少ないと見るか多いと見るかは意見の分かれそうなところですが、参考までに。僕としては残業時間が40時間を超えると結構しんどくなります。
なぜ「インフラエンジニアは夜勤が多い」と言われるのか
では、なぜ「インフラエンジニアは夜勤が多い」と言われるのでしょうか。それは、運用フェーズに関わる人達は夜勤が多くなりがちだからです。
インフラのシステムは、ざっくり分けて「要件定義」→「設計」→「構築」→「運用」という4つのフェーズで作り上げます(細かく言うと設計を「基本設計」と「詳細設計」に分けたり、構築の後に「テスト」のフェーズが存在したりしますが、今回はざっくり4つとしています)。それぞれのフェーズでしっかり成果物を固めて次のフェーズに進むことで、前のフェーズに戻ることなく1回でシステムを作り上げることができます。
システムを作るためのフェーズは、1つの会社や1つのチームが要件定義から運用までを担当するわけではなく、それぞれのフェーズをそれぞれのチームが担当することが多いです。図の上の方のフェーズを「上流工程」、下の方のフェーズを「下流工程」と呼ぶこともあります。
個人的なイメージで言うと、図の下の方に向かうほど夜勤や休日出勤は増える傾向にあると考えています。
要件定義と設計は、ざっくり言うとシステムをどのように作るかを考えるフェーズです。夜間や休日の作業は発生しにくく、カレンダー通りに勤務します。
システムの構築後には既存システムと切り替えますが、その際に一瞬システムが使えなくなる時間が発生します。構築フェーズでは、このことを考慮して、あるいは何か問題が発生したときにユーザーに影響が出ないように、ユーザーがシステムを使用していない時間帯に切り替え作業を実施します。そのため夜間や休日に作業をする必要があります。ただ、切り替え作業は構築フェーズの最後に数回発生する程度なので、それほど頻度は高くないと言えます。
運用フェーズでは、システムが停止しないよう日々システムの状態を確認したり、異常を早期に発見できるよう監視したりします。運用するシステムが24時間365日稼働させる必要があるシステムだった場合、そのシステムを監視する人間も24時間365日必要になります。そのようなシステムの運用では、多くの場合インフラエンジニアがシフト制でシステムを監視するため、他のフェーズよりも夜勤や休日出勤が多くなる傾向にあります。
また、未経験からインフラエンジニアになる人が最初に携わる多くの案件が運用業務であることからも、「インフラエンジニア=夜勤や休日出勤が多い」という説明がなされている理由ではないかと思います。
上流工程に携わるために
では、夜勤や休日出勤を避けるために、用件定義や設計などの上流工程に携わるにはどうすれば良いのでしょうか。その前に、まず言っておきたいことは「下流工程が悪い」というわけではありません。各工程で勉強になることはたくさんあります。例えば、構築フェーズでは実際にサーバ機器などを触る時間が圧倒的に多いです。「とにかく手を動かしていたい」という方は、下流工程のほうが向いている、といったこともあるかもしれません。ここでは僕の個人的な願望として「夜勤や休日出勤を避けたい」という思いで上流工程に携わることを目指す方法を考えてみます。
先に「各フェーズはそれぞれのチームが担当する」と書きましたが、僕が見てきた限り、大手SIerが上流工程を担当し、中小企業のSIerが下流工程を担当することが多いです(これにはIT業界の構造が大きく関わっていますが、それはまた別の機会に)。そのため、上流工程に携わる一番の近道は大手SIerに就職することですが、それはそれでなかなか難しいので、設計フェーズも担当するような中小SIerも視野に入れると良いと思います。
その企業が主にどのフェーズを担当しているのかを求人情報などで見抜くのは難しいので、面接などで「入社後は設計業務に携われますか」などと聞いてみると良いでしょう。僕がこれまでに十数人の面接を担当した中で聞かれたことはありませんが、「IT業界のことよく調べてるんだな」と思うことはあっても、心証が悪くなったり不利になることはないです。
また、入社後も上司との面談時などに「設計がやりたい」と定期的に伝えておくと、設計案件にアサインされる確率も上がるかと思います。
おわりに
今回は「インフラエンジニアは夜勤や休日出勤が多いのか?」ということについて解説しました。個人的な経験では、どちらもネット上で言われているほど多くはないと思うので、これまで「夜勤はイヤだなあ」と敬遠していた方も、安心してインフラエンジニアを目指していただければと思います。