正社員として働きはじめた駆け出しエンジニアの疑問に答えます。
エンジニアが正社員として働くデメリットと対策法を知りたい。自分も晴れて正社員のWebエンジニアになったけど、個人でWebサービスを作るのとずいぶん勝手が違うみたいで戸惑う。いい対策方法があれば教えてほしいです。
投資エンジニアの三年坊主(@SannenBouzu)です。
5年以上前にエンジニアという職業を選んだ過去の私にも伝えたいことですが、プログラミングを書くのが楽しいからといって、エンジニアの仕事を100%楽しめるとは限りません。
経験に基づいて、エンジニアが正社員として働くデメリットと対策法を紹介しますので、自分に合った働き方をするための材料になれば嬉しいです。
- エンジニアとして正社員で働くデメリットが気になる方
- デメリットを解消・軽減する方法を知りたい方
正社員エンジニアのデメリットと対策法
個人目標を定量化しにくい
営業職ではおなじみの獲得案件数や金額。
エンジニアとして、そのような分かりやすい個人の定量目標を立てることが難しいと感じます。
「定量化しにくいにも関わらず給与評価のために目標を立てる必要があること」がデメリット、と表現する方が正確かもしれません。
プロジェクトをただ完了するだけだと「当たり前」としか評価されないので、目標のための目標を立てることもある印象です。
「負荷を◯%削減した」「検索が◯秒早くなった」「5人で行っていた業務を2人でできるようにした」などは、ほぼ間違いなく評価される分かりやすい定量目標ではありますが、駆け出しのエンジニアが毎回そのような卓越した成果を出せるとも限りません。
対策としては、エンジニアの目標設定では、定量目標の実現に貢献しそうな行動目標を取り入れることのメリットが大きいと考えています。
緊急性の高いトラブル対応や夜勤
自社でサービスを開発・運用すると、開発だけして終わりというわけにはいきません。
「ユーザのステータスを反映するプログラムが正常に動かなかった」「ユーザに支払うべき金額が正しく計算できていない」といった想定外のエラーは、24時間いつでも発生する可能性があり、緊急性の高いトラブル対応が必要になる場合があります。
たしかに自分の成果物に対して責任を持つべきだとは思いますが、会社用の携帯を持たされて深夜や休日に連絡を取れる状態になっているのは、あまり心地いいものではありません。
また、エンジニアとして夜勤を経験する可能性があることも、人によってはデメリットになりうるでしょう。
対策として、自社・自部署が一般ユーザ向けサービスを持たないチームで働くことが考えられます。
しかしそれはそれで、「ユーザの顔が見えない」という別のデメリットにもなるので、「自分でサービスを開発しつつ運用はあまり興味がない」場合は、障害を自動復旧する仕組みが整っていて、他のサービスへの依存が少ないサービスを開発しているチームに参加すると幸せになれると思います。
また、正社員という雇用形態にこだわらなければ、リクルートITスタッフィングなどのサービスを使って、残業や時間外勤務がほとんどない仕事を紹介してもらうのもありでしょう。
仕組みが整っていない企業で下手に正社員エンジニアとして働くと、深夜や休日のプライベートな時間を奪われてしまうリスクが大きいです。
希望しないプログラミング以外の仕事が割り当てられる
他メンバーの不在・退職の埋め合わせや、サービスをルールに従って存続させるために、希望と関係ない仕事が割り当てられることもあります。
データベースのサポート期間が切れるため新しいデータベースにデータを移行したり、セキュリティを向上させるために新しい認証方法を導入したり、ユーザに表立ってプラスの価値を提供できない仕事を「誰かがしないといけない」とき、正社員エンジニアはその「誰か」に指名されやすい印象です。
明確な対策方法は紹介しにくいのですが、私自身は、エンジニアの仕事が辛いと感じてレバテックに相談したことで、職場で試してみたい仕事を見つけて前向きに取り組めるようになりました。(試し終わった後に部署を異動しています)
エンジニアのデメリットと対策法
スケジュールを決めるため見積りを迫られるプレッシャー
作業の見積もりは、雇用形態に関わらず、エンジニアとして携わる機会が多い内容です。
私自身がスケジュールを立てて仕事を進めるのが少し苦手なことも、見積もりを迫られるプレッシャーをデメリットと感じている原因かもしれません。
難しいなと思いながらおおよその見積りを出しますが、本質的にはこれまで作ったことがないものをプログラミングするので、そこに正確な見積りを求めるのは現実的ではありません。
スケジュールを決める権限があればエンジニア側にあればまだいい方で、ビジネスサイドの都合で一方的に決められる事例も過去には経験しており、それは立派なデメリットになりうると思います。
対策としては、以下のような方法が考えられます。
- そもそも見積もりの精度を100%にはできないことを伝えて合意を取る
- スムーズに開発が進んだ場合の「楽観的見積り」と、予想しないトラブルが発生した場合の「悲観的見積り」を伝えて、開発が進むにつれて両者の差分を縮めるアプローチをとる
他人が作ったプログラムに追加開発するのが大変
エンジニアの仕事では、他人が作ったプログラムを読むことが案外多いです。
そして、他人が作ったプログラムを読みつつ追加機能を開発するには、プログラミングスクールでは経験できない大変さを乗り越える必要があります。
- 自分以外の人の都合で仕様(=作るべき内容)が変わる
- 変更された内容が関係者にきちんと共有されない
- 仕様書に従わない開発メンバーがいるため手戻りが起こる(一度実装したプログラムをまた作り直す)
「仕様書に従わない人とかいるの?」と不思議に思っていましたが、いざ自分がやってみると、一人でWebサービス作るのとは違って構成が複雑なこともあり、確かになかなか辛いと感じる場面もありました。
対策としては、以下のようなアクションが効果的だと感じます。
- 早い段階でシステムの全体像を確認する
- 疎通確認をする(=全ての機能が完璧でなくても、ひととおりのデータの流れがつながるように作ってしまう)
エンジニアの仕事が辛いと感じたら、プロの力を借りて一度冷静になるのも手です。
私は、自身のモチベーションという観点から、このような選択肢もあることに気づけました。
- プロジェクトに直接関係ないことをする時間を確保する(例:勉強会の開催、技術を検証しサービスに導入)
- 取り組むタスクをこまめに切り替えながら集中力を保つ
- 新規サービスの開発に関わり、運用フェーズに移行したら抜ける
オフィスワーカーのデメリットと対策法
身体への悪影響
エンジニアに限らずオフィスワーカー全般にあてはまる内容ではありますが、「勤務時間が固定されていて、椅子に座ってパソコンのディスプレイを見る時間が長い」と、目・肩・腰・頭の痛みや眠気など、身体への悪影響が大きいです。
「午後眠い」「でも定時まで頑張ろう」みたいな会話を聞くたびに、結局アサインされるタスクが変わらないのなら「疲れたから午後は仕事をしない」選択ができた方が、全体としての効率は上がるのではと思っています。
個人的には腰痛が深刻で、1時間と同じ姿勢で座れない事情もあり、「身体への悪影響」はなかなか切実なデメリットです。
同じ姿勢を取り続けないことに勝る腰痛対策はないのですが、補助器具を使っていい姿勢を保てると多少は腰痛が軽減する印象があります。
対策としては、自衛するのが一番いいと思います。
新人の頃の私が少し勘違いしていたのであえて書きますが、オフィスにいることで評価される時代はとっくに終わっています。
連絡が取れて、タスクを順調に進めていれば問題ないはずなので、席を外して少し目を閉じたり、こまめに席を立って歩いたり、別の場所で作業したり、気兼ねなく動き回りましょう。
まとめ:エンジニアが正社員として働くデメリットを受け入れられるか?
6つのデメリットをまとめます。
3つは正社員エンジニアならではのデメリット、2つはエンジニアのデメリット、1つはオフィスワーカーのデメリットとして紹介しました。
- 正社員エンジニアのデメリット
- 個人目標を定量化しにくい
- 緊急性の高いトラブル対応や夜勤
- 希望しないプログラミング以外の仕事が割り当てられる
- エンジニアのデメリット
- スケジュールを決めるため見積りを迫られるプレッシャー
- 他人が作ったプログラムに追加開発するのが大変
- オフィスワーカーのデメリット
- 身体への悪影響
今回紹介したように、エンジニアが正社員として働くデメリットの多くは、対策をとって軽減することができます。
特に、前半で紹介したデメリット3つを対策して受け入れられるなら、正社員エンジニアも割に合うと言えます。
逆に、デメリットを受け入れられず、自力ではどうしようもない辛さを感じる場合は、プロの力を借りて少し冷静に働き方を見直してみましょう。