フリーランス
フリーランス
「年数」だけじゃない フリーランスエンジニアにおけるスキルの見せ方
フリーランスエンジニアはその仕事の性質上、初めて会うクライアントに対して自身のスキルを正確に理解してもらい、それを踏まえて労働条件や報酬などの交渉をする必要があります。
その際、「自身のスキル」を伝えるために最もよく使われる指標が、「PHP3年以上」、「Ruby on Rails3年以上」などの「経験年数」なのではないかと思います。これはフリーランスエンジニアが職務経歴を伝える手段としても、クライアントがフリーランスエンジニアを募集する際の条件としても利用されます。
しかし、ソフトウェア開発のスキルというのは必ずしも年数で決まるものではありません。より品質の高いソフトウェアを目指して、常にスキルアップを実践した人の3年間と、どこかで見つけたコードのコピペでとりあえず動かして満足してきた人の3年間が同じはずがないことは言うまでもありません。
しかしここで難しいのは、そのスキルの差を面接や面談で正確に伝えるのは極めて難しいということです。数十分や数時間という限られた時間の中で、自身がどの程度の知見と経験を持っていて、どの程度の深い考察ができて、どれだけの成果をあげられるかを言葉で説明することは、コミュニケーションに自身のある人でも難しいでしょう。
そこでこの記事では、フリーランスエンジニアがクライアントに対して「自身のスキルを正確に理解してもらう」ための方法について考えます。それによって、自分を正当に評価し、適切な信頼関係の中で一緒に働けるクライアントを見つける方法を考えてみましょう。
自分のスキルを見せる3つの方法
初対面のクライアントに対してフリーランスエンジニアが自身のスキルを伝える方法として、最も効果的なのが以下の3つだと考えています。
- GitHubで自分の成果を可視化する
- 知見やアイデアを技術ブログとして公開する
- 勉強会で登壇する
これらはどれも事前の設備投資を必要とせず、自分の意思と行動ひとつで実現できることも特徴です。
ここからは、この3つの方法をひとつひとつ詳しく見ていきましょう。
GitHubで自分の成果を可視化する
フリーランスエンジニアが自身のスキルを最も効果的に伝える手段が「自分が書いたソースコードを見せる」ことです。ソースコードを見れば、その人がどのような技術に興味があって、どの程度の知識や経験を持っていて、どのような思想で何を優先して開発しているのかが具体的に見えてくるためです。
しかしここで問題になるのが守秘義務です。フリーランスエンジニアが「仕事で」書いてきたソースコードは、たいていの場合において他者に見せることができません。そのため、仕事で出した成果を次のクライアントに直接見せることは通常不可能といっても過言ではありません。
そこで、「ソースコードを見せる」ためのソフトウェアを個人的に開発する方法が現実的といえます。
こういうと、「いやー、とはいってもアイデアもないし、自分だけのアプリなんて作れないよ」と思われる方もいらっしゃるかもしれませんが、ここで開発するものは何も「独自のアイデアで作ったまったく新しいアプリ」である必要はありません。すでにリリースされている何かのサービスと同じ見た目、同じ機能を持ったサービスを自分なりに実装してみて、そのソースコードを公開するだけでも十分効果があるでしょう。
あくまで目的は「自分の書いたソースコードを見せる」ことです。ここではサービスそのものの質や事業性などは二の次です。実際にそのアプリを流行らそうと思う必要もありません。
ソフトウェアは外見が同じでも、中のソースコードまで同じにすることは不可能です。同じものを作っても、そこには開発者のプログラミングのスキルがはっきりと反映されるのがソフトウェア開発。題材はなんでもよく、「自分で作る」ことが大事であると認識するとよいでしょう。
また、GitHubを活用したスキルのアピール方法は上記のソフトウェア開発だけではありません。
「OSS活動」の呼び方で知られている通り、世界にはソースコードごと公開されたフレームワークやライブラリが無数に存在します。それらは多くの場合、機能追加や不具合修正のために、世界中の開発者が参加できるようになっています。
基本的にOSSとして公開されているプロダクトは片手間で、かつ無償で開発やメンテナンスがされている場合が多く、開発者自身にとっても最優先で対応することが難しい場合がほとんどです。そのため、常に誰かの助けを必要としています。それを利用してみましょう。
OSSにコミットするためには、もちろんいくつものハードルが存在します。
そのプロダクトのソースコードを読んで、設計や仕組みを理解し、開発者とコミュニケーションをとって必要な機能や修正点を整理。それを自分がコーディングして実現しなければなりません。その一連の流れは、実際に仕事でソフトウェア開発をする場合と同じであるといっても過言ではないでしょう。
言い方を変えると、その一連の行動ができることを見せられれば、「ソフトウェア開発者として、仕事でも活躍ができる」ことが十分に証明できるといえるでしょう。
しかるべき人とコミュニケーションをとって要件を整理し、実際に手を動かしてそれを実現するプロセスはほとんどの現場に存在し、それができるフリーランスエンジニアをクライアントは探しています。
自分ひとりで好きなようにソフトウェア開発するやり方も「0からソフトウェアを作り上げる力がある」アピールにはなりますが、一方でOSSにコミットする行為は「ユーザーの要求や開発者の意図を理解して、一緒にプロダクトを作り上げる」ことができるアピールになり得ます。ぜひやってみるといいでしょう。
知見やアイデアを技術ブログとして公開する
自分が書いたソースコードを見せるのは、スキルを証明する一番効果的な方法ではありますが、一方でソースコードからエンジニアのスキルを見抜くには相応の時間的、人的なコストが発生するのも事実です。
そのため、もっと短時間で効率的に自身のスキルを見せるための手段として、「文章にまとめる」という手段も有効です。具体的には、QiitaやZennといった技術ブログサイトや自分のブログに知見を書いて公開する、という手法です。
自分の知見や意見を文章にまとめることで、それを読んだクライアントは、フリーランスエンジニア本人と直接会話する場を設ける前に、またソースコードを読み解くための前提知識として、その人の考え方や理解度、趣向や思想などを理解できるようになります。
Web上ですぐに読める形でまとめておけば、興味を持ってくれたクライアントに対して「私のスキルについて、詳しくはこちらを参照してください」とそのURLを共有するだけで話を進められるようになります。逆にこのようなアウトプットがなければ、同じ内容を面談や面接といった限られた時間の中で伝えなければならなくなります。しかし、自分の理解や考え方をそのような短時間で伝え切ることは難しいです。
技術ブログは、自身が興味を持ったこと、経験して得た知見、学習した内容を好きな構成で、好きな数だけ技術記事という形でアウトプットしておけば、必要なときにさっとそれをクライアントに共有して、自分のスキルを詳しく正確に把握してもらえるようになるでしょう。
勉強会で登壇する
エンジニアの勉強会には多くの場合、ひとりあたり5分~10分間で自分の知見や経験を発表できる「LT」(Lightning Talks)の場が用意されます。勉強会によっては、LTが主目的の場合もあるでしょう。これに登壇することも、自身のスキルを見せるためのとてもよい手段になり得ます。
前述のソースコードやブログと違って、LTはリアルタイムで直接のコミュニケーションが発生します。自分が作ったスライドで自分の言葉で発表し、質疑応答で参加者とコミュニケーションをとり、またその後の懇親会ではLTに登壇した人のところに参加者が集まる傾向が見られます。
ソースコードやブログなどの一方通行になりがちなアウトプットと違い、相手に対して自分のキャラクターやコミュニケーションの特徴、相性の良し悪しなどを伝えられるのもリアルな場に出るメリットのひとつです。
1杯1000円のコーヒーから考えるフリーランスエンジニアの価値 でも説明した通り、フリーランスエンジニアがクライアントに対して与える価値を生み出すものは、技術力だけではなくキャラクターや趣味、考え方などさまざまだからです。
IT業界とはいっても、人と人が協力してプロダクト開発を進める仕事である以上、一緒に働く人との相性や信頼関係は重要です。それらはソースコードや文章で伝えるよりも直接のやりとりを通して伝えるのが最も効果的だと私は考えています。
LTに登壇することは、発表内容から技術的なスキルを見せるだけでなく、コミュニケーションのとりかたや興味関心といった人間的な要素も同時にクライアントに見せられるのが最大のメリットといえるでしょう。
まとめ
フリーランスエンジニアに対してクライアントがスキルを証明する指標として「年数」が使われることが多いのは事実です。
それはフリーランスエンジニアのスキルが年数に比例すると本気で信じている場合もあれば、ほかに扱いやすい指標がないために仕方なく年数で足切りしている場合もあるでしょう。
しかし、クライアントが本当にほしいのは「PHP経験3年」のエンジニアではなく、「PHPを使って高品質なシステムを作り上げてくれる」エンジニアです。そして「自分こそがそのスキルを持つエンジニアである」ことを証明する手段は、この記事に書いた通りいくつも存在します。
「とりあえず」年数を条件のひとつに挙げている企業でも、本当にスキルのあるフリーランスエンジニアと仕事がしたいと思っているのであれば、適切に自身のスキルを見せることで、「年数」の条件に当てはまらなくても、一緒に仕事がしたいと思わせることは可能なはずです。
ソースコード、文章、そしてコミュニケーションで、ひとりでも多くのクライアントに自分がどのような人材なのかを見せることは、ひとつでも多くのチャンスを呼び込むことになります。その結果、フリーランスエンジニアとしてクライアントから頼られ、やりがいのあるプロジェクトを見つけることができると考えています。