・ITエンジニアを目指したいけど、実際どうなの?
・想像と違っていて後悔するのは嫌だな…
未経験からIT業界に挑戦してみたいものの、こんな悩みを抱えている人は多いのではないでしょうか。
自分もそのうちの一人で、昔エンジニアに挑戦するか迷っている時に
ITエンジニアって楽しいの?何してるの?
忙しいの?給料良いの?etc…
と色々気になりまくっていました。
そこで今回は、事務職から組込みエンジニアに社内転職した自分の体験から、転職後に待ち受けていた現実をお話したいと思います。
IT業界に転職してから「こんなはずでは…」と後悔しないよう、迷っている方の参考になれば嬉しいです。
現実:思ったより大変だった編
01 やることがとにかく多い
ソフトウェアやシステムを作るとき「よーしプログラミングするぞー!」といきなり書くものではありません。
ざっと書き出しただけでも、以下のようにやることがたくさんあります。
- 顧客からの要求ヒアリング
- 要求分析
- 設計
- プログラミング
- テスト
- ②~⑤のレビュー
- リリース
- 必要に応じて資料作成
- ユーザーサポート
- バグ対応
自分が社内転職した時、まず最初に「プロジェクトを1つ完成させるために必要な成果物」を説明してもらったのですが、A3の用紙がびっちり埋まるくらい書かれていて、ちょっと引きました。
説明してもらうだけで2,3時間かかっていたような気がします。
設計書やテスト結果の残し方は企業やプロジェクトによっても違うので、かかる時間や大変さはそれぞれですが、少なくとも自分の職場では「想像以上にやることが多いっ…」ととにかく驚きました。
02 残業が増えた
IT業界は人材不足と言われており、自分も社内転職をして3つの部署で働きましたが、常に人手不足でした。
また、社内転職直後は自分のスキルが足りていなかったこともあり、プロジェクトは遅れてばかりでした。
そうなると残業でカバーすることになり、忙しい時期は月に80時間程度残業していました。
世の中にはもっと多く残業している人もいるので甘えだと思われるかもしれませんが、自分は月に80時間でも負荷が高く、
- 家が掃除できず荒れ放題
- 食事も適当で体調や肌がボロボロ
- 睡眠不足で頭が回らない
と散々な状態でした。
周りから見ても「えいとさん、最近疲れてるね…。」と言われるほどでした。
ここ数年は働き方改革もあり、自分の職場では残業は多くても月40時間程度になったため、プライベートの時間も増えました。
残業の多さは企業にもよると思うので、転職前に十分チェックすることをオススメします。
03 周りと自分を比べると凹む
転職したばかりの頃は、技術だけでなく、プロジェクトの遅れや問題への対策など、とにかく分からないことだらけでした。
そんな未経験の自分と比べて、周りは数々の修羅場(?)をくぐり抜けてきたエンジニアばかり。
最初の頃は何もできないどころか、足を引っ張っている自分に無力感を感じていました。
ありがたいことに自分はとても優秀な先輩の下で働かせてもらうことが出来たのですが、その先輩は
- 技術すごい
- 記憶力すごい
- プロジェクト持ってる量すごい
- 職場の改善活動まで進んでやる
- コミュニケーションスキル高い
- 優しい
と、とにかく何でも出来て、自分がレベル1だとしたらレベル100くらいの方でした。
そんな人と一緒に仕事が出来たのはとても幸運でありがたかったのですが、
「自分はこの人の10分の1も仕事出来ていない気がする…。」
という思いが頭によぎり、凹む日も少なくなかったです。
現実:思ってたのと違った編
01 プログラミングをする時間が意外と少ない
仕事中8割くらいはプログラミングしてるのかな~
と思っていましたが、まったくそんなことはありませんでした。
理由は大きく2つあります。
- プログラミング以外にやることが多い
- 年数が経つと「書く人」から「チェックする人」になる場合も
①プログラミング以外にやることが多い
”思ったより大変だった編”でも書きましたが、ITエンジニアの仕事はプログラミングだけではありません。
開発の時期やエンジニアの職種にもよりますが、組込みエンジニアの自分の場合、プログラミングをするのはプロジェクト全体のうち1~2割程度です。
そんな!自分はプログラミングをバリバリしたいんだ!
という方は、ITエンジニアではなくプログラミングに特化したプログラマーという選択肢もあります。
②年数が経つと「書く人」から「チェックする人」になる場合も
自分の場合、最初の数年は経験を積むために自分で手を動かしてプログラミングする業務を担当させてもらえました。
その後は委託会社に開発を依頼して、自分は委託先の人が書いたプログラムをチェックすることが増えました。
1人で出来る作業量は限られているため、委託してメンバーを増やさないと案件がこなせなかったためです。
ずっとプログラミングすることがメインだと思っていたので、このギャップはなかなか衝撃でした。
また、業務での限られたプログラミングしかしていなかったので
自分のチェックで大丈夫だろうか…
という思いがあったのも正直なところです。
02 コミュニケーションスキルが超重要
ITエンジニアってずっとPC作業で、人と関わらなくてよさそう!
と思うかもしれませんが、プロジェクトを成功させるにはコミュニケーションスキルが必要不可欠です。
なぜなら、ソフトウェアやシステム開発にはチーム内外問わず多くの人が関わっているからです。
具体的には以下のような人との関わりがあります。
- 顧客
- チームメンバー
- ユーザー
- 上司
- 他部門・他チーム
①顧客
- 要望をしっかり聞いて、認識齟齬を防ぐ
- 必要な機能、納期、費用などを調整する
認識齟齬を防ぐのは非常に重要で、お互いの認識がずれたまま進むと開発の手戻りが発生し、やり直す分の工数が必要となり開発費がかさんでしまいます。
顧客が望んでいるものと違うものが出来上がってしまうのは、満足度も下がり信頼を失うことにもなりかねません。
機能、納期、費用についても顧客の要望をすべて受け入れられない場合もあります。
かと言って「無理です!」と突っぱねるのではなく、相手の気持ちを汲みながら実現可能な落としどころを見つける必要があります。
②チームメンバー
- 複数人で同じものを開発する場合、進捗や状況を共有する
- 遅れている場合は素早く報告して軌道修正する
開発する機能が大きい場合、複数人で開発を分担することがあります。
プログラムはどこかで矛盾があると正しく動かなくなってしまうので、作り方を設計書などに書いて、メンバー全員で共有して正しく理解しておく必要があります。
進捗に関しても「Aさんの成果物を元にBさんが作業する」という場合に、Aさんの作業が遅れるとBさんも作業できず、プロジェクト全体の進捗が遅れてしまいます。
そのため都度進捗を共有し、開発の遅れは素早く把握してプロジェクトが円滑に進むよう軌道修正する必要があります。
コミュニケーションが取れずにいると以下のようなことが起こってしまいます。
あれ、設計書が更新されてる
あ、間違えてたんでガッツリ修正しておきました!
ええっ!もう前の設計書の通りにプログラム書いちゃったのに…やり直しじゃない…
この作業、今日完了予定だけど何時ごろになりそう?
すみません、実は遅れてて…あと2週間はかかりそうっす
ええー!納期まであと1週間しかないのに!!!
このようなことを防ぐため、チームメンバー間でのコミュニケーションも非常に重要です。
③ユーザー
- ユーザーが実際に使用して感じた不明点に回答する
- 不具合があれば対応する
完成したソフトウェアやシステムが世の中に公開されて、実際にユーザーの手に届いたとき、不明点や不具合があればユーザーからの問い合わせが発生します。
と言っても、ユーザーから直接連絡があるわけではなく、開発の依頼主(①顧客のことです)を経由して連絡を受けることが多いかと思います。
この時、「ユーザーが何に困っているか」を素早く正確に把握することが大切です。
必要に応じて「実際の操作画面のスクリーンショットを送ってもらう」などユーザーに対応をお願いする場面もあるため、相手が快く感じてくれるようなコミュニケーションスキルが必要になります。
④上司
- リリースの承認をもらうために説明する
- チーム内の課題を報連相する
筆者が組込みソフトウェア開発なので独特な文化なのかもしれませんが、作ったソフトをリリース(顧客に納品)する前に上司や品質を管理する人に内容をチェックしてもらう必要があります。
上司はたくさんのプロジェクトを見る必要があり、1つ1つの内容を細かく把握している訳ではありません。
そのため、限られた時間で内容を理解してもらえるように、事前に資料をまとめて大切なポイントを絞って説明する必要があります。
また、プロジェクトで何か課題や問題が発生した時、チーム内で解決できるものもあれば、上司を巻き込んでチーム外の人に動いてもらう必要がある場合もあります。
例えば、チームメンバーが1人病気になってしまい人員が不足するため補填してほしい、というような場合ですね。
報連相=「報告・連絡・相談」をして、素早く問題を解決できるよう上司とも上手く連携する必要があります。
⑤他部門・他チーム
- 依頼や問い合わせに対応する
- 分からないことがあった時に質問する
ソフトウェアやシステムの開発には多くの人が携わっているため、他部門や他チームからの依頼や問い合わせに対応する必要があります。
また、何か分からないことがあった時「以前あのチームで同じようなことをやっていたから聞いてみるといいよ」というようなこともよくあります。
他部門や他チームだと初めて話す(チャットやメールかもしれませんが)ことも少なくないので、初対面の人とでも会話できるスキルが必要です。
03 勉強し続けなければならない
やったー!エンジニアになれたぞー!勉強から解放されるー!!
と、転職当時の自分は思っていましたが、それは重大な間違いでした。
ソフトウェアやシステムの技術は日々進化し続けているため、エンジニアになった後も常に学び続ける必要があります。
もちろん業務の中でも学べることはたくさんあるのですが、勤務時間は限られているので疑問があっても完璧に理解しながら進めるのは至難の業です。
自分に足りていない知識や技術があると感じる場合には、業務以外の時間でもスキルを磨くことが大切だと、身にしみて感じています。
現実:意外と良かった編
01 給料が増えた
自分は事務職から組込みエンジニアに社内転職しました。
「転職したからさっそく月給〇万円アップね!」という訳ではなく、昇進スピードが上がっていくスタイルでした。
そのため少し時間はかかりましたが、事務職を続けた場合と比較すると年収200万円ほど上がりました。
ただ、もちろん
簡単な仕事で楽に稼げる~!
という訳ではなく、相応に業務の負荷が上がり責任も重くなりました。
お金をたくさん稼ぐというのは、やっぱり大変なことなんだなぁ…と身をもって体験しました。
02 仕事を通じてスキルアップした
組込みエンジニアになっていくつかのプロジェクトを経験させてもらって、以下の面で成長がありました。
- 「実務経験」を積めた
- 課題解決力
- コミュニケーションスキル
- 技術力
「実務経験」を積めた
何気にこれはものすごく大きいんじゃないかと、この記事を書いていて気づきました。
実務経験はどう頑張っても自分1人では得ることが出来ないので、実際にエンジニアになってみてプロジェクトを担当して経験が積めたのは大きな成長だと思います。
自分は今転職を考えていませんが、今後別の会社への転職を視野に入れた場合も大きな武器になると思います。
課題解決力
プロジェクトを進めると、大なり小なり課題に直面します。
書いたプログラムがエラーになっちゃう!
開発が遅れてる!
うわーバグが発生した!急いで報告と修正だ!!
というように、とにかく色々起こります。
最初はどうしようどうしようとパニックになるだけでしたが、今は過去の経験から「この時はこうやって対処しなきゃな」と少しは落ち着いて対応できるようになりました。
コミュニケーションスキル
エンジニアは意外と多くの人と関わります。
最初の頃は困ったことがあったら先輩が色んな人と会話して解決してくれていましたが、少しずつ自分にも任されるようになりました。
年数が経って、顔見知りの人が増えて話しやすくなったというのもあるので、まずは継続するというのも大切なことなのかもしれません。
技術力
仕事では組込みソフトウェア開発をするので、業務に関係する内容の技術力も身につきました。
具体的には以下のような内容です。
- プログラミング
- 顧客の要求を把握・分析する
- 開発手法に応じた設計書を書く
- 必要なテスト項目を作成する
- テストを実施する
- エラーやバグの原因を分析する
しかし、一緒に働いている人を見ると優秀な人ばかりで「なんでそんなに早くて正確なの?」と圧倒されることも多々あります。
その姿を見ていると自分の伸びしろは無限大に感じるので、技術力はまだまだ磨いていきたいと思います。
03 リモートワークが増えた
自分の会社はコロナ前からリモートワークの仕組み自体はあったのですが、育児や介護など特別な理由が無いと使いづらい…という雰囲気がありました。
しかし、コロナ禍で全社的にもリモートワークが推奨され、ピーク時は月に1~2回しか出社しないくらい在宅が主流となりました。
ソフトウェアの開発はリモートワークとも相性がよく、業務で大きく困ることはありませんでした。
通勤で毎日往復3時間ほどかかっていたのが0になり、家事や趣味の時間が取れたり、こうしてブログにも挑戦できるようになったので、リモートワークが増えたのは嬉しい出来事でした。
後悔しない選択を
未経験からIT業界への挑戦は決して簡単なことではありません。
せっかく時間を費やしてやっと転職した時に
イメージと違う…転職やめておけばよかった…
と後悔することが無いよう、自分の体験が少しでも役に立てば幸いです。
最後まで読んでいただき、ありがとうございました。
コメント