プログラマがリモートワークするためには、場所の制約のない仕事を選択し、担えるようにならねば。
プログラマとして、場所にとらわれない働き方を体現するためにはどうすればいいかを日々自問自答しながら働いている。
そもそも、プログラマが場所にとらわれない働き方をするために必要な最低条件は何か。
携わる仕事に、働く場所を制約する要素がないことだと思う。
現在自分はインフラエンジニアとして、会社に置いてあるオンプレミスの開発環境を管理しているし、会社でしか使えない端末の管理もしている。つまり、今の状況だと、どこででも働ける状態になっておらず、物理資産の管理という制約を抱えているという事だ。
では、仮に「よし、じゃあそんな管理業務とは縁を切り、場所の制約のない仕事をしよう」と意気込み、上長に自分の役割やポジション変更を相談、あるいは転職を志すとしよう。
そこで目指すのは場所にとらわれず出来るプログラマとしての仕事となるが、必要となるスキルはどんなものが必要だろうか。
- どこからでも開発チーム間でコミュニケーションしながら開発を進められる
- 説明がほぼ不要なキレイでわかりやすいコードが書ける
- 自身のタスクの進捗、時間管理が出来る
上記が思いつく。では、それが実現できる環境は?
- 検証環境、ステージング環境、本番環境含む全ての環境を物理資産として所有せず、どこからでもリモート操作・管理できる
だと考えている。思いつくのはクラウド環境。セキュリティを考慮したオンプレミス環境では、必ず物理資産を所有することになるため、その働き方が可能かは疑問。
上記が実現できる業界やシステムの種類・規模は限られてくると思う。(そもそも機密情報を外部から参照することを禁止している会社の案件実施は不可能だし)
ただ、それが実現出来る案件に出会えれば、あとは推進するだけのスキルが自分にあるかどうかが問題となる。
開発環境をリモートで操作、管理できるだけではあまり市場から求められていないように思う。Infrastructure as a Codeのように、環境構築を自動化して開発をより迅速化する潮流ができているため、コーディング力は必須。
またそれだけでなく、フロントエンドの開発にも携われないと、価値は出しきれない。
物理資産の管理作業をしないと割り切る以上、価値を出せる範囲は限られるし、要求されるスキルは高くなる。
今の自分にはスキルが足りない。だから、既にリモートワークを体現している会社であるソニックガーデン株式会社のトライアウトを受講している。
Rubyの書き方、Railsアプリを環境構築からデプロイまで行えるかなど、自分が今身に付けなければと考えている要素がまとまっており、取り組みやすい。WebブラウザからRuby環境をすぐに構築、操作できるCloud9 - Your development environment, in the cloudを使ってトライアウトを進めている。
これから1日に1時間程度と時間を決めて、コツコツ取り組んでいく。