【エンジニア向け】ロケーションフリーで暮らすことを目指して【スキルセット】
私は今、東京の仕事を新潟県長岡市からリモートワークで従事している。結果として、仕事場と生活の場を分割したロケーションフリーな暮らしを送っている。この暮らしを実現できるようになるために、相応の努力をしてきたつもりだ。
今回は私がどうやってロケーションフリーな暮らしを実現できているのか、スキルを中心とした話をしていきたい。
ロケーションフリーの前提
ロケーションフリーを成立させるために、抑えておく必要がある前提が2つ存在すると考えている。
それは以下の2点だ。
場所が固定される環境からの離脱
非同期コミュニケーションの習熟
職人を産んでしまうツールの撤廃
なお、この観点はあくまでも個人のスキルに注力して記載する。
上記の1つ1つを目標と仮定して、達成するために満たしてきたスキルを紹介したい。
場所が固定される環境からの離脱
場所が固定されてしまう要因はいくつかあるが、私が徹底的にやめたかったものは物理サーバーでの運用だ。
物理サーバーでの運用を行うメリット・デメリットには今回触れない。
あくまでもロケーションフリーな暮らしを実現するために物理サーバー運用を個人として脱却する手段を記述していく。
物理サーバーからの脱却
そもそもどうして物理サーバーから離れたかったか。
それは何かトラブルが発生した時、物理サーバーにすぐ駆けつけられないような距離まで離れることができないからだ。
商用環境を保持するサーバーが物理的なサーバーで管理されていることで、サーバールームという部屋が存在する。
そのサーバールーム内部でなければ、アクセスできないような環境もまだまだたくさんある。
私も実際にそのような仕事をさせてもらっていたこともある。
結構な頻度でトラブルは発生し実機を確認する必要もあった。しかも即対応が求められる場合が多く、サーバールームに駆け付けざるをえない場面も多くあった。
これを解決するためには、今だともうメジャーだと思うが、物理サーバーを利用しなくても商用リリースを行うことができるクラウド環境を駆使することが大事だった。
この経験から、物理サーバーを保持している以上、どうしても環境を離れることが困難になってしまい、結果的にロケーションフリーの実現が遠くなってしまう。
そして私が今目指しているのは、クラウドを前提としたサーバーを持たない運用。
つまり「サーバーレス」だ。
サーバーレス
土台クラウドが前提になるのだが、常駐しているサーバーインスタンスを全く持たない環境を構築することだ。
製品が適切に動作するタイミング以外は稼働しないように制御する思想であり、この仕組みを利用することで製品のランニングコストを削減することができる。
その上、このサーバーを持たない運用を行うことによって、実際にサーバールームに行って作業をする必要がそもそもなくなるため、場所を固定されてしまう懸念からは離脱することが可能になった。
私もこの技術を追うことで、ロケーションフリーな暮らしは近づいたと言ってよいだろう。
具体的には、Google Cloud Platform, AWS などで提供されている Cloud Functions や Cloud Endpoint, Lambda や API Gateway などのサービスを組み合わせて実現を行う。
これらの知識を身につけることで場所に固定されず、好きな地域に移住して暮らすライフスタイルを実現する1つ目の段階をクリアできた。
非同期コミュニケーションの習熟
なぜこの非同期コミュニケーションが重要なのか。
それは、オフィスでの会話でよく発生していたハイコンテキストな暗黙知識を必要とするやりとりが多く、常に一緒に同じ場所で時間を共に過ごさなければ会話が成立しないような環境からの脱却をするためである。
このような状態から脱出するために、徹底的に進めようとしていたのは、「オンライン」を駆使すること・チャットツール・リモート通話ツールを駆使することだ。
この辺りはコロナによって大きく針を進めてもらったところはあるが、個人的に意識していることもたくさんあるが、その中でも重要視しているのがローコンテキストなコミュニケーションだ。
ローコンテキストなコミュニケーション
ハイコンテキストなコミュニケーションとは逆で、誰が見ても意図が明らかである暗黙値を必要としない意思疎通方法である。
このコミュニケーション方法は、特にチャットでの意思疎通に向いているため、遠隔地でも誤解なく連携を取ることができる。
この誰が見ても一発で理解できる意思疎通は、オフライン状態よりも情報量が劣るリモート状態だったとしても、誤解を発生させずにミッションを遂行することができるため、ロケーションフリーな暮らすをする為には必ず必要になるスキルだと確信している。
遠隔地で作業していて、全く言葉が通じない・求めているものを間違えるのは、何をしているんだお前は?ということになるので、徹底的に鍛えた。
職人を産んでしまうツールの撤廃
最後は、職人を産んでしまうツールの撤廃だ。
職人を産むツールの代表格は、SVNなどの旧式のリポジトリ管理ツールだ。
これは未だに利用している環境もたくさんあると思うが、ここから脱却しないとまず上記の2つを駆使することも難しいだろう。
職人が生まれるのはなぜか
これは単に仕組み化・オートメーションにする難易度が高すぎるため、どうしてもマンパワーがかかってしまうからだ。
そして、そのマンパワーがかかるポイントを複数人でやってしまうと、無駄に時間だけがかかってしまうという点もあり、職人が生まれる。
この職人を中心としたハイコンテキストな会話もどんどん生まれるし、クラウド化をしたくてもできない仕組みのまま来ていることが多い。
職人が生まれるツールがあるなら、すぐにやめる
私ももともと職人が生まれるツールを利用していたことがあるが、すぐに離れその時は珍しかったgitという新しい技術を取り入れることにした。
gitに切り替えることで、仕組みを円滑に作ることができるようになり、運用コストが下がった。
そうすると、ハイコンテキストな会話の数も減り、クラウド化にさく時間も増えるため事態が好転することが多かったと思う。
結果的に仕組みを改善することで、ロケーションフリーな暮らしにつながっていると思う。
特にリポジトリ管理ツールは徹底的にスキルを磨いておく
プログラマはチームで動くことが主たる動きだと考えている。
そんな時にリポジトリ管理周りのトラブルを遠隔地で起こしてしまう以上にチームにとって面倒なことはない。
ここはロケーションフリーで暮らしたいエンジニアは確実に抑えておかないといけない。
チームのために。
最後に
ロケーションフリーな暮らしをするためには、スキルが絶対に必要だ。
スキルのない遠隔勤務は、チームに迷惑をかけ続けること必至。
ソロでできる仕事なら問題ないと思うが、チームで行うことが多いエンジニアなら、肝に銘じておかなければならない。
でもそれらを乗り越えた上で手に入るロケーションフリーな暮らしはとても生きやすい。おすすめだよ。
バボでした。
twitter: https://twitter.com/kinocoboy
blog: https://baboblog.com/