システムエンジニア~人生で一番印象に残っている恋愛~
企業向けにwebシステムの開発を行う会社で、要件定義(顧客の要望をヒアリング)からシステムのリリースまでの一連の開発を全て行っていました。
私が担当していた領域はシステムの設計を考える詳細設計、システムを実際に作っていく開発、作ったシステムをテストするテストの3つのフェーズを担当していました。
システムエンジニアは黙々と仕事をするというイメージが世間では強いですが、実際はシステムの仕様に間違いがないように何度も顧客と打ち合わせをしたり、チームメンバーと話し合ったりします。
その他にもシステムを作る上で重要で大変なバグ修正という仕事があります。開発ではバグが許されないので、バグ修正はとても神経をすり減らしながら開発をします。しかし人間が作る以上、バグを0にすることはできません。そのため先ほど挙げた打ち合わせ、詳細設計、開発、テストの他にバグ修正が入ります。
これらの一連の仕事は全て繋がっているので設計でミスがあった場合、設計からやり直すことになり大幅な手戻りが発生するので、システムエンジニアの仕事は非常に正確さが求められます。
システムエンジニア~一番嬉しかったこと~
チームで一丸となって一つのシステムを作り上げることに非常にやりがいを感じました。ミスがあったりすると動かなくなってしまうところがパズルを組み立てているようで非常に面白かったのを覚えています。バグ修正や納期に追われて忙しい時期もありますが、それを乗り越えて無事にリリースして、お客様が使っているのを見ると、「忙しくて辛かったけど頑張ってよかった!」という気持ちになれます。
また、ITの技術の進歩は非常に早いので、違うシステムを開発する時に流行りの手法を用いてシステム開発をすることもあるので、常に新しいことに挑戦することができる、というのもやりがいの一つです。もちろん、新しい技術を習得するために勉強する必要があるのは言うまでもありませんが、勉強すればするだけ会社で活躍することもできるし、キャリアアップも期待できます。
システムエンジニア~印象的な喧嘩の内容~
システム開発において気をつけるべきこと
システム開発では納期が決まっているため、納期前になると残業が多くなることや、勤務時間外でも勉強をしなければ第一線で活躍できるエンジニアでい続けられないことが挙げられます。
システムエンジニアになる人はプログラミングが好きな人が多いので、残業しても苦にならないと言う人が一定数存在します。そのため、プログラミングが好きじゃない人がシステムエンジニアになってしまうと残業時間の多さに苦しめられることになります。
また、ITの技術は一年前に流行りだったものが、一年後には時代遅れの技術になっていることは珍しくありません。一つの技術に固執しているとあっという間に置いていかれてしまうので、勉強が嫌いな人にとっては勉強し続けることはマイナス面になってしまうでしょう。
システムエンジニア~一番悩んだこと~
若い人の場合は、基本情報技術者の資格を持っていれば優遇されやすいです。しかし、あくまでエンジニアは実績や実務経験を重視されるので、自分でシステム開発を行なっていたりする方がいい仕事をもらいやすいです。
実績がない場合は、資格を取得するべきですが、実績を積める環境にいるならばより上流の工程(要件定義)の実績を積むとどんな仕事にでも活かせます。
システムエンジニア~その悩みをどうやって解決したか~
ITの技術が好きな人、プログラミングが好きな人、細かい作業が好きな人、論理的な人が向いています。
反対に、ITに関心がない人や、大雑把な性格の人、論理的に考えるのが苦手な人は向いていません。
システムエンジニアはどうしても納期前は残業が増えてしまうので、好きではない人がエンジニアを続けていると残業時間の多さに苦しめられます。
また、納期前の作業はバグの修正が多いので、プログラムのコードを一行一行読まなければなりません。非常に細かい作業が多くなります。大雑把な人には、こういった細かい作業は非常に苦痛に感じますし、ミスを見落としやすくもなってしまいます。
プログラム自体は論理的に書いていくので、論理的な思考力が必要になります。
普段、物事を直感に頼って判断している人などは、システムエンジニアにならない方が良いです。
システムエンジニア~その相手との後日談~
最初はシステム開発のテストの部分を担当し、その後システム開発を行い、お客様との要件定義を担当して、最終的にプロジェクトの責任者であるプロジェクトマネージャーになります。
中には、開発における技術のみを突き詰めていく人もいますが、多くの場合はプロジェクトマネージャーになります。
年数としてはテストを半年〜一年くらい担当した後、システム開発を二年〜五年くらいやり、サブリーダーとして要件定義に関わったりするのを三年〜五年くらいやった後にプロジェクトマネージャーになります。
たまにマネージャーをやっていた人が開発をメインで担当したりすることもありますが、基本的にはマネージャークラスになると実際に手を動かしてプログラミングをすることはなくなります。
ずっと手を動かして物を作りたい人は、技術を突き詰めていくエンジニアになるという選択もあります。
システムエンジニア~長く付き合っていくためのアドバイス~
YouTubeの影響で未経験からシステムエンジニアに転職する人が増えたように感じます。
システムエンジニアは圧倒的に供給不足ですが、ある程度経験を積んだエンジニアが供給不足で未経験エンジニアは供給過多のように感じます。
コロナショックもあり、体力のある企業も未経験者はあまり雇いたくないのが現状のようで、現場でも未経験者の採用は見送られることが多いように感じます。
キャリアアップも気にせず、とにかくエンジニアになりたい!と言う人ならば、就職先はいくらでもあります。
深夜のシステム監視やテスト専門のエンジニアなどは未経験者が一番最初に就職するところとしてよく名前がありますが、こういったところに就職してもキャリアアップは望めずスキルも身につかないので、あまりお勧めできません。
技術的な動向としては、スマートフォンの普及によりスマホアプリの開発が増えています。
従来のWebアプリの開発案件もないわけではありませんが、最新の技術を勉強したり活用したい方はスマホアプリ開発をする方が最新の技術に触れることができそうです。
今後は、中級以上のエンジニアに仕事が集中し初級者エンジニアには仕事があまりこない、といった構図になるかもしれません。
システムエンジニア~今当時を振り返って、過去の自分や同じような状況の方にかけたい言葉~
プログラミングスクールでのプログラミング学習はお勧めできません。プログラミングの教材はネットにたくさんありますし、就職した後は自分で勉強していかなければなりません。そのため、youtubeやgoogleを活用して調べながら勉強をしていくことをお勧めします。
エンジニアにとって最も大切なことは、調べる力です。googleを使い倒せる人が優秀なエンジニアになっていきます。適切な検索キーワード、文章の適切な理解、エラー文の読解能力。こういった能力は調べることを繰り返す中で養われていくので、初めから与えられた環境で勉強するより自分で調べていく方がプログラミング力と調べる能力を両方身につけることができます。
そのため、プログラミングスクールには入学せず独学で勉強するのがお勧めです。