SE(システムエンジニア)とは?仕事内容や必要なスキル
システムエンジニア(SE)は、今とても人気の高い職種ですが、どのような仕事内容でどういった魅力があるのでしょう?
AI技術の発達や業務の効率化など、プログラミングされたロボットやシステムが人の代わりに仕事をする時代が来ています。
小学校でもプログラミングの教育が開始されるなど、現代のビジネスには欠かせない技術を支える職業となっています。
システムエンジニアといっても、かなり幅広く様々な仕事内容に分かれますが、こちらではオーダーメイドの業務システム開発に注目したシステムエンジニア(SE)やプログラマー(PG)という仕事について、当社の仕事内容と合わせてご紹介しています。システムエンジニアに挑戦してみたい方はぜひご参考ください。
SEとPGの役割について
システムエンジニア(SE)とプログラマー(PG)の仕事内容の違いは、一言で言うと「SEが設計しPGが作成する」という役割分担になります。業界全体でみると一般的には、SEとPGの役割がはっきり分かれており、SEは設計業務に専念し、PGは作成業務に専念する、というプロジェクトチーム体制が多いと思います。
ただ、当社のように、未経験からの場合、まずはプログラマーからスタートし、経験により徐々に設計も自然と出来るようになり、いつの間にかSEの仕事内容も担当することになっていく、というように、あまり人に対して「SE」や「PG」を使うことはせず、「このプロジェクトでは、SEの仕事を担当」や「次のプロジェクトでは、PGの仕事を担当」のように、担当する仕事内容によって使い分けている場合もあります。
また、「システム開発に関わるエンジニア」のことを、SE・PGをまとめて「システムエンジニア(SE)」と呼ぶこともあります。
システムの提案・設計をするシステムエンジニア
魅力的なシステムを開発するためには、ヒアリングを取り入れてクライアントの要望を聞き出す必要があります。
クライアントのニーズに合ったシステムを設計するため、ヒアリングはシステムエンジニアが手掛ける最も大切な業務の一つと言っても過言ではありません。
この工程でクライアントとの意思疎通が上手くいかなければ、後の工程が全て無駄になってしまうくらい重要な業務です。
業務システムの場合は、まずはクライアント各担当者が日々行っている業務内容の整理から始めます。
「お客様の仕事内容をよく知る」ことがとても重要になります。代わりに自分がその現場で働けるくらいのレベルまで仕事内容をヒアリングすることがポイントです。
システム導入後は、クライアントの業務内容がどのように変わるのかをイメージしておくことも大切です。
クライアントの要望が分かれば、どのようなシステムにするかシステム提案をします。
これには、クライアントとのコミュニケーションはもちろんのこと、システムで使用するサーバーやデータベースの選定や、プログラム言語は何を使うのか?など、
システムの規模やシステムの利用人数、開発費用面などから何度も検討を重ね、よりクライアントに合致したシステム構成になるように考えます。
また、システム構成の検討だけではなく、納期に合わせた開発スケジュールの組み立てや、実現するための課題の整理、同開発チーム内のSEやプログラマーとの意思疎通など、やらなければならない仕事が山積みになります。
そのため、システムの規模にもよりますが、通常はプロジェクトリーダーSEの指示のもと、補佐役のSEと設計業務を進めていくことになります。
設計したシステムを作るプログラマー
プログラマーの業務は、システムエンジニアが提案・設計したシステムを構築することです。
ただ、単純にSEに言われたままプログラムを作成するだけではなく、ここで重要となるのは「どのように作成するか?」ではなく「なぜこのプログラムを作成するのか?」「クライアントはどのようにこのプログラムを使うのか?」に興味を持つことです。クライアントの要望からSEの提案/設計に至るまでの背景を理解しておくことがとても大切です。
一般的にプログラマーはクライアントの要望や設計の背景を知る必要はない(または、経験が浅いため理解できない)、と思われることが多いように感じますがそんなことはありません。
クライアントの誰が、どのようにこのプログラムを使うのかを理解した上でプログラムの作成を行うと、設計上の矛盾点に気付いたり、より良い提案が出来たりと、SEをフォローすることになり、システムの質を上げることにも繋がります。
また、プログラマーは、プログラム言語の知識、技術の習得は当然必要となりますが、業務システムを開発する上では、特に設計担当のSEとのコミュニケーションは不可欠です。プログラミングは、独りよがりの思い込みで作成を進めてしまうことに陥りやすい作業ですが、疑問に思ったことや仕様や作成方法に違和感を感じた場合は、すぐにチーム内で相談しながら進めることが大切です。
プログラムが完成すると、仕様通りに作成したプログラムが正しく動作するかどうかを検証します。これには考えられるあらゆるパターンを網羅する必要があります。特に業務システムでは先述の「クライアントの誰が、どのようにこのプログラムを使うのか」を意識したテストが必要となります。クライアントの業務に耐え得る品質になっているか、がとても重要です。
システムエンジニアという仕事の面白さ
多くの人に感謝される喜び
お客様と一緒に考えて作りあげたシステムを納品した際、相手の喜んでくれる顔を見ると大きな満足感が得られるものです。時には「とても便利」「役に立った」といった感想や感謝の気持ちが届くこともあります。
そういった時には、完成までの辛い日々を忘れることができ、これからの業務に対する大きなモチベーションにもつながります。
プロジェクトメンバー全員で成果を出すことが出来れば、みんなでこの喜びを共有することが出来ます。
こういったお客様の素直な気持ちを目の前で感じることが出来るというのも、システムエンジニアとして働く魅力の1つです。
また、業務システムの場合は、システムの完成後からが本当のスタートとなりますが、日々お客様の業務は刻々と変化し続けていきます。そのため、変化した業務に合わせて、システムは常に改善/変更し続けることが必要となりますので、必然的にお客様との付き合いは長くなります。
その数々の実績がお客様の信頼を生み、とても頼られる存在になりやすいこともシステムエンジニアという仕事のやりがいです。
作りあげる達成感
昨今、様々な場所でシステムは利用されています。例えば、電子マネーやスーパーのレジ、ショップの商品管理システムなど、私たちの身近でシステムは活用されています。そんなシステムを自分で企画・設計して、誰かの生活に溶け込んで便利に利用されるというのは、とても魅力的なものです。
企画から完成するまでに持てる限りの知識と経験を活かして作りあげたシステムが完成した時には、大きな達成感を得ることが出来ます。
また、システムの規模にもよりますが、長いプロジェクトでは1年~2年ほどの期間をかけて開発することも珍しくありません。その間全て順調にプロジェクトが進むことは珍しく、難題にぶつかったり、意見の食い違いが起きたりと、問題が多く起こるものです。
困難を乗り越えて、完成したシステムが利用されているところを目の当たりにすると、心から頑張って良かったと感じます。
技術スキルが向上して知識が増える
より満足してもらえるシステム開発をするには、多くの知識やノウハウが必要になります。これらを積極的に吸収し、身につけることで技術スキルが向上していくのです。
技術の推移が激しいIT業界では、システムエンジニアは常にアンテナを張り、他の新製品の情報を収集したり、メーカーの技術レポートに目を通すなどをして、新しい技術を勉強していく必要があるのです。
SEやPGの業務では、いつも同じ技術の使い回しではなく、新しい技術と接触する機会が多くあるため、知識や技術の幅を広げることも出来ます。そのため常に時代の最先端技術に触れているという喜びを感じられます。
また、身につけた技術を活かして更なるキャリアアップを目指すことも出来るため、とてもやりがいを感じることが出来る職業です。
業務システム開発においては、IT業界だけではなく、クライアントの業界も知ることができるため、様々な業界の知識が身に付きます。その業界ならではルールや言葉遣い(単語)などをはじめ、業界ごとの「あたり前」の違いを実感することが出来ますので、システムエンジニアとしてもヒアリング力や提案力がさらに向上していくことになります。
システムエンジニアに必要なスキル
システムエンジニアやプログラマーに必要なスキルは様々ですが、仕事内容を簡単にまとめると「何かのマニュアルに当てはめて作業を完結させる仕事ではなく、自発的に考えたり技術を習得したりすることが必要で、その考えや技術をクライアントやPJメンバー(他のSEやPG)と常に共有しながら作業を進めていく仕事であり、かつ納期にも間に合わないといけない仕事」という事になります。
未経験者や経験の浅いプログラマー・SEには、かなり敷居が高いように感じられ、ネット上には「辛い」「辞めたい」などネガティブな記事も良く見かけますが、とてもやりがいのある仕事です。下記のスキルについては、生まれ持ったセンスや性格の部分が大きく影響するものですが、時間を掛ければ、訓練することにより習得することが出来るものばかりです。「必ずSEとして活躍する!」という強い決意があれば問題ありません。
コミュニケーション能力、協調性
システムエンジニアにとって、コミュニケーション能力はとても大切です。システムエンジニアは、クライアントやプロジェクトメンバーと深い関わりを持ちます。
プレゼンテーションや打ち合わせなどは、コミュニケーション能力がないとお客様に納得してもらうことが出来ません。高いコミュニケーション能力があれば、お客様の要求を把握して適切な提案をすることができ、信頼を得ることが出来ます。
また、プロジェクトメンバーとは、仕様の確認や進捗状況の共有、打合せなど、チームワークでプロジェクトを進める上でチーム内での意思疎通は不可欠です。各メンバー同士の確認不足や思い込みが悲劇を招きます。いくらプログラム言語や設計能力に長けているSEやPGでも独りよがりの行動では、良いシステムは生まれません。
頭では分かっていても実践するのがとても難しいのが意思疎通なのです。各システムエンジニア、各プログラマー、チーム全員がコミュニケーションをしっかり取ろうと強く意識しなければ、システム開発をスムーズに進めることは出来ません。
技術を習得する力/適応力
SEやPGの仕事は、誰かに具体的な指示をもらって、マニュアルや手順書を見ながら指示通りに作業するだけの仕事ではありません。むしろそのマニュアルや手順書を作る側の仕事になりますが、これには物事の基本や法則を的確に見抜き習得することで、状況によって応用していくスキルが求められます。
1つのことを理解し習得する(使いこなせるようになる)ためには、何度もトライ&エラーを繰り返し「何としてもこの課題をクリアにする」という熱意を持ち、課題クリアのためにあらゆる方法を試行錯誤する必要があります。先輩SEや上司SEに考え方のアドバイスはもらえても、具体的な作業方法を教わることは出来ません。
常に自ら学んで身につけるというプロセスが、システムエンジニアやプログラマーになるためには欠かせません。初めて目にする新しい技術や手法でも、すぐに試して身につけ、それを使用する「適応力」が重視されます。プロジェクトの流れにしっかりと追いつき、勉強していくことで常に新しい技術を身につけることがとても大切なのです。
考える力/思考力
上記でも書きましたが、SEやPGの仕事は単純作業ではありません。お客様やプロジェクトメンバーから得た情報を真に受け過ぎず、自分なりに思考を巡らせる必要があります。素直過ぎる「Yes」は時に不幸をもたらします。常に物事に対して「・・・ということは?・・・」と自分の意見や考えを持つことがとても重要です。
システム開発において、システムエンジニアやプログラマーは、「こう言われたから、素直にその通りに作る」のではなく「こう言われたから、こう考えて(ときにはメンバーと相談して)納得した結果、こう作る」という思考回路を持つことが必要になります。
先を読む力/予見力
システム開発というのは、本当に様々な問題に直面することが多くあります。目先の作業ばかりにとらわれていると問題に気付くのが遅れてしまい、かなり開発が進んでしまってから対応を強いられることになってしまいます。特にプロジェクトを管理するシステムエンジニアは、ゴールまでの工程をイメージし「このままプロジェクトが進んでいくとどうなるか?」ということを常に考えておく必要があります。
また、システムエンジニアやプログラマーの頭を悩ませるものの一つとして納期があります。システム開発は、業者側(ましてやSEやPG個人)の都合で進められるものではありません。趣味であれば、好きなだけ時間をかけて自分の思い通りにプログラミングを楽しめば良いですが、仕事となるとそうはいきません。
業務システムはクライアントが使うものなので、お客様が欲しいと思っているシステムを、お客様が欲しいと思っている期日までに作り上げなければならないという制限があります。
そのため、SEやPGには、先の状況をイメージすることで、希望的観測ではなく現実的なスケジュールを立て、その計画通りに実行していくスキルが求められます。先を読むことでリスク回避にもつながり、プロジェクトを円滑に進めることができます。
継続力
プログラマーやシステムエンジニアの仕事は、単純作業ではないため、数ヶ月程度で簡単に習得できるものではありません。IT業界だけに限らず技術職という仕事は、活躍できるようになるためには長い年月が必要となります。
「今、出来ないのは当たり前」と捉えて、日々、SE・PGとして出来ることを増やしていく、という感覚が必要です。システムエンジニアとしての理想や目標を持つことはとても良いことですが、現実とのギャップを気にし過ぎてしまっては身が持ちません。ただし「出来ない!」と割り切って目を背けてしまうのも問題です。
大切なのは「今、SEとして何が自分に足りないのか?」をしっかり分析し、克服するために努力を楽しむメンタルを持つことです。「1日でも早くチームの戦力になる!」という気持ちと、「1つずつ地道にしっかり習得していく!」という、両方の気持ちを持ち続けることが重要です。
システムエンジニアの将来性
システムエンジニアは重宝される職種
ネット社会と言われている現代、普段の業務でインターネットやシステムを利用することは当たり前となってきました。また、働き方改革などの影響やAI技術の進歩により、業務の効率化やシステム化を求める企業が数多くあり、その需要は年々増加傾向にあります。
それにもかかわらず、経済産業省の発表によれば、IT人材は2019年をピークに減少傾向にあり、このまま状況が変わらなければ、2030年頃には40~80万人の規模で、SEやPGなどのIT技術者が不足することになるようです。
これは、将来的にシステムエンジニアの需要や価値は、現在よりさらに高まっていくことが予想されるため、頑張り次第でより高い報酬を目指すことも可能となる、ということを意味しています。
システムエンジニアは高度なスキルを必要とすることから、習得するまでの育成に時間がかかりますが、経験を豊富に積んでいるSEやPGほど重宝されますので、努力すればするだけ結果となりやすい職種であるといえます。
働き方の自由度
システムエンジニアやプログラマーは、ある程度のスキルさえ習得してしまえば、働く場所や時間、さらには所属会社さえも限定されない、というメリットがあります。昨今ではフリーランスとして活動するエンジニアも珍しくありませんし、リモートワークとの相性も良い職種です。
また、実績を積み重ねてクライアントからの信頼を得ることができれば、システムエンジニア個人を名指しでご要望をいただくことも多々あります。その場合は、自分の裁量で業務を進めることができますので、将来的にとても働きやすい環境を手に入れることが可能となります。
この記事では、業務システム開発に注目したシステムエンジニア(SE)という仕事について紹介しました。システムエンジニアやプログラマーの仕事内容や魅力など、参考になれば幸いです。
当社、株式会社C&Dシステムサポートでは、システムエンジニア・プログラマーを常時募集しております。「不安だけど、SEに挑戦してみたい・・・」そんな気持ちがある方、私達は大歓迎です。是非ご応募ください!