受託開発から 自社開発になって苦労しかない
今回はエンジニアとしての苦労とそれに対してどうやって向き合っていくのかを書いていこうかなと思います。良くあるポエムとかその辺に当たりますね。
僕の主観すぎる意見、極端に誇張した表現などが多々含まれると思います。こちらご理解いただければと思います。
サクッと経歴
- 新卒で受託開発の会社に就職
- 受託時代はバックエンド(PHP)を専門としていた
- 受託時代は1つのサービスを保守していくのではなく、新規開発を行って納品しまくる日々
- 転職履歴:受託開発→受託開発→自社開発(今)
- (受託会社では「俺コード書くのはえー!俺カッケー!」やってた。)
苦労1. マネタイズの違いから生まれるプログラムへの認識の差
受託時代にいた会社は請負契約だったので、ざっくり言うとお客様から受け取ったお金 - 人件費が売り上げになっています。
納期という短期的な将来に向けていかに稼働を減らすか、差額を増やすかが勝負!と思っていただければ良いです。
そのため、if文が乱立するコードになっていたり、読むのに苦労するコードになっていたりが許される状況でした。
一方弊社はユーザの課金や広告収入が売り上げのメインです。
ユーザが使いやすいプロダクトを作るためにユーザの思想に寄り添った改修を長期的に繰り返す必要があります。
そのため短期目標ではなく、長期でパフォーマンスを落とさずに開発ができるような設計を行うコードを書いていくのが基本です。
「if文乱立 = 指摘!!!!」「適当な変数名 = 指摘!!!!」の毎日ですね。
マネタイズの違いとは書きましたが言い換えると、今を楽にするか、未来を楽にするかの違いかなもと思います。
これまでは未来を楽にするコーディングなどやったことなかったので、
プルリクは通らないし、何より今までの自分がやってきたことが一つも活かせないのがきついです。
どう向き合ったか向き合っていくか
無力な自分に向き合うのはかなり悲しいんですが、現実向き合うしかなくて、
まず自分にできることの棚卸しから実施しました。
就活とか転職の時とかもやったんですが、それ以上に時間をかけ、上司や友達に見てもらって深掘りしてもらいつつやります。
スキルの棚卸しなんてよくあるやつなので詳しい説明はいらないかなと。。。
僕の場合は、「基礎知識だけどフワッとアウトラインだけ知っている知識」がかなり多かったので、
その辺を固めに行くところから始めましたね。
「リーダブルコード」「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」とか読みました。
苦労2. カバーする範囲広すぎ。。。
これまではフロントやインフラなどは、各チームに依頼をして作ってもらっていました。
しかし今のチーム体制だとフロント、バックなどを分けることなくチケットを取っています。
これまでのようにPHPだけやっておけばいいという世界はもう終わったわけです。
苦労を一言で言うならシンプルに勉強する時間が足りない。ただこれだけですね。
どう向き合ったか向き合っていくか
色々考えましたが、餅は餅屋です。
開発は1人でやっているわけではないです。今だと4人チームでやっているので各ジャンルに得意な人にどんどん質問しましょう。
業務後にこそこそ勉強するより、知っている人にどんどん聞いて吸収した方が早い気がします。
質問しまくって質問された人の進捗遅れたらどうしよう。などは考えなくていいかな
1人でチケットを消化できたかではなく、チーム全体でどれだけチケットを消化できたかが勝負です。
まとめ
とりあえず2個だけ書いてみました。
ポエムなんでまとめることはないですね。
ありがとうございました。
Discussion