どうも、ウェブ系ウシジマくんです。
2018年4月にRubyのフリーランスエンジニアとして独立しましたが、
8月で平成最後の夏が終わったので、これまでの振り返りを行なっていきたいと思います。
これからRubyのフリーランスエンジニアを目指しているあなたにとって、参考になれば幸いです。
Rubyのフリーランスエンジニアとして関わった最初の案件
僕がRubyのフリーランスエンジニアとして関わった最初の案件は、大手百貨店のECサイトにおける機能改修案件でした。
支給されたMacBookProに胸をおどらせ、ドキドキしながら、最初のタスクとして割り振られた環境構築をしていました。
社内用Wikiに書かれていた手順を参考にしながら、環境構築自体は半日で終了。
「なかなか順調じゃない!?」と調子に乗っていた矢先、次に振られたタスクで地獄をみることに。。。
簡単なはずのバグ改修が、全然終わらなかった
環境構築の次に振られたタスクは、バグ改修。
そのプロジェクトでは、RubyonRails1本でECサイトを構築していました。
改修していくにあたって、新しくブランチを切り、いざ実装しようとしましたが、
なかなか思うように進捗が進みませんでした。
そこで、打開しようと、エディタを変えてみることに。
今まではAtomを使っていたのですが、有料エディタであるRubymineに変更。
すると、デバッグに費やす時間が今までの半分になり、効率よく開発を進めることができるように。
休日も基礎からRubyを勉強し直したりと、プログラミングの基礎体力を欠かさなかった結果、なんとか契約期間満了まで勤め上げることができました。
現場にアサインされてから実力を見極められる期間は2週間
フリーランスで契約延長かどうかを採用元が判断する期間は約2週間。
タスクを期間内に終わらせるのは大前提だけど、プラスアルファで自分がどのように考えて実装したのかを相手に伝えるのも、判断材料の一つなんじゃないかと思う。
説明が相手に伝わりづらいなら、上手い人の特徴を研究しないとね。
— ウェブ系ウシジマくん@リモート専門エンジニア (@web_ushizima) August 3, 2018
上記のツイートにもある通り、単月更新のプロジェクトにフリーランスとして参画した場合、大体2週間くらいで延長するかどうかを見極められます。
つまり、その2週間の間に相手の期待値を超える成果を出すことができなければ、契約延長されることはなく、単月で終了となる可能性が高いですね。
期待値を下回る行動としては、
- プログラミングの基礎レベルでの質問が多い
- タスクの進捗報告がない、または遅い
- PullRequestを出した時に、訂正のレビューコメントが多い
これらが挙げられますね。
フリーランスエンジニアとしてRubyの案件に参画して感じたこと
正社員エンジニアの時には気がつかなかったのですが、フリーランスとして参画すると、社内の余計な会議などに出席しなくてもいいので、目の前のタスクに集中できるのは大きなメリットでしたね。
ただ、その分、日々の進捗報告で自分だけタスクの進み具合が良くないと、孤立感や焦りを感じたことがありました。
それでも、自分が出したPull Requestがマージされて開発ブランチに取り込まれる度に、レベルアップしている感覚は非常に心地いいものですね。
また、常に「自分はプロジェクト内にいるエンジニアたちよりもレベルが低い」と思いながら必死になってみると、ものすごい勢いでスキルアップしていくのは確かです。
どんなに事前準備したところで、自分より想定外の自体や、わからないことはあるもの。
短期間で成長したいと思うのであれば、自分よりも一段上のレベルの案件に挑戦することが大事ですね。
フリーランスのRubyエンジニアとして求められるスキル
僕の経験上、RubyおよびRailsのスキル感に関しては、少なくとも
- ArrayやHashの値の取得方法
- each,mapなどのイテレータの使い方
- RSpecのテスト
これらについては、基礎レベルはマスターした方がいいでしょう。
具体的にはProgateやドットインストールではなく、Udemyなどのオンライン講座で解説されているようなレベル感がいいかと。
Rubyのフリーランスエンジニアは需要が高いので案件数が多い
フリーランスデビューしたはいいものの、「毎回契約が延長されず、単月で終了してしまう」と落ち込んでいるあなた。
確かに、今まで関わった案件では、うまくいくことがなかったのかもしれません。
ですが、現在においては、Rubyのフリーランスエンジニアを募集している企業や案件は星の数ほどあります。
もしかしたら、毎回単月で終了してしまう理由には、人間関係が上手くいかずにパフォーマンスが発揮できないことが原因かもしれません。
いつも利用しているエージェントを変えるだけでも、あなたにマッチした案件が見つかるかもしれませんので、落ち込まずに探してみましょう。
まとめ
実務経験1年でRubyのフリーランスエンジニアとして独立した僕ですが、現在はリモートワークの案件だけに絞ってプロジェクトに参加しています。
通勤時間がない分、一日のスケジュールをよりコントロールしやすくなったのは、大きなメリットですね。
フリーランスとしては、まだまだヒヨッコですが、日々レベルアップし、今後はより大きな案件に携わっていきたいと思います。