フリーランスになった理由
はじめまして、フリーランスとしてRubyエンジニアをしている大倉雅史(@okuramasafumi)です。Kaigi on RailsというRailsをメインにした技術カンファレンスのチーフオーガナイザーを務めたり、『マスタリングVim』という技術書の翻訳をしたりしています。
▲VimConf 2019
この記事では、私がフリーランスとして活動する上で意識していることをご紹介させていただきたいと思います。
そもそも、フリーランスとして働き始めたきっかけは、体調などの関係で稼働時間を調整したいと考えたからでした。実際に現在は、案件を複数持ちつつ、トータルでの稼働時間は抑えることができています。
しかし、フリーランスとして時短で働こうと思った際には、満たしておいた方が良い条件があります。それは『バイネーム』で仕事をもらうということです。
バイネームとは
「誰々さんだからお願いしたい」というように、個人名を指定されて案件をもらえることを『バイネーム』と呼ぶことにしたいと思います。反対の状態(属性で仕事をもらうこと)に名前はありませんが、いわゆるエージェントなどを使って仕事をもらう状態が該当すると思います。
バイネームのメリット
バイネームで案件をもらえるということは、直契約になっている可能性が高いです。実際、私がこれまでバイネームでもらってきた案件はすべて直契約でした。これにより、様々な交渉の余地が生まれ、もちろん単価も上がりやすくなります。
一方で、エージェントを経由するとと、特に稼働条件面での交渉が難しくなる恐れがあります。これでは、『時短で働きたい』というフリーランスの強みが実現されなくなってしまうのです。
実際、2016年に一度エージェント経由で案件獲得を試みたのですが、結局週5でオフィスに出勤していたので、金銭面以外は会社員とあまり変わりませんでした。
現在は単価交渉をした上で、時短かつリモートワークで働けているので、フリーランスのメリットを享受することができていると思っています。
▲イベント登壇時の写真「TamaRuby会議01」
バイネームで案件をもらうために
では、バイネームで案件をもらうためには何が必要なのでしょうか。
最初に結論をまとめると、専門性や強みを持ち、それを多くの人に知ってもらうことが重要だと考えています。
というのも、企業は「誰々さんは何々が得意だからお願いしよう」というようにその人の強みに惹かれて案件を依頼するからです。逆に、「その人のことはよくわからないけど、案件を依頼しよう」となることは、フリーランスの単価からいっても考えにくいでしょう。
専門領域を持つ
そもそも、専門領域といっても大げさなものではなく、要するに「強み」を持つのが重要です。
ここで大事なことは、基本的に強みは『好き』から生まれるということです。「好きこそものの上手なれ」と昔から言われていますが、嫌々何かを勉強しているのでは、好きでやっている人に対して勝ち目がないと言っても過言ではありません。
これまでの仕事で経験してきたことの中で、何かしらハマったことがある人は、それを伸ばしていけば問題ないでしょう。
具体例としては、
- テスティング
- リファクタリング
- パフォーマンス
といったことが挙げられます。フリーランスを目指す多くの人は、数年の業務経験があるはずなので、その経験を磨いていくのがオススメです。
専門領域:大倉の場合
私の場合はRubyやRailsが好きで、使い続けたいという想いがあります。そして、それが強みの源泉になっています。
私はRSpecというテスティングフレームワークに非常に興味があり、Qiitaに記事を書いたりテスト戦略について発表したりしました。技術発表をする際は、頭を整理するための準備を丁寧に行う必要があります。その過程は、強みを磨くだけでなく、結果的に多くの人に知ってもらえることになったので、一挙両得でした。
そしてRubyの比較的コアな挙動(`instance_exec`など)についても、手元で様々なコードを実際に動かし、理解を深めてきました。
また、『捨てコード』を書きなぐるのは、言語やフレームワークに関する知見を深める上でとても有効だと感じています。私はRuby自体に関してのこだわりが強く、高じてGrow.rbというコミュニティを自分で立ち上げ、Ruby自体を深堀りすることまでしてしまいました。
多くの人とつながりを持つ
▲RailsGirlsTokyo 11
案件につながるルートを事前に把握することは難しいため、バイネームで案件を獲得するためには、多くの人とつながりを持つことが重要です。
予想外のところから案件に繋がることもよくあるので、なるべく多くの人とつながりを持つように意識したほうがよいでしょう。例えば、勉強会やコミュニティに参加したら、懇親会にも参加してみると深い人間関係を構築しやすくなります。
ただし、つながりを持つことと自分を売り込むことは別です。セールストークをしすぎると印象が悪くなることもあるので、注意が必要です。
つながり:大倉の場合
私のベースになっているのは、技術コミュニティでの活動です。2019年に2回目のフリーランスになる前から、各所で登壇含めた活動を行ってきたのですが、フリーランスになってからはさらに活動が活発になり、2019年だけで15回近くの登壇をしました(内容の重複なし)。
▲Rubyコミュニティ「Grow.rb」
これによって、多くの人に私の存在と知識を組として認知してもらえたのではないかと思います。
といっても、コミュニティを通じて人に知ってもらえたのは結果論で、活動の理由は『単に楽しかったから』という理由に尽きます。
また、コミュニティでの活動と並行して、2018年頃には個人的にメンタリングを行っていました。これは、ご飯をおごってもらう代わりに相談に乗るというカジュアルな活動でしたが、メンタリングの相手が東証一部上場企業に未経験から就職するなど、一定の成果を上げました。
そして、ここで得た人間関係が自分自身の案件にも繋がりました。この活動を始めたきっかけは思いつきで、「もうしばらくエンジニアやっているし、誰かの相談くらい乗れるかな」ぐらいの軽い気持ちでした。
Rubyのトレンドから考える今後のフリーランス事情
ここから少し今後のフリーランス事情を考えてみようと思います。
まず第一に、「RubyやRailsというフレームワークに限定したとき、新規案件が急増することはあまりないだろう」ということを頭に入れておく必要があります。
数年前までは、Webアプリケーションの第一候補がRailsだったのですが、2020年時点ではFirebaseなどの選択肢が増えたことにより、Railsを選択する案件は減っています。しかし、数が減ったとはいえど、新規案件はまだ数多く存在しています。
また、新規案件にアサインされるエンジニアの練度は、相対的に低い印象です。特にスタートアップ企業においては、高単価なエンジニアをアサインする費用を捻出できないことが多いでしょう。
一方で、既存案件については、Railsから他言語にリプレースするケースはそれほど多くないでしょう。非常に大きくなったアプリケーションに関してはマイクロサービスアーキテクチャへの移行が行われることがありますが、Rails自体を使わなくなることは稀なようです。
つまり、私の見立ては、Railsは既存案件中心の市場になるのではないかということです。このような市場においては、先程から述べている専門性が非常に大きな役割を果たします。既存案件、すなわち成熟したアプリケーションからは特定のニーズ(例えばリファクタリング)が強く発生するからです。
言い換えると、バイネームで仕事が取れる(専門性を持つ)Railsエンジニアになることが、安泰なエンジニア生活を送る秘訣になると思います。
まとめ
ここまで書いてきて自分自身感じていることは、技術登壇や技術コミュニティ参加という趣味を通じて仕事上の強みを得られるフリーランスエンジニアというのは、非常に恵まれた職業だということです。
私の場合は、「稼働時間が少ない→コミュニティでの活動を増やせる→理想に近い条件の案件が取れる→稼働時間を増やさなくて済む」という好循環を実現できているのがポイントです。
そして、「収入を増やしたい」「稼働時間を調整したい」といったそれぞれの目的に応じた働き方を実現できるのが、フリーランスエンジニアの魅力だと思います。柔軟な働き方を求めている方にフリーランスという働き方はおすすめです。