副業の振り返り


今年で副業の契約が終了となったので、その振り返りや反省をしてみたいと思う。NDAがあるので、ペラペラ喋れないが。

契約契約終了の理由の予想

  • 正社員で賄えるようになったので、業務委託を入れる必要性がない
  • 業務委託に任せたいほど仕事がない、あるいは仕事はあるが、基本的には正社員にしか任せられないし成長のために任せたい
  • 仕事のパフォーマンスが悪い
  • 業務委託だけフルリモートなのでコミュニケーションが取りづらい
  • 単価が高く、成果物がそれに見合っていない

仮に自分が逆の立場でも契約終了を伝えていたと思うので、納得できる部分は多い。

どうしていたら良かったか

自分の契約を延長する話

別に基本的には企業側の立場で考えると至極真っ当なので、今の状態で良いし、自分もこうなってある意味ほっとしているので特に変えたいとは思わない。

ただし、Evilな考え方をすると特定のレイヤ、モジュールは私だけが保守可能な状態だったので、その部分をより強固(?)にしていくと契約を延長できた可能性はある。 極端な話、ドキュメントや知識の継承を全くしないというムーブができると契約期間は伸びたような気もする。 とはいえ、それは流石にEvilすぎるし自分の倫理観にも反する。そもそも善管注意義務違反だと思う。 自分とは別のモジュールを担当していた委託契約の別企業は今でも契約が結ばれているので、そういう唯一無二的な何かがあると良かったのかもしれない。

あとはフロントエンド側のコードが書けるとは言え、レビュワーが求めるレベルのコードになっていなかったというのもある。 これは単に自分の実力不足なので、もっとフロント力、デザイン力、CSS力を鍛えないといけないと思った。 正直良いソフトウェアアーキテクチャであるとは思えなくてあらゆる部分の認知負荷が高かった。ただ、できる人ならそういう劣悪な環境でもパフォーマンスはいいはずなので、自分がまだまだだったというだけの話。

レビュー以外でのコミュニケーションはもともと本業がテキストコミュニケーションメインというのもあり問題なかった。 が、レビューの指摘は結構トゲが出ていたような気がするし、実際に後でメンバーの一人にそういうフィードバックはいただいた。 これは明確な私の欠点なので、直さなければならない。

業務委託排除の方向の話

基本的に業務委託は緩衝材だと思っていて、SPOT的にリソースが必要な時に投入したり、とりあえず開発チーム何割かは業務委託として、キャッシュフローが悪化したらまっさきに切る、というような使い方をすべきものだと思っている。

次点で傭兵だと思っていて、難しいポイントに投入する。とはいえ、昨今ではなかなか優秀な業務委託の確保は難しいので傭兵と呼べるレベルの人は少ないのだけども。

なので、今回契約が終了となったのはある意味で正しいと思うのだが、どうしていたらもっと早く今の状況になれていたか・・。

これは分からなかった。正社員雇用頑張る、育成頑張る、くらいしか思いつかないし、それは業務委託の業務範囲ではない・・・。

ただまあ、引き継ぎ資料等がもっと整っていたら良かったのではという気はする。

よりパフォーマンスを出す話

業務委託は使い続けるものではないものの、おそらく今回は「こいつ使えないな」と思われて切られたふしがある程度あるはずなので、その部分は最も反省・改善すべきだと思う。

1つは前述の通りフロントエンドのパフォーマンスが悪かったという点。これは業務時間外にもっと研鑽すべきだった。

自分担当のモジュールの品質向上のために、初期のモデリングを成功させる。これは今思うと微妙だったと思う点がいくつもある。 当時は時間的制約もあったので仕方ないし、そのあたりの経緯を知っている人はもうチームにいない。 なので、こいつの書いたこのモジュール品質低いなと思われても仕方ないとは思うが・・・自分にもっと実力があれば限られた時間でも今より良いものはできていたはずなので。

バックエンドコードをメインで担当することが多かったので、そのあたりはある程度リードできていたと思うし、レビューにも参加できていたとは思うが。 もうちょっとインパクトのある形で、こいつは強い、と思われるような状況を作り出せていないといけなかった。 今思うと発言や前のめりな姿勢も不足していたかもしれない。

どうにかしようと思ったが、どうしようもできなかった点

自分としてはどうにかしようと色々動いたつもりだったが、環境やチームが許してくれなかったということがいくつかあった。

  • 積極的なリファクタリングやリアーキテクチャ
  • チームの中でのリーダーシップ発揮、アーキテクト、テックリードとしての貢献
  • 開発プロセスやDevOpsの改善提案
  • チームのムードやコミュニケーションの改善
  • コードの変更リードタイム短縮、開発サイクル改善

詳細を書くとNDAに触れる可能性も上がるし、愚痴になりそうなものもあるのでこれ以上は書かないけど。 とにかく、色々変えたい部分はあったし改善していきたいと思っていたけど、他のメンバーは特にそうは思っていなかったというのが個人的な感想。 チームのマインドを変えたりドラスティックに文化を変えたりするというのは社員であったり、権限が大きくないと無理だなと改めて実感した。 権限委譲の重要性については他のシーンでもいくつか学びは得られた。

今後

この反省を糧にしてより強いエンジニアになっていきたい。

また、契約は終了となったがなんだかんだ一緒にものづくりをして良い経験になったので、彼らとまたどこかで同じ職場になったときはよろしくお願いします、という気持ちである。

実際に一緒に働いた人のうち何名かは今でも繋がりを維持できているので、仲良くしていただき本当にありがたい。