フリーランスエンジニアが個人で仕事を請ける上で気をつけること

## はじめに

フリーランスでエンジニアをしている者です。
フリーランス1年目はほとんどの仕事をエージェント経由で仕事を請け負っていました。
1年目とはいえ元々エンジニアとしてのキャリアはあったので、エージェントを通していれば仕事に困ることはありませんでした。
しかしエージェントだけを頼って仕事を請け負うことへの漠然な不安がありました。
そんな不安から、SNSで仕事の募集したり技術記事を書いたりして個人でも仕事の依頼が舞い込むように仕向けるようになりました。
その成果あってか、ありがたいことに何社かお声がけいただきお仕事を請け負うことができました。
意気揚々といただいた仕事に従事するのですが、思いもよらぬ失敗をしてしまいました。
今後はこのような失敗をしないという自分への戒めとして本記事に残すこととします。

## 契約内容が書かれたドキュメントを作成する
作成するのは**約束を無かったことにされないように証拠として残しておくため**です。
証拠として残しておけるのであれば、フォーマットは問題ではありません。
なのでチャットツールで、

* 自分: 「単価はこれぐらいで、この日までにこの実装をするよ！」
 
* お客さん: 「OK！」

という同意を含めたやりとりをしていればそれで約束したことになります。
このやりとりのスクショなどをとっておけば、契約内容で揉めた際に反故にされることはないでしょう。
ですがやはりチャットツールではなく**契約書**(同意の印鑑を含む)を作成しておくことをお勧めします。
契約書を作成することで、約束事が一箇所にまとまって確認しやすいですし、契約内容をお互いに読み、同意の判子を押すという儀式をやっておくことで、心理的に反故にされにくくなるのではないと思っています。

僕が最初に個人で請け負った案件では、契約書を作成することなく、単価やら作業期間などをSlackでやりとりし決めました。
そしていざ作業が終了し報酬を請求しようとしたら、「そんなことは頼んでいない！」というニュアンスのことを言われ、その後言った言わないのやりとりを何回かした後、最終的には案件のSlackのワークスペースから強制的に退会させられてしまいました。
それによりSlackの会話をスクショで撮るなど、十分な証拠を残しておくことができず、泣き寝入りせざるを得ませんでした。(その後全ての連絡手段でブロックされてしまいました笑)

なので契約書を作成し、それを個人のクラウドなどに保存しておくのが良いでしょう。

## やることを明確にする

約束を無かったことにされないために、契約書を作成することが大事なのはわかりました。

では契約書に何を書いておけば良いでしょうか？

何を書くべきなのかは、**何をすれば報酬がもらえるのか**を考える必要があります。

僕は少なくとも下記の項目が書かれている必要があると思ってます。

*  契約形態(請負契約 or 準委任契約)
*  作業内容
*  作業期間

### 契約形態(請負 or 準委任)
契約形態は重要です。
なぜなら**何をすれば報酬がもらえるのかの根本**が変わってくるからです。

契約形態は主に請負契約と準委任契約の二つに分けられます。

請負契約は簡単に言えば、**相手が望む成果物を納品しなければ報酬はもらえない契約**です。
なので成果物を納品さえすれば、作業時間や作業場所などやり方については基本的に自由です。

準委任契約は、**労働時間で報酬が決定する契約**です。
なので新規開発案件だろうが、運用案件だろうが、働いた時間×時給で報酬がもらえます。
おそらくエージェント経由でお仕事をもらう場合はほとんどこの契約だと思います。

最低限、自分の報酬がどのように決まるのかは契約書に書いておかないといけないでしょう。

### 作業内容
報酬をもらうには当然お客さんが望むものを提供しなくてはなりません。

準委任契約の場合は時間単位での報酬となるので、期間内にお客さんが望むものを完成できなくても契約上問題なく、働いた時間の報酬をもらえます。
なので作業内容は新規開発なのか改修なのか保守なのか様々ありますが、あなたが許容できる内容が書かれていれば良いでしょう。

請負契約の場合は作業内容がとても重要になります。
契約書に書かれている作業内容を履行できなければ報酬がもらえないからです。

作業内容には**設計や実装ができるレベル**の内容が書かれていることが必要です。(実際は長くなるので「別途資料参照」などと書かれていることでしょう)
なので要件定義や画面のデザインなどは確定しており、細かい機能の仕様などもわからないところは確認済みである必要があります。
少しでも不確定な要素があるならお客さんに確認して潰していきましょう。
潰しておかないと後からお客さんに、「ここの仕様はこういう想定だった」「ここの画面はこういうデザインの想定だった」と想定外のことを言われた時に反論できなくなりますし、信用問題にも発展します。
自分を守るためにも、お客さんに不安を与えないためにも**一番最初の段階でやることを決めましょう**。

また僕が請け負った案件の話になりますが、最初の段階で「こういうアプリを作りたい」と言って渡された資料が、ワイヤーフレームと機能一覧でした。
ワイヤーフレームの資料には、当然詳細な画面のデザインはなく、ざっくりこういうアプリを作って欲しいというレベルのものでした。
機能一覧の資料には、ワイヤーフレームからおおよそ予測できるぐらいのざっくりした機能のリストが書かれていました。
僕はその資料から見積もりを出し、契約書を結び、仕事を受けました。**何をやるのか明確になっていないのにも関わらず**です。

その後開発を進めながら、デザインが明確になりました。

* お客さん: 「ここの画面はこんなデザインでお願いします！」

* 自分: 「承知しました！（おお、こんな複雑なデザインになるとは思わなかった。。。）」

そして、実装する上で不明確な点に気づいた自分は機能の仕様について確認します。

* 自分: 「ここの機能ってこの場合はどういう仕様になりますかね？」

* お客さん: 「ここはこういう仕様でお願いします！」

* 自分: 「承知しました！（実装だけでなくテスト工数も増えそうだなあ）」

こういったやりとりが何度も行われ、工数の上積みが無視できないものになりました。

その結果、実質タダでこなすことになるタスクが大量に発生しました。
それだけでなく、上積みされた工数のせいで納期が大幅に遅れ、しかもそれがどれぐらいなのかを作業に入る前にしっかり見積もっていなかったので大幅に遅れることをお客さんに伝えることもできませんでした。

人は気が変わる生き物なので、開発中に仕様が変わることもあるでしょう。
しかし請負契約を結んでいる以上、仕様が変われば当然納品物も変わりますし、工数が変わるようでしたら請求金額も変わります。
「まあこれぐらいならいいか」ではなく何が変更になり工数がどれぐらい変わるのかをお互い認識し合意の上で進めましょう。


## 安売りしない
自分を安売りしてはいけません。安売りした金額で仕事を受けてしまうと**モチベーションが低下するから**です。
モチベーションが低下した状態で仕事を受けると成果物にも影響しお客さんとの関係も悪くなります。

スタートアップ会社などの予算があまり潤沢ではないお客さんから、自分の希望単価より低い金額でお願いされることがよくありました。
その中の一社とお仕事したときに僕はかなり安い金額で仕事を受けることにしました。
どこかの本に「利益を求めるならまずは相手の欲しいものを提供せよ」みたいなこと書いてあった気がするし、まあいっかとあまり深く考えずに契約を結びました。
その会社さんとの仕事はアプリの新規開発の仕事でしたが、リリースするまで3,4ヶ月ほどかかりました。
開発終盤は「これだけやってこんぐらいの金額しかもらえないのか」という気持ちと、「仕事を受けた以上は高品質のものを提供しなければ」という義務感の中で仕事をしていました。
そんなモヤモヤした状態なのでお客さんとのやりとりにヒビが入ったり、成果物にも影響したりといいことありませんでした。
自分の感情ぐらいコントロールしろと言われればそれまでなのですが、自分にはそれが難しいことがよくわかったのでそこだけは収穫があったなと思います笑

モチベーションが低下するのも安売りしてはいけない理由の一つですが、**事業をしているという観点**から見ても安売りしてはいけません。
その仕事によって契約内容や作業内容など様々ですが、**自分の技術を商品として売っている**ということは変わりません。
その商品を簡単に安売りしたということは、簡単に残業を了承していた会社員時代となんら変わらないです。
まだまだ自分は事業をやっているという意識が足りていなかったと思います。

とはいえ、エンジニアは技術が報酬みたいな考え方もできるので、自分が習得したい技術がその仕事を通して学べるのであれば、自分の希望する単価を落とすのは戦略としてありだと思います。
自分の技術を相手に提供して、自分は何を得たいのかをしっかり意識することが大事です。

どちらかが妥協することは決してせずに、お互いが望むものを提供しあっていい関係でいたいものですね。

## おわりに
書いていることはいたって当たり前のことかもしれませんが、僕にとってはフリーランスになって初めて意識したことばかりです。

エージェントを通していれば仕事には困らないけどそれもいつまで続くかわからない。
誰かに依存したくないなら自分で仕事をとるしかないのだけれど、それには当たり前のようにこなさなけらばならないものがある。
フリーランスとして事業を拡大するためにはこういった技術以外のことも勉強しないといけないと身に染み、いい経験になりました。