近年、IT業界のエンジニアを目指す人を多く見かけるようになりました。しかし、ネットで検索をかけると上位に「システムエンジニア きつい」と表示される、SNSでは「エンジニア辞めたい」という声が散見される事態です。
検索結果を見て、「世間のエンジニアのイメージはネガティブなものばかりで、いいところを伝えきれていないのではないか。ネガティブなキーワードを見て、『エンジニアになるのはやめておこう』と離れていく方も多いのではないか。」と感じました。
そこで今回はアクシアのシステムエンジニアに、システムエンジニア・Webエンジニア(プログラマ)の仕事がどれだけ楽しいか、辛かった経験はどんなことかを熱く語ってもらい、記事にしました。
エンジニアの仕事について理解を深めていただき、悪いことばかりではないことが広められたら幸いです。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
システム開発エンジニアの仕事内容
アクシアのシステムエンジニアが、主にどのような仕事をしているのかを紹介します。
一般的にはエンジニア=プログラマ、システムエンジニア=上流工程のみの担当というイメージですが、アクシアではプログラマ経験がないとシステムエンジニアにはなれません。システムエンジニアでもプログラムを書いて活躍しているため、以下、呼称は「エンジニア」で統一します。
プログラミング
エンジニアの醍醐味だと思います。プログラミングができなくても「SE」と呼ばれる風潮にありますが、プログラミングの工程が最も楽しいと思います。1つの言語をしっかり習得すれば、2つ目以降の言語はすんなり習得できるので、どんどんできることが広がります。
テスト
ブラックボックステストとホワイトボックステストの両方がありますが、プログラミング作業とテスト作業はセットで行います。テスト専門の担当者がいる場合でも、自分でテストをせずに担当者にテストを回すとひんしゅくを買います。作成したプログラムの動作テストを行うのは、エンジニアの重要な仕事となります。
テストの仕事内容に関しては、こちらの記事で詳しくまとめています。
詳細設計
主にシステムの裏側の処理の設計をします。プログラムをどう作るか設計したり、データベースを設計したり、プログラムレベルでの設計を行います。システムが良くなるか、悪くなるかを左右する重要な工程です。
システムの性能や他の人がわかりやすいように配慮が必要ですので、自由に設計してよいわけではありません。責任が伴う工程ですが、やりがいがある工程でもあります。
基本設計
主にシステムの目に見える部分の設計をします。使いやすい機能設計や画面設計を顧客と打合せの中で検討・決定してゆく工程です。コミュニケーション力が求められる仕事でもあります。
詳細設計・基本設計に関してはこちらの記事で詳しくまとめています。
要件定義
システム開発をする際に最初に行う工程で、顧客にヒアリングをしてそもそも何を開発するかを決めてゆく工程です。システム開発の経験値がある程度必要な仕事です。
依頼者の業務や社内の事情、業界の商習慣などを深くヒアリングして理解を深め、問題を解決するためにはどのようなシステムが望ましいかを提案できる能力が求められます。
要件定義に関してはこちらの記事で詳しくまとめています。
エンジニアの仕事でやりがいを感じたこと
エンジニアの仕事をしていて楽しいと思うことや、やりがいを感じたことを紹介します。
プログラムが思った通りに動作したとき
自分の書いたプログラムが思った通りに動作したときに、楽しさややりがいを感じます。なかなか思い通りに動かせない問題に当たったときでも、解決すると難しいパズルが解けたような快感と喜びを味わえます。
逆にプログラミングを勉強中にここに魅力を感じない場合は、エンジニアには向いていないと思います。
お客様の要望通りにシステムが組み上がったとき
ときには、お客様の要望を叶えるには難しい実装をしなければならないこともあります。困難と格闘しながらも、要望通りにシステムを組むことができたときに達成感を味わうことができます。
お客様の要望のもう一歩先に踏み込んだ便利さを提案・提供できたとき
要件定義や基本設計の段階でお客様の要望をヒアリングしたときに、自身のシステム開発の経験からよりよいシステムとなるよう、さらに踏み込んだ提案をすることがあります。その提案をしたときに、お客様に喜んでいただけるととても嬉しいです。
また、完成間近のシステムを自分で触り、使い心地がイマイチだと感じた部分を修正して、より使いやすくできたときも充実した気分になれます。
このようにお客様の要望を先回りして解決し、喜んでいただけたときにやりがいを感じます。人を喜ばせることが好きな方には、たまらなく楽しいと思える仕事だと思います。
導入したシステムがお客様の役に立ったとき
実務でプログラム(システム)を作り、実際にお客様が利用し始めて利便性を感じてもらった時、喜びと安心感を感じます。どんなにテストを実施していても思いもよらなかった障害が出ることもあるので、作り手としてはリリース直後はドキドキしています。
何事もなく動作していることで安心し、それと同時に成し遂げた達成感を味わいます。また、直接の声で評価をもらえた時はこの仕事をやっていてよかったと感じます。
最新の技術を使って開発ができたとき
IT業界は技術の移り変わりが激しく、流行りや新しい技術が目まぐるしく更新される業界です。エンジニアである以上、常に新しい技術・開発手法にアンテナを張っています。自分で触ったことがなかった技術を使ってシステムが動かせるようになったとき、自分のスキルがレベルアップした実感がわいてきます。
他にも、普段より難しいことにチャレンジして成功したときにも自分の成長を感じることができるので、取り組みがいがある仕事だとしみじみ思います。
他のエンジニアがプログラムを綺麗に書いているのを見かけたとき
エンジニアである限り、「簡潔でわかりやすい綺麗なプログラムを効率よく書きたい」と誰しもが思っているはずです。他人が描いた簡潔でわかりやすい綺麗なプログラムに出会うと、触発されて自分もより良いプログラムを書けるようになりたいと思い、モチベーションアップにつながります。
プログラミング言語は世界共通ですので、世界中にライバルがいるともいえます。そう考えると、わくわくしませんか。他人に触発されるのがエンジニアの醍醐味だと思います。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
エンジニアのメリット
エンジニアとして仕事をしていて、良かったと思う点について紹介します。
論理的思考が身につく
業務システム、Webサービスにおいては数学的なひらめきや計算能力よりも、論理的思考が求められます。プログラムを作成中もそうですが、テストケースを考えるときや、障害の原因の切り分けを行う際にも論理的思考は重要です。
論理的思考が身につくとエンジニアの仕事だけではなく、物事を整理して、事実に基づいて仮説を立てて試行するなど、ビジネスの面で役立つ思考力が養われます。
言語化能力が身につく
定義をしっかり行っていないと、プログラムを書くことができません。必然的に、あいまいな物事も言語化してはっきりさせる力がつきます。
例えば、「新しい順に並べてください」という要望があった場合、「何をもって新しい順番なのか」を明確にしないとプログラムは書くことができません。「新しい順=一番最初に作られた順」なのか、「新しい順=最後に更新があった順」なのかを明確にする必要があります。
あいまいにせずに明確にする言語化能力を身につけたことで、より作るものを具体的にはっきりとさせることができ、スムーズに作成にとりかかることができます。
また、言語化能力が身についたおかげで、チャットが主流になったリモートワークでも、相手が答えやすいように明確な言葉にして質問できるようになりました。
情報処理能力が高くなる
日常的にプログラムを作成するので、仕事以外のプライベートでもちょっとした集計処理や計算処理が必要な場合、一般の人より早く処理できます。
生涯現役で働ける(諸説あり)
「プログラマーは40歳で定年」という説もありますが、アクシアではそう考えていません。基礎的なスキルが十分にあり、最新の技術に追随できる力があればプログラマーは少なくとも40歳で定年ということは決してありません。50代でも最新の技術をどんどん吸収し、バリバリプログラムを書いているエンジニアはいます。
手に職がつく
エンジニアの経験があれば、転職に困らないというわけでは決してありません。しかし、エンジニアとしてしっかりとした基礎能力や市場にニーズのある技術を習得していれば、技術職として転職の際に有利に働くことがあります。
エンジニアの仕事で大変と感じたこと
エンジニアの仕事をしていてつらかったエピソードを紹介します。
プログラムが思った通りに動かないとき
これは、つらいです。どんなに見直しても正しい(と思っている)のに、期待通りの動作にならないことがあります。絶望的な気分になりますが、たいていの場合ちょっとした思い込みや単純ミスが原因です。他人に相談するとあっさり解決したり、翌日にすっきりした頭で見ると問題点が1発でわかったり、解決したときの喜びがセットでついてきます。
不具合の原因がわからないとき
相当きついです。たいていの場合、お客様から催促されています。タイトな時間の中で問題を切り分け、障害をいち早く復旧状態に戻す1次対応を行います。また、原因分析の上、再度発生しない再発防止策(恒久対応)を考える必要があります。
他社/他人が作った汚いソースコードを読むとき
アクシアでは他社で開発したシステムの保守や開発を行うことを事業の1つとしていますが、他人の書いたソースコードを読むのは基本的にしんどい作業です。
特に、保守性が悪い状態(プログラムがスパゲッティ化している、数千行の処理が1か所に実装されている)で作成されているものを読み取るのは重労働です。
余談ですが、汚いソースコードを書いたのが過去の自分だと気づいたときはとてもダメージが大きいです。これはエンジニアあるあるだと思っています。
システム障害が発生したとき
システムは24時間稼働していることがほとんどです。保守の契約内容によりますが、夜中にスクランブル発信してすぐに対応が必要な場合があります。
実際の開発費用・期間をまとめた資料を無料で差し上げます。資料請求はこちら>>
エンジニアに向いている人
最後に、エンジニアを目指している人に向けて、エンジニアに向いている人はどのような人なのか考えましたので紹介します。
モノ作りが好きな人
作るのが好き、という人が向いていると思います。モノ作りは人に任せて、サービスの企画やプロジェクトのマネジメントだけしたいという人はエンジニアではなく、別の職種が向いていると思います。
論理的思考ができる人
仕事の中で習得していく部分も多いですが、ゲームなどで論理的思考が問われるものが得意な人は向いているかもしれません。
コミュニケーションが得意な人
プログラミング専門であっても仕事はチームで進めますので、コミュニケーションスキルは重要です。トップ営業マンのようにすらすらきれいに話せる必要はありません。相手の言っていることを理解し、こちらの考えを伝えるキャッチボールができれば問題ありません。
根気強い人
プログラミングは根気のいる作業です。コツコツコードを書いたりテストをしたり、ログを調査したり、地道な作業をすることが多くあります。そのため、ある程度の根気強さが求められます。
面倒くさがりな人(諸説あり)
前述の「根気」とは矛盾するかもしれませんが、面倒な作業(何回も繰り返す作業)を自分で自動化するプログラムを書くことはエンジニアの得意技です。面倒な作業に対して「これはこういうプログラムを作れば自動化できるのでは?」と発想し、それを実現したくなる人はエンジニアに向いていると思います。
知っておきたい「プログラマの三大美徳」
プログラマの三大美徳とは、プログラム言語「Perl」の開発者・ラリー・ウォールが提唱した考え方です。「良いソフトウェアデザインの基本である怠惰、短気、傲慢の3つの美徳を身につけることをおすすめする」と彼は提唱しています。もしもエンジニアを目指しているのならば知っておきたい心構えですので紹介します。
この項のみエンジニア=プログラマとして説明します。
怠惰
怠惰なプログラマは、毎回同じ作業をすることを嫌います。「もっと作業を楽にできないか?」と考えて作業を効率化することが、怠惰なプログラマといえます。
例えば、毎回同じ文章を入力するのを自動化したり、同じ説明や質疑応答を何度もしないように文章に起こしてドキュメントを残したりなどといった工夫をして、全体の労力を減らしましょうという考え方です。
短気
短気なプログラマはせっかちで、時間がかかることや手数が多いことを嫌います。これから書くプログラムが目の前の問題を解決するだけではなく、仕様変更が起きて書き直す手間がかからないよう他の問題も先回りして解決できるプログラムを書こうとする人が、短気なプログラマといえます。
「今ある問題に対応するプログラムにとどまらず、今後起こりうる問題を想定したプログラムを書きましょう」という考え方です。具体的には、仕様変更が起きないよう先回りをした仕組みを作ったり、要望に合わせて柔軟にカスタマイズできる仕組みを作ったりと、保守性の高いプログラムを書けることがよしとされます。
傲慢
傲慢なプログラマはプライドが高く、作ったプログラムに対して文句を言われるのを嫌います。文句のつけどころのない完璧なプログラムを書こうとする人が、傲慢なプログラマといえます。
文句を言いたくなくなるようなプログラムを書いて、それを維持することが傲慢なエンジニアの資質だといいます。具体的にはテストを書いて不具合を極力なくしたり、簡潔で意味がわかりやすい明快なコードを書いたりと保守性を上げるために努力することが求められます。
傲慢の気質を持つことで自己研鑽を怠らず、より完璧なプログラムとなるようコードを直す努力を続ける気高いプログラマになることができます。
システムエンジニアの仕事は楽しい?まとめ
アクシアのエンジニアに聞いたリアルな話をまとめましたが、いかがでしたでしょうか。エンジニアの仕事は広範囲にわたるため、確かに大変な仕事です。しかし、自分の成長を実感する機会が多いやりがいのある仕事でもあります。また、エンジニアの仕事以外でも役立つメリットが多く身につきます。
紹介したエピソード以外にも、エンジニアの仕事の楽しみ方は多岐にわたります。エンジニアの仕事の楽しさが少しでも伝われば、また、仕事を楽しいと思えるきっかけづくりになりましたら幸いです。
最後までお読みいただき、ありがとうございました。