みなさん、SEという言葉を聞いた事ありますか?おそらくイメージされるのは、「システムエンジニア」という言葉なのでしょうが、意外や意外、この言葉は和製英語です。英語のSystem Engineerと日本語の「システムエンジニア」とは全く異なる意味を持ちます。
びっくりですか?
英語のSystem Engineerというのは、システム工学(システム・エンジニアリング)に関わるエンジニアを指します。システム工学というのは、システムの設計、制御、及び効率等を研究する学問なのです。ね、私達がイメージするSEとはちょっと違うと思いませんか?
そうなると、私たちが日々使っているSEとはなんだろうと思いませんか。そこで今回は松岡TAKAHIROがSEのお仕事を解説いたします。実際に、しっかりとお仕事理解しないとどうにもこうにも分からない!それでは、解説していきましょう!
SE(システムエンジニア)とPG(プログラマ)って何が違うの?
SE(システムエンジニア)とPG(プログラマ)と言われても、そもそも何?ここからスタートしていきましょう。
まずは、PGはプログラマ(Programmer)と言います。これは、コンピューターのプログラムを作成する人の事を指します。
おそらく、みなさんが漠然とイメージしているSEというのは、このPGの方が近いと思いませんか?あれ?じゃあSEって何なの?
SEとは、システム開発を行うにあたり必要となる、さまざまな作業全体に関わる非常に幅広い職種なのです。システム開発とはなにかを簡単に言うと、現在の業務をより効率的に刷新する仕組みを創るといった所でしょうか。その仕組みを創るにあたってコンピューターの力を借りてみようという事がシステム開発の概略です。
でもまだSEがさまざまな作業全体に関わる非常に幅広い職種な事はイメージ湧きませんよね?建築士と大工さんを例に挙げて、簡単に説明してみましょう。
システム開発を例えると
【登場人物一覧】
・お客様(ユーザー)
・建築士(SE)
・大工さん(PG)
お客様には何かしらの出来事を契機として「家を建てたい!」という想いが生じます。でも、自分では家を建てられないので、誰かに相談しますよね。その相談相手が建築士です。ここで注意点。建築士の独りよがりではいけません。お客様の声に耳を傾けて、お客様の求める最高の家を提供すべく思案します。建築士は自分の持っている技術力を駆使してどんな事が出来るかの実現可能性を検証していきます。
お客さまとの面談を重ねて、可能な限りミスマッチを減らします。そして、方向性が決まったら、・・・さぁ、作ろう!
ここでポイント。実際に家を建てるのは、建築士ではありません。
建築士は設計が仕事です。家を建てるのは大工さんの仕事になります。でも当然建築士は木材や、建築に関わる知識は全て知っています。おそらく家を実際に作る事も出来るでしょうが、建築士の役割はお客様の理想とする家をデザインする事です。
建築士と大工さんの棲み分けがはっきりしているんですね。
そして、大工さんは建築士の方から図面を貰って、その設計通りに木材を加工して家を建てていきます。その都度その都度、建築士と話し合いながら完成へ向かって力を合わせていくのです。そして、お客様の求める家が完成し、提供するのです。
建築士は、建築における幅広い知識を持ち合わせていなければなりません。大工さんに聞かれた質問に答えられない建築士のことなんて、あなたは信用出来ますか?それこそ、不安になってしまいます。建築における全てのい質問に答えてくれるプロフェッショナルである事が必須です。
いかがですか?このやり取りは、SEとPGの仕事そのものなのです。
それでは実際のSE(システムエンジニア)とPG(プログラマ)は何をやってるの?
実際のSEとPGのやり取りに置き換えてみましょう。
ユーザーからの連絡が入ります。ユーザーは何かしらの不満を抱えていて、コンピューターの力を借りて何かしらの業務効率を改善したいと思っています。SEはユーザーとの面談を繰り返しながら、どのようなシステムが必要かを考えます。これをシステム化企画といいます。まぁ、企画ですね。
次に、システムで実現すべきサービス(機能)をどのような技術を用いれば構築出来るか、そしてその実現可能性を検討します。ここは、実際に出来るかどうかを調べているといった所でしょうか。それと同時に、実現出来るのであればどれくらいの人員が必要で、どのくらいの時間がかかるか検討します。家を建てるのであれば、どれくらいの大工さんが何ヶ月かけて家を建てるかという事を検討するようなものです。
こうして、システム構築の全体像が明確化出来たら、システムの実現構図設計を行い「プログラマ設計書」を作成します。家を建てる図面のようなものですね。そのシステム設計書をもとに「プログラマ」が「プログラミング」を行っていくのです。
そして、一通り完成したら設計書通りのものになっているかのテストを行います。テストを行った後には、システムをお客様の前で稼働させ、お客様の要望通りに構築されているかを確認し、お客様が実際にシステムを運用出来るように移行していきます。必要であれば、お客様自身でシステムを運用するのに必要なトレーニングを企画・実施する事もあります。
このような全体の流れの中で、SEはプログラミング以外のシステム構築全般に関わるありとあらゆる仕事を行うのです。
最後に業務の流れをちょっと視覚化
SE:顧客との相談
↓
SE:システム化企画
↓
SE:システムの実現可能性の検討
↓
SE:プロジェクトの計画
↓
SE:システムの設計
↓
SEからPGへ:プログラミング設計書の譲渡
↓
PG:プログラミング・コーディング
↓
PGからSEへ:プログラムの譲渡
↓
SE:システムテスト
↓
SE:顧客による受け入れテスト
↓
SE:導入・運用・保守
以上が大まかな流れになっています。
もしSEやPGに興味が湧いたら、UZUZにぜひご相談下さい。