フリーランスエンジニアは「質」の力が磨きづらい説
会社員として 3 年間 Web サービス企業で働いて、フリーランス 4 年目も半分が終わった。
最近後輩の関わってきたプロジェクトの話を聞きながら、ある説が浮かび上がったのでメモしておく。
それは「フリーランスエンジニアはソフトウェアの質に関する力が磨きづらい」という説。
ここでいう質はいわゆる「質とスピード」の「質」のこと。
t-wada さんの話に乗っかるとフリーランスエンジニアは「質もスピード」のために必要な技術力やその時間が積み上げづらいと言い換えられる。
あくまでこの傾向があるだけで、すべての人がそうじゃない、というのだけは当たり前すぎるが一応書いておく。
で、何でこの傾向があるかというと、フリーランスエンジニアが入るプロジェクトは
- 多くの場合準委任契約で
- 業務委託に頼るような事業フェーズ・組織体制で
- 0 → 1 のプロジェクトが多い
傾向がある気がする。
するとこうなる。
- クライアントの求めることは「早く・安く」→ 「質とスピード」のための学習時間は担保されない。一番習熟している技術と設計(その多くは MVC)でやりきる
- 「速度」だけを考えた結果の損益分岐点がどこかで起きていたとしても(自分は良くても一緒にいるメンバーの実装速度が実は落ちている、バグを修正する際に時間がかかりすぎている)、それは主観ではわからない。(たぶん同じ開発チームのメンバーは気づいている)
- どれだけ遅くかかっていても、夜中までコードを書いて頑張って泥臭くやれば OK。お金は時間によって払われる。極論、開発工数がかかればかかるほどお金はもらえる。
クライアントは技術のことを事細かくわかっているわけではないことが多い。だから企業視点で言えば許容範囲内のコストであれば「効率が悪くても」お金はちゃんと支払われるだろう。
フリーランスエンジニアの労働市場はまだまだ良い。だから特にこのスタイルで開発しても困らない。
一方、会社だとこうはいかない。
会社(EM など)からするとこういうロジックになる。
- エンジニアリングコストを常に注視している
- いま作っているコードが「負債」になれば、その負債を支払うのも自身(会社)である
- 優秀なエンジニアを採用していきたい
などの理由から、そのソフトウェアの生産性・コスト、つまり「質とスピード」を考える動機が働きやすい。また、負債まみれのコードベースにモチベーション高く働くエンジニアはあまりいない。
だから、会社に迎え入れるエンジニアにはより「質」を求める。
僕の場合、新卒で入った会社は上場していて 10 年ほど運営されている Web サービスがあった。新卒でもうまく開発をしていくために研修をみっちりやり、自動テスト、OOP やデザインパターン、SQL アンチパターンなどの課題図書があり読んでいった。
新卒 2 年目になると新規事業のプロジェクトに入ったが、2019 年当時に皆が使いたかった技術を盛り込んだ。TypeScript, React, Golang, GraphQL, クリーンアーキテクチャ...
優秀なバックエンド・インフラエンジニアの先輩方が居たこともあり、いろんな「質」に関する視点を得られた。
たくさんの成功・失敗を繰り返しながら「質とスピード」がそれなりに成長したとは思う。
WIP
あとはこういうことをまとめていきたい
- フリーランス 1 ~ 2 年目の仕事は「質とスピード」は育たず、プロダクト愛だけで何とか走った
- その仕事が終わった後の転職ドラフトで感じた「違和感」
- その後のプロジェクトで「質とスピード」に集中したこと
- そして現在
自分の中でも価値観が揺れ動きつつ、その都度経験から面白さ、面白くなさを感じてきたのだとわかった。振り返り大事。