自社開発エンジニアはやめとけ?現役5年目が感じる「きつさ」と「楽しさ」
結論:楽ではない。でも、向いている人には楽しい仕事
「自社開発はきらきらしている」「自社開発なら楽ができる」というイメージがあるなら、それは違うと思います。 私は、EC向けのシステムを自社製品として企業に提供している会社で、自社開発エンジニアとして働いて5年目になります。 スケジュールはタイトで、開発以外の仕事もあり、決して楽ではありません。
それでも私は今、まあまあ楽しく働いています。 この記事では、実際に働いて感じた「きつさ」と「楽しさ」を、経験したことだけで書きます。
この記事で書くのは、1社・1人の経験です。自社開発の会社は、規模や事業によって働き方が大きく変わります。「こういう会社もある」という一例として読んでください。
私の働いている環境
| 項目 | 内容 |
|---|---|
| 会社 | EC向けのシステムを自社製品として開発し、企業に提供している会社 |
| 規模 | 従業員数百人規模。エンジニアも数百人規模の組織 |
| 担当 | 機能開発から、テスト、リリース、保守まで一通り |
| 使う技術 | C#、Python、Java、PHP、JavaScript、HTML/CSS、SQL など |
| 仕事のやり取り | 口頭、Slack、Backlogのチケット |
「やめとけ」と言われても仕方ないと感じる、4つのきつさ
1. スケジュールがタイト。残業もある
案件によりますが、基本的にスケジュールはタイトです。 残業は月30時間くらいが目安で、その範囲で残業が発生する働き方です。
原因ははっきりしていて、プロジェクトの数に対してエンジニアが足りていないことです。 夜間や休日の対応も、たまにですがあります。障害などの突発的な対応は、私の感覚では半年に1回くらいです。
自社開発だから定時で帰れる、ということはありません。
2. 開発だけをしていればいいわけではない
私の場合、仕事の時間はざっくり開発7割・それ以外3割です。 それ以外の仕事には、たとえば次のようなものがあります。
- PCのセットアップ
- 社内の定例会議
- 社内向けドキュメントの作成
- お客様(導入企業)からのエスカレーション対応(会議や問い合わせ)
一番しんどかったのは、プロジェクトのバージョンアップのような単純作業と、テストの打鍵(手作業での動作確認)です。 コードを書く時間だけを想像して入ると、ギャップを感じると思います。
3. 使う技術は自分で決められない
私の会社では、使う技術はCEOやCTOが決めていました。 C#など、長く使われている技術とも付き合い続ける必要があります。 「最新の技術だけを使いたい」という人には、物足りない場面があるかもしれません。
4. 話が通じにくい相手もいる
普段よく話すのは、PL(プロジェクトリーダー)とエンジニアです。 用語が通じなかったり、設計の意図が十分に伝わらなかったりする場面もありました。 伝える側が、相手にわかりやすく、見やすい形で説明する力が求められます。
それでも続けている理由:自社開発の楽しさ
スキルが伸びた実感がある
5年間で、コーディングの力や、ドメイン駆動設計などの設計の考え方が身につきました。 自分の書いたコードが製品として動き、改善を重ねていけるのは、自社開発ならではだと思います。
新しい技術を試す機会もある
技術選定は自分では決められない一方で、AIのような新しい技術を試せる機会もありました。
実力で評価される
私の会社では、評価するのはPLと上司のエンジニアです。 頑張ったのに評価されなかった、と感じたことは特にありません。 年功序列ではなく、実力や実績で見てほしい人には合う環境だと感じています。
一番楽しいのは、チームでリリースまでやり切ったとき
私が一番「楽しい」と感じるのは、次のような瞬間です。
- 難易度の高い開発を、致命的なバグを出さずにリリースまで終えられたとき
- チームで一つのプロジェクトを進め、オープン(公開)までやり切ったとき
タイトなスケジュールや雑務があっても続けられているのは、この達成感があるからだと思います。
EC業界の自社開発で必要なこと
ECの製品を作るには、プログラミングとは別に、EC業界の知識が必要です。 私が仕事で必要になった知識は、たとえば次のようなものです。
- 受注・在庫・決済
- 商品データ
- CS(カスタマーサポート)対応
- 物流
- ポイント
- SEO
- 外部サービスとのAPI連携
こうした業務の流れを理解していないと、よい設計ができません。 技術と業界知識の両方を、勉強し続ける姿勢が求められます。
自社開発に向いている人・向いていない人
向いている人
- 自分が成し遂げたことに、やりがいを感じられる人
- 新しい技術に興味を持ち、吸収できる人
- 相手に伝わりやすく、見やすい形でコミュニケーションがとれる人
- 無理な依頼や不満があったときに、きちんと報告・連絡・相談ができる人
- 緊急の対応にも、臨機応変に動ける人
- チームで仕事を進められる人
- 長時間のPC作業が苦にならない人
- 体力や体調面に、ある程度自信がある人
向いていない人
- 単純作業や、事務的な作業がどうしても苦手な人
- 「やれば結果がすぐに出て、すぐに自分の能力になる」と考えている人
- 他人からの依頼に、強いストレスを感じる人
世間のイメージとの違い
入社して最初の2年ほどは、単純に「エンジニアって難しい」と感じることが多くありました。
入社前は、社内のナレッジ(資料や過去の事例)があれば、ある程度は簡単に業務を進められると思っていました。 実際には、自分で勉強して、覚えて、対応する。インプットとアウトプットを繰り返して実力をつけていく世界でした。
ただ、慣れてきてからは、かなり楽しいと思えるようになりました。 最初の1〜2年がきついと感じている人も、そこで判断しきらなくてよいと思います。
まとめ:やりたいなら、やってみてほしい
自社開発は、楽な仕事ではありません。 それでも、自分の作ったものが製品になり、スキルが伸びていく実感は、私にとって大きなやりがいです。
SESやSIerから自社開発を目指している人に、一番伝えたいことはシンプルです。 やりたいなら、やってみてほしい。
自社開発エンジニアの1日がどんな感じかは、選択肢で進む体験ゲーム「自社開発エンジニアの1日」でも体験できます(約2分)。現場のあるあるは4コマ漫画「自社開発エンジニアの日常」でも描いています。
自分が自社開発に向いているか迷う場合は、次の診断も参考にしてください。