なんで俺がクビにさせなけりゃならない

何かおかしい…なんとなくそんな気がした。。。この記事は[「フリーランス残酷物語 Advent Calendar 2016」](http://qiita.com/advent-calendar/2016/free_zankoku)15日目のポエムなわけなのだが、どうも今年の年末は Qiita にポエムが大量発生しているようで意味がわからない。しかし、このフリーランス残酷物語もポエム以外の何物でもない。そして周りを見渡せば[「カノジョできてるエンジニア」](http://qiita.com/advent-calendar/2016/yes-girlfriend)やら[「子育てエンジニア」](http://qiita.com/advent-calendar/2016/kosodate-engineer)やら[「筋肉」](http://qiita.com/advent-calendar/2016/muscle)やら[「転職」](http://qiita.com/advent-calendar/2016/job)やら[「転職（その２）」](http://qiita.com/advent-calendar/2016/job2)やら中には技術的な内容と関連付けて書かれているものもあるけども、内容が無いようなんてポエムも見受けられる。外部ブログではなく Qiita に書かれている無い様が内容なポエムもちらほらとある。書かれた記事が運営によって削除されてる様子もない。ひょっとして Qiita にポエムを書いてもいいのではないのか？いや、むしろ僕らは今運営に試されているのではないか？「この規約違反を踏んでみろ。今までにない未来が待っているだろう」そんな Qiita の声を聞いた気がした。

僕は[増田に排泄してあった15日目の糞ポエム](http://anond.hatelabo.jp/20161208120124)をそっと拾い上げ、そこに「ポエム」というタグを貼り付けたのちギュッと握りしめた。くらえ味噌ぼーる！

そんなこんなで適当なお話を書こうと思います。しかし、[13日目の記事](http://aquari.hatenablog.jp/entry/2016/12/13/013903)で [sutoh](http://aquari.hatenablog.jp/entry/2016/12/13/013903) さんが書いていたように

「フリーランスの方々の記事を見るに、全然残酷ではない話しかありません」

僕もそう思います。カレンダーの趣旨と違う事を書くのは、この世界の創造主であり綺麗な花火を打ち上げて頂いた [mesaka](http://qiita.com/mesaka/items/41ec09a4dae3fba6dd6c) さんに申し訳がありません。

僕がフリーランスとして受けた作業依頼のなかで、とても奇妙であり心が痛んだお話を書かせて頂きます。この心の傷は一生忘れる事がないと思います。今から12年前の2004年。僕はフリーランス１年目でした。

#フリーランスになる前

フリーランスになる前は社員でした。コンシューマやアーケードゲームを何本か開発したのですが、ゲームの発売が近づくと月400時間以上の長時間労働を行います。16h x 30d = 480h, あれもっとかな。とかそんなことを何回もやっていると人間は壊れます。裁量労働制の裁量ってどんな意味だろう、、、と考えながら3年働き、[ユンケル口蹄疫](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=%E3%83%A6%E3%83%B3%E3%82%B1%E3%83%AB%E5%8F%A3%E8%B9%84%E7%96%AB)なしでは生きていけない体になり、もうダメだなと思った時に同期の10人は誰も残っておらず、一番最後の退職者となりました。

その後1年は携帯ゲーム会社でゆるふわな開発を行い、「僕がんばってもいいんだ」と頭が中学生くらいまで回復したところでフリーランスにジョブチェンジしました。

#フリーランスとしての普通の作業

初めての契約は 3DRPG を開発している会社と結びました。準委任契約なので会社に出向し決まった時間働き、毎月決まったお金をいただく形です。業務内容はプログラミングとそれに関連する作業となります。関連する作業は曖昧ですが、まぁ雑用含めてお仕事するうえでの作業全てなので、社員プログラマーと働き方はそんなに変わってないと思います。

一般的なプログラム作業であれば、例えば MMORPG の開発ではマップ表示を担当しましたが、これはマップ担当の3Dデザイナーさんとデータの仕様などを決めていって、あとはプログラミングするだけのお仕事です。この開発ではプログラム全体の設計とプログラマーのまとめ役もやっていたので、メンバーへの指示出しやタスク管理もプログラミングに関連したお仕事です。

少し変わった作業だと PS2 で発売した 3DRPG のコードを渡され、「VisualStudio で動くようにして。大丈夫、描画エンジンだけ DirectX で動くものを別で用意したから」という依頼だったりします。幸いにして同じような依頼を前職の社員のときに受けていました。その時は PS 用に発売した 3D 格闘ゲームのプログラムを渡され「ナムコのSystem12基板で動かせるようにしてよ。大丈夫、PSと System12 の違いは CPU のクロックが違うだけだから」というものでした。どちらの依頼もプログラムと向き合うだけの作業なのでとても単純なです。CodeWarrior で書かれたコードを VisualStudio でコンパイルすると2万くらいコンパイルエラーを吐き出すのですが、それをもくもくと修正するだけです。

新人プログラマーの教育係もプログラミングに関連したお仕事です。ペアプロで一緒にゲームを開発していくのはとても楽しかった！あと成長していく新人かわいいぺろぺろ。

当時その会社ではまだバージョン管理ソフトを使っていませんでした。社員毎に Samba のディレクトリがあり、そこにプログラムファイルを配置して共有を行っていました。さすがにこれは不味いと思いバージョン管理ソフトの提案も行いました。前職では CVS と Microsoft Visual SourceSafe を使用していましたが、CVS には悪夢（マスターアップ1週間前にデータが壊れる）しか思い出がない事と、Visual SourceSafe は無料ではなかったため、当時流行りだしていた Subversion を検証したレポートを作成し、それをもってシステム管理部門を説得するということもプログラミングに関連したお仕事でした。システム管理部門は企業のガーディアンですので、そうそう実績のないソフトウェアを会社内の PC にインストールさせるわけにはいきません。2004年頃の Subversion は Ruby など新しい技術を使う Web 業界ではそれなりに認知度があったかもしれませんが、C++ も使わず C のみで開発を行っているゲーム業界での認知度はとても低いものでした。時間をかけじっくりとシステム管理部門を説得していく必要がありますが、これはプログラミングに関連したとてもとても大切なお仕事です。

なお、会社から社員にならないかとの提案を頂いたのですが、当時はフリーランスという契約のみで結ばれた、ときには人情のかけらもない綱渡り状態にスリルと興奮を感じていたため断りました。24歳という若さのためか、それとも前職で壊れた頭がまだ治っていなかったのかはわかりません。

#そして奇妙な作業依頼

そのようなプログラミングとプログラミングに関連する作業を行っていたところ、プログラマー全体を統括するマネージャーから奇妙な作業依頼を受けました。それはとある社員プログラマーのスキルチェックをして欲しいというものです。


新人教育でもなく、サポートしながら一緒にゲームのプログラミングを行っていくのではなく、スキルチェックです。スキルを見るならペアプロでもしてゲームの実装を行っていくのが良いと思ったのですが、製品にそのプログラムを入れたくという事で却下されました。また、スキルチェックに僕の時間をあまり使ってほしくないそうです。まぁそりゃそうだよねゲーム開発に時間使わないと。そこで、既存の開発とはまったく関係ないプログラムの課題を出して実装してもらいました。


しかし、まず課題を説明するところから問題が出ます。こちらの説明を全部紙にメモっているのですが、話が先に進むとメモれないとのことでメモり待ちが発生しました。口頭で2分くらいで伝わる仕様が10分くらいかかります。全部話しを聞いてから後でメモるのではダメなのかなと思ったのですが、どうもこのやり方でしか話が聞けないようです。


翌日に進捗を確認したかったのですが帰ってしまっていたので、次の日の朝に進捗を確認するとまだ実装中とのことでした。分からないところがあれば聞いて欲しいと伝え、作業を続けてもらいます。毎日こちらから進捗を確認するのですが、もう少しでできるという返事を貰う以外に特にアクションを起こしてきません。そんな状態で１週間が経ちました。ちなみに課題は1日くらいで実装できるものと想定していました。そして、この状況をマネージャーに説明し、チームメンバーに入れれるかという質問には難しいと答え、作業は終了となりました。


そして、その社員プログラマーは退職していかれました。

#社員の解雇

フリーランスの解雇は簡単です。そもそも雇用なんてしてないので、契約を更新しないか、もしくはまっとうな理由で契約解除をすれば良いだけです。しかし、社員の解雇というのはとても難しいものです。フリーランスが行う契約とは全く違って、国が社員の解雇に対して大きな制限を付けているからです。金の横領など分かりやすい行動をとった場合は別ですが、プログラミングスキルが低い事で一方的に解雇しようものなら逆に訴えれて終わりです。僕の今まで関わった会社さんでも、解雇した社員が訴えを起こさない代わりに和解金を要求し成立したケースもありました。スキル不足の社員を解雇するなら、社員にその事を納得してもらい円満に退職してもらうのが良いと思います。納得してもらうには情報が必要です。「○○を依頼しましたが、あなたは達成できませんでした」という情報をいくつも集めて納得してもらいます。退職していかれた社員プログラマーがフリーランスの僕のところに来る前、2人の社員プログラマーのもとでスキルチェックを受けていたそうです。僕で3人目だったわけですね。それら3人分の評価を伝え、納得してもらい退職してもらったのだと思います。

#なんで俺が社員をクビにさせなけりゃならない

なんにせよ、一連の流れの中で僕は社員に引導を渡すという残酷な作業をしていたわけです。あなたは誰かをクビにするという作業をしたことがありますか？

僕はそれをフリーランスとして経験してしまいました。それは気持ちのよい作業ではありませんでした。

#フリーランスのその後

こちらの会社さんがある意味消滅と言ってしまえるような状態になったので別の会社で社員として働いたものの、また頭がおかしくなってたのかフリーになり、受託用の個人会社まで設立し、その会社も今年で閉じ、今はサンフランシスコで英語の勉強と趣味のプログラミングをしています。あまり普通ではないので最初の会社でアホになってからそれが治ることはなかったようです。長時間労働マジ怖い。

Qiita にはポエムでないものも書いています。
[TensorFlowで株価予想シリーズ](http://qiita.com/akiraak/items/b27a5616a94cd64a8653)
ディープラーニング面白いのでみんな遊びましょう！

それではみなさん良いお年を。える・ぷさい・こんぐるぅ