フリーランスとしてSREエンジニアを目指すために必要なスキルとは?
2024年7月29日
はじめに
こんにちは。フリーランスエンジニアの西家と申します。
現在、海外でノマドをしながら、SRE案件に参画しています。
海外ノマドに興味がある方は、以前書かせていただいたこちらの記事をご覧ください。
ずっと夢見ていた海外ノマドを実現するためにやってきたこと
SRE案件にフリーランスとして1年程参画しておりますので、フリーランスとしてSREという仕事をしていく上で、必要なスキルを私なりにまとめました。
技術の進歩によって、SREを取り巻く環境が時々刻々と変化していますが、本当の意味で必要なことは変わっていないと感じています。是非、最後までお読みいただければと思います。
過去のインタビュー記事でもSREについて話をしています。是非、こちらも合わせてご覧ください。
【前編】エンジニアの課題解決がしたい!フリーランス×SREエンジニアの魅力
【後編】緊急ではないけど重要なことを見つける〜SREエンジニアが必要なスキルとは〜
執筆者:フリーランスエンジニア 西家和生
大学院で農学修士を取得後、新卒で大手生花店に入社。労働環境、給与、働き方に疑問を感じ、海外からノマドワークをすることを夢見て、エンジニアに転職。スクールに通わず、独学でプログラミングを学び、SES企業に転職。2年強POSレジのシステム開発をした後、自社開発メガベンチャーに入社。求人メディアの新規開発案件に参画し、アプリケーションエンジニアからインフラエンジニアに転向。2年弱で退職し、半年間日本でフリーランスをした後、ヨーロッパ、北米、オセアニアからノマドワークを実現。現在は、日本企業から案件を受けて、イギリスで稼働。
専門性の高い領域で成果を出す能力
SREエンジニアに求められるスキルは多様化しています。SREというポジションは少し前であれば、インフラエンジニア、DevOpsエンジニアと呼ばれていましたし、最近だとプラットフォームエンジニアと呼ばれていたりします。SREの求人であっても、企業によって求める領域が違うように感じています。一般的にSREというロールで仕事をする上で必要な技術的スキルは「インフラ、コーディング、ネットワーク、クラウド、セキュリティ、データベース、CI/CD、監視、IaC、Git」あたりだと考えています。
これを見て「こんなに必要なのか」と悲観しないでほしいです。フリーランスとして、仕事をしていくのであれば、この中のいくつかのスキルがあれば、案件を受注し、契約を更新し続けることが可能です。
私はSREエンジニアになる前、バックエンドエンジニアとして、開発業務を行っていました。
複数の言語、様々な規模感での開発を行っていたため、前述している技術的スキルの中で「コーディング、CI/CD、IaC、Git」のようなアプリケーションとの境界領域を強みとしています。
正直に言うと、「ネットワーク、セキュリティ」に対する経験がまだまだ浅く、少し苦手意識があります。それでも、SREエンジニアのフリーランスとして、案件を継続的に契約できています。
SREは、システム開発全体の中で非常に重要なポジションです。システムの安定稼働、運用、障害対応に対して、責任を持つことが多いからです。なので、中規模以上の会社であれば、SREというポジションをフリーランスだけに任せるという選択をあまりしません。小さい会社であれば、CTOや開発者の正社員がSREというポジションを掛け持ちしているケースを多く見かけます。
フリーランスとして参画する多くの案件というのは、中規模以上の会社であり、複数人SREエンジニアが存在している可能性が高いと私は考えています。つまり、自分が強みと感じている領域以外を補ってくれる他の方がチーム内にいるということです。
強みとしている領域で成果を出し続ける必要がありますが、あらゆる領域を網羅していないとフリーランスとして食っていけないというのは幻想です。自分の強みを発揮しつつ、他の周辺スキルを仕事をしていく中でキャッチアップすればいいと私は考えています。
緊急ではなく重要なタスクを見極める能力
『7つの習慣』の著者であるスティーブン・リチャーズ・コヴィー氏が提唱した時間管理のマトリックスの第2領域がSREのタスクとして本来やるべきことだと考えています。
時間管理のマトリックスの第2領域とは、重要度は高いが、緊急ではないとされている事象です。
SREのタスクでいうと、CI/CD自動化、IaC化、脆弱性対策、コスト削減、トイルの撲滅などが当てはまると考えています。これらのタスクはすぐに解決しなくても、システムが停止することはないということです。
日々仕事をしていると、重要度も緊急度も高い第1領域のタスク、重要度は低いが緊急度が高い第3領域のタスクにリソースが割かれてしまいがちです。既存環境と同様のインフラ環境を1ヶ月以内に構築してほしい、インフラのスペックをあげてほしいといった取り急ぎ対応するタスクが多く、リファクタリングや効率化といったことにリソースを避けない現場をいくつか見てきました。
もちろん、顧客からの要望に応えることは非常に重要ですが、障害が起きてから行動するのではなく、障害が起きにくい仕組みを作るという意識を持って仕事をする方が重要だと考えています。
第2領域のタスクは、重要であると判断されにくいです。なぜなら、短期的に見るとビジネス上の価値が発生しにくいことが多いからです。SREに関する書籍、勉強会、考察記事を参考にすれば、参画プロジェクトにおける第2領域の洗い出しは比較的容易にできます。課題感自体を認識していることはありますが、どうやって実行するかを悩んでいるチームは多いです。
ではどうすれば、SREとして第2領域のタスクに取り組むことができるでしょうか。
私は、障害対応をきっかけに経営層、開発責任者を説得しています。システム障害になってしまったら、何らかの予防策を関係者に説明する義務が発生する場合が多いです。タスク自体に価値があるのですが、システム障害を未然に防ぐという付加価値をつけることでよりタスクを推進しやすい状況になっていきます。このようにして、SREとしてのタスクを遂行しやすい環境を作っていくことが重要です。
アントワーヌ・ド・サン=テグジュペリ氏の『星の王子さま』に出てくるキツネの名台詞「大切なことは目には見えない」は、SREとして仕事をしていく上でも当てはまります。日常生活でも大切なことは目に見えないように、仕事でも目に見えません。緊急ではなく重要なタスクを適切に見極め、解決まで持っていき、それを成果として伝えることがフリーランスとして重要だと考えています。
他部署を巻き込んで、タスクを進めることができるスキル
どんな仕事でも、自チーム内で完結できるタスクとそうでないタスクがあります。SREとして仕事をしていると、自チームでは完結せず、他チーム、他部署、他社と合意形成しながらタスクを進めることが多いと感じます。
例えば、クラウドインフラのランニングコスト削減というタスクがあったとします。このタスクを完遂するため、現状リソースがどのような用途で使われているか整理し、開発者、予算管理者と調整してタスクを進める必要があります。また、SLA、SLO、SLIを定義するというタスクがあったとします。こちらの場合、サービス責任者、マーケティングチームなどとサービスの安定稼働とは何かを定義するところから始める必要があります。
この時、自チーム以外の方と信頼関係を構築しておくとタスクを円滑に進めることができます。信頼関係を構築する手段は人それぞれだと思いますが、私はオフラインのイベントに参加したり、雑談をするチャンネルがあれば雑談してみたりすることで、少しずつ話しやすい関係を構築するようにしています。
フリーランスなので、自チームに留まるタスクだけをしていたいと思う方もいるかもしれませんが、フリーランスという一人社長をやっているからこそ、他チームを巻き込んで仕事をすることを強く意識した方がいいと私は考えています。
多くのフリーランスエンジニアは、準委任契約をして、案件に参画しています。契約を継続してもらうために成果を出しつつ、案件先で重要な人物と認識してもらうことが大切です。他チームを巻き込んだタスクを完遂し、存在感をアピールすることで契約継続の可能性を上げることができます。
まとめ
生成AI、Web3などの出現により、SREを含むIT業界を取り巻く環境は変化し続けています。私自身、SREとしての仕事への向き合い方がここ1年で変わったように感じています。技術は進歩しているにも関わらず、世の中の課題が山のようにあります。課題を解決して成果を出すというフリーランスとしての姿勢は、企業から引き続き求められています。
私はSREという仕事をとても気に入っています。実際のユーザーから距離が遠く、泥臭く地味な仕事が多いですが、自分の得意領域を活かしつつ、第2領域の課題を関係者とともに解決できた時、大きな喜びを感じます。
この記事を読んで、SREとして挑戦するフリーランスの方が一人でも増えたら大変嬉しく思います。
関連記事