皆さんこんにちは、SoLA2です。今回はフリーランスのエンジニアに求められるものにフォーカスを当てて話をしていきたいと思います。

まず皆さんが想像する敏腕エンジニアってどのようなものでしょう?私が学生のころ思い描いていたものは、どんな難題でもクリアできてしまうスーパープログラマー的な存在でした。正直今でも憧れている節があります。

しかしながら、実際にそのような敏腕エンジニアばかりが求められているのかというと、そうではありません。現場では、どの分野も情報系の学部卒レベルというパッとしないようなエンジニアが求められることもあるのです。

とびぬけたエンジニアでなくても大丈夫な理由

結論から話してしまうと、結局のところ、仕事ではあらゆるリスクを取り除いて進められていくので、そういった尖った知識がなくても大丈夫なようにしているのです。つまり滅多なことが発生しない限りは、そこそこの知識で片付いてしまうケースばかりなのです。

むしろお客様の要望は多岐にわたります。リスクの高い要望や、費用の掛かりそうな要望は要件定義段階でカットされますが、通過してくるバリエーション豊かで簡単な要望に応えられる幅の広い知識が求められるようになります。

理想は深く広い知識を持ったエンジニアに担当してもらうことですが、費用面でそれがかなわないことがほとんどです。となると、深い知識は持っているが、その分野を少し外れるとダメな人か、浅い知識しかないが幅広い分野をカバーできる人のどちらかを採用することになります。

とびぬけるタイミング

とはいえずっと器用貧乏なエンジニアでいると、ずっと無難な案件しか受注することができません。面白い案件に呼ばれるエンジニアはやはりとびぬけたアピールポイントがあります。では、どのタイミングで方向転換すべきなのでしょうか?

可能ならそこそこ使えるレベルの技術が3つ以上あるときです。そこそこ使えるというのは、情報系の大卒程度の知識で、実務経験はあまりないレベルです。

とびぬけるために必要な事

上でも軽く触れていますが、とびぬけているエンジニアとそうでないエンジニアの違いは、知識量と実務経験です。フリーランスのエンジニアは、会社に属しているエンジニアに比べ、案件のバリエーションで非常に不利です。

知識ばかりが先行し、必要な実務経験が不足している頭でっかちなフリーランスエンジニアが多いのはそれが原因です。これを解消するためには実務経験を積むほかありません。

会社員であれば会社というネームバリューで案件を取ってきて新人を育成させることができますが、フリーランスでこれをするのは難しいかもしれません。ですので少し工夫をしましょう。

例えばいきなり案件を受注するのではなく、先輩エンジニアの案件に補佐役で参加するとか、得意先にトライアルとして無料対応を提案してみるとか、こちらから外注してフローを学ぶとか、何かしらかの手段で経験を積んでいけるように動いてみましょう。

ここで重要になるのは、具体的な手段ではなく、チャンスを逃さないように常に意識して行動する事です。あらゆることがチャンスにつながります。それを一つ一つ落とさないようにすることが、重要です。

まとめ

初めに話したように、生きていくために必要な仕事を受けるためであれば、とびぬけたエンジニアになる必要はありません。むしろ知識の幅を広くすることを心がけましょう。そのほうが、とびぬけたエンジニアになるよりはるかに簡単で、労力がかかりません。

エンジニアとしてより面白い案件を受注したいというのであれば、やはりとびぬけていく必要があります。その場合は、その分野に対する深い知識と、積み上げた実務経験がものを言います。

特にとびぬける前のフリーランスエンジニアは、実務経験を積みにくい環境といえるので、常にチャンスを掴もうとする意識を念頭に置いて行動することが重要となります。