IT業界で働く仕事の中に、プログラマー(PG)とシステムエンジニア(SE)がある。
どちらもコンピュータシステムを構築する仕事であるが、その違いがイメージ出来ない方が多いようだ。
簡単に説明すると、システムエンジニア(SE)はシステムを構築するための「設計」を行う。対して、プログラマー(PG)はSEが作成した「設計」に基づいて「プログラミング」を行いシステムを作成する。
実際にプログラミングを行うのは、主にPGの仕事であるが、そのシステムの設計図を作成するためには、プログラミングの知識が無いと無理である。そのため、SEにもプログラミングの知識は必要だ。
そのため一般的には、最初はプログラマー(PG)として経験を積んでから、システムエンジニア(SE)にステップアップしていくパターンが多い。
では、PGとSEでは、具体的に仕事面でどのように違うのか。
PGからSEへステップアップするためには、どのようなスキルが必要になるだろうか。
プログラミング講師が具体的に解説していく。
目次
システム開発の手順からみる、PGとSEの仕事内容の違い
システム開発をするに当たって、PGとSEでは明確に仕事が分担されている。
PGとSEの大きな違いは、まずは担当する仕事内容が違うことにある。以下に解説する。
要件定義(SE)
クライアント(顧客)の要求を調査・分析して、システム要求として定義したり、使用するハード、ソフトの選定や構成を決定する。更に、ソフトに要求されている内容を定義する。
ソフト方式・詳細決定(SE)
ソフト要件をどのように実現するか、またソフトの内部モジュールなどの詳細を決定する。
ソフトのプログラミング・単体テスト(PG)
前段階で定義された内容に基づいて、プログラミング言語の文法に従ってコーディング(記述)したものを機械語に翻訳させる。
プログラムを単体で実行させて、エラーがないかチェックする。エラー・誤作動があればデバッグ(修正)をして、エラー・誤作動が無くなるまでテスト→デバッグを繰り返す。
ソフト結合テスト(SE)
単体テストで合格したソフトを複数連結して、正常に動作するか、また入力データに対して期待通りの結果が得られるかをテストする。
システム結合テスト(SE)
ソフト、ハード、手作業まで含めて全てを結合してテストを行い、システムが要求する機能やサービスを満たしているかどうかを検証する。
システム運用テスト(SE)
クライアントの本番環境に移行して、実際の稼働に問題がないか、運用テストを行う。
PGとSEの役割の違い
以上のように最初の設計段階と、後半のテスト段階はSEが担当し、中間のプログラミング・単体テストをPGが担当する。PGはSEの作成したソフトの仕様書に基づいてプログラミングをすることになる。
結合テストやシステムテスト自体はSEの仕事だが、その段階でも、プログラミングの変更があれば、PGが修正する。また、急な仕様変更などがあった場合もPGがプログラミングを手直ししなければならない。
SEはシステム開発の全体に係る仕事になるが、PGはその中の「プログラミング」の部分を担当することになる。PGからSEとして将来のステップアップを考るのであれば、開発を通して、SEの仕事内容をよく見ていくとよいだろう。
SEに求められる能力
SEはPGにプログラミングの指示を出す立場となる。クライアントとPGの間に立って、システム構築をマネジメントする立場ともいえる。
もちろん、システム開発全般に精通していることが前提条件だが、他に、SEになるためには、どのような能力が必要なのだろうか。
コミュニケーション力
SEに求められるスキルとして、最も重要なものと言えるだろう。クライアントの要求を分析してまとめる作業は、クライアントの意図を十分理解していないとできない仕事だ。この作業が不十分だと、作成途中で仕様変更を余儀なくされたりするなど、スムーズなシステム開発ができなくなる。
また、PGに対しても処理内容を正確に伝えておかないと、意図したソフトができないことになる。言ってみれば、クライアントの要望を正しく入力し、PGに正しく出力する作業になる。
マネジメント力
スケジュール管理能力と言ってもいいだろう。システム開発を予定通りに進行さて、完成まで持って行く能力が必要だ。クライアントやPGなど、システム関係者全般を広く見渡せる能力も欠かせない。スケジュール管理にはある程度の経験が必要だ。その他仕様書、テスト報告書などのドキュメントの作成・管理する能力も必要だ。
業務知識
システム開発に当たって、ある程度、クライアントの業務に関する知識がないと、クライアントが要求している内容の意味が分からないなど、システム開発に影響することがある。実際には開発が決まってから、作業に取り掛かるまでの間に、クライアントの業務について勉強することも多いが、普段からいろいろな業界の業務内容を把握しておく努力が必要だ。
未経験者は、まずプログラマーを目指そう
以上PGとSEとの違いについて解説してきた。立場的にはSEがPGに指示を出すことが多いので、SEの方が上級職となるだろう。
収入もSEの方が多い。
しかし、未経験者がすぐにシステムエンジニアになることは難しく、一般的にはPGを経験してからSEになるパターンが多い。
未経験者がプログラマーに転職する場合は、「求人紹介をしてくれるプログラミングスクール」を利用するのが一番の近道だろう。
「転職支援付き、無料プログラミングスクールの徹底比較【転職プロが解説】」の記事では、未経験者におススメのプログラミングスクールを詳しく紹介している。
転職支援付き、無料プログラミングスクールの徹底比較【転職プロが解説】
無料プログラミングスクールは「無料でITエンジニアに必要な知識が学べる」「仕事の紹介もしてくれる」という、未経験者からプログラマーを目指す人にとって、有難いサービスである。 しかし、無料となると逆に「 ...
続きを見る
また、IT企業にはプログラマー系の仕事以外にも、多くの職種がある。
IT企業の職種と仕事内容に関しては、「プログラマーだけじゃない!IT企業で働く人の職種と仕事内容を理解しよう」の記事で詳しく紹介している。
プログラマーだけじゃない!IT企業で働く人の職種と仕事内容を理解しよう
IT企業に就職したいという人は、「IT企業で働く=プログラマーになる」と思っている人も多い。 しかし、IT企業と言っても実は様々な職種や分野がある。 それぞれの職種や分野を理解しておかないと、必要とさ ...
続きを見る