近年、IT技術の発展で生活は大きく変わりました。
携帯電話がスマートフォンになり、話す、調べる、買う、遊ぶ、共有する…と何でも出来るようになり、生活の必需品となっています。
車の自動運転化、VR(仮想現実)やAR(拡張現実)等の技術もすぐに私たちの生活の一部になっていくことは確実でしょう。
仕事の場でもクラウド技術をはじめ、IT技術はもはや欠かせないシステムになってきています。
そして、これからの日本の生活を支えていく担い手がシステムを開発するIT技術者です。
今回は、IT業界の職業であるシステムエンジニアとプログラマーの違いとその仕事についてご説明していきます。
1.システムエンジニアとプログラマーの違いとは?
2.システム開発の流れとプログラマー、システムエンジニアの担当と要点
3.システムエンジニアを目指す方はプログラマーも経験するべき!
4.まとめ
システムエンジニアとプログラマーの違いとは?
システムエンジニアやプログラマーといった職種を一度は耳にしたことがあると思いますが、
その違いは?と聞かれると実際はよくわからない…という方も多いかと思います。
ひとことでいえば、
システム開発でどの仕事を担当するか、
それがシステムエンジニアとプログラマーの違いです。
システムエンジニア(SEともいわれます)とは、お客様からどんなシステムが欲しいのかを聞いたり、提案したりして、
要件をもとにシステム開発の設計を担当する人になります。
一方、プログラマー(PGともいわれます)は、システムエンジニアの設計通りに動作するプログラムを実際に作る人です。
システム開発の流れとプログラマー、システムエンジニアの担当と要点
1.要求分析(システムエンジニア)
どのようなシステムを実現したいかお客様から話を聞きます。
2.要件定義(システムエンジニア)
要求分析をもとに実際にどのようなシステムを開発するのがベストか将来像を見据えながら、お客様と打ち合わせします。
また、大まかな作業スケジュールや見積もこの段階で出します。
3.基本設計(システムエンジニア)
システムを何で構成するか決めます(サーバースペック、ネットワーク、セキュリティ、開発言語、データベースなどいろいろ)
また、それらを「基本設計書」として資料化しプロジェクトのメンバーに共有します。
4.詳細設計(システムエンジニア)
プログラミングをするための細かな設計を行います。
こちらも「詳細設計書」として資料化します。
5.プログラミング(プログラマー)
プログラミングしてプログラム(機能)を作成します。
6.単体テスト(プログラマー)
作成したプログラムのテスト仕様書を作成し、プログラムが単体で動作するかテストを行います。
また、動作しなかったプログラムは修正していきます。
※以下のテストでも修正はプログラマーが担当していきます。
7.結合テスト(システムエンジニア・プログラマー)
プログラミングで各自単体テストまで終わったプログラムを連携させてテストを行います。
システムエンジニアは要件にあったプログラムが出来ているかもチェックしていきます。
8.システムテスト(システムエンジニア・プログラマー)
本番さながらに全てのシステムを動作させたテストを行います。
9.運用テスト(システムエンジニア)
本番稼働前にお客様に使ってもらい最終チェックを行います。
10.本番稼働
システムがリリースされて実際に動き出します。
システム開発の流れをみれば、要求分析、要件定義がしっかりとしていれば、
プログラミング、テストそして本番稼働へと一直線に進んでいけることがわかるかと思います。
しかしながら、お客様の望むシステムの設計がきちんと出来ていなければ、
プログラマーはお客様やシステムエンジニアの要望と違うプログラムを作成してしまうかもしれませんし
そうなると、設計書の修正、プログラミングのやり直し、再テストの作業が大量に発生してスケジュールの順守が困難になっていくのは想像できるかと思います。
システムエンジニアはお客様と、
プログラマーはシステムエンジニアとの意思疎通がとれいることがシステム開発の成功に繋がっていきます。
システムエンジニアを目指す方はプログラマーも経験するべき!
要件定義は、そのシステムが本当に実現可能なのか、また予算と見合うかどうかを見極めなければいけませんし、
設計もスケジュール通りに開発出来るプログラムであるか見極めるスキルも必要になってきます。
つまり、システムエンジニアはプログラマーの経験があってこそだと言えます。
もちろん、システム開発の綻びをプログラマーが埋めて事なきを得た…ということもありますが、
残業も増えてくるでしょうし、
おおよそは、そのシステム開発の成功は難しい環境になっているでしょう。
まとめ
システムエンジニアとプログラマーと違いはいかがでしたでしょうか?
収入的な話でいえば、システムエンジニアの方が勝るとも言われますが、
プログラマーはその道のスペシャリストとなってスケジュール以上の働きをもって単価を上げていくこともできますし、
システムエンジニアは、システム開発の旗振り役となってシステム開発を成功させることで次の大きな仕事へとステップアップしていくことが出来ます。
また、サラリーマンからフリーランスに転身して仕事をしている方も大勢いますし、その需要も極めて高いです。
どちらもやりがいはある職業ですし、直近でいえば2020年東京オリンピックにむけてたくさんの人手が必要になってくる業種ですから、ステップアップ前提で就職するのも良し、その道を究めるのも良し、
自分の将来像も見据えながらIT技術者という選択をしてみてはかがでしょうか。