ラベル IT の投稿を表示しています。 すべての投稿を表示
ラベル IT の投稿を表示しています。 すべての投稿を表示

2015/05/29

【意外と知らない】システムエンジニアとは









◇「私の職業はシステムエンジニアです。」

そう言われて皆さんはどう思うでしょうか?

「なんか頭良さそう!」
「ITか~大変そう。」
「収入安定してなさそう・・・」

などなど思うことはさまざまだと思いますが、行き着く先は

「で、なにやってるの??」

となりますよね。

今回は私の職業でもあるシステムエンジニアとは何かを独断と偏見でご説明したいと思います。


◇そもそもエンジニアってなに?

エンジニアを日本語にすると「技術者」となります。

例えば、大工さんの言い方を変えれば「家エンジニア」ですね。

まあ、そんな呼び方しませんけど。

この「家エンジニア」という括りで考えた場合、

・家のデザインを考える建築家
・工務店で働いている人
・大手ハウスメーカーなどで耐震性など研究している人

この人たちみんな「家エンジニア」となりますよね。

それと同じようにシステムエンジニアという職業に関しても
実際やっていることはさまざまです。

・システムを設計する人
・システムのプログラムをコーディングする(書く)人
・できたシステムをテストする人

 などなど。

まあ、みんなシステムエンジニアです。
※反対意見もあるかもしれませんが、それは後半で書きます。



システムに関わっている技術者がシステムエンジニアなのか~。

へぇ~。


「ん??システムってそもそも何なのよ!?」


そうなんです、「システム」って言葉がまたすごく曖昧なんです。


◇システムの目的と自分の役割

ここでいう、システムというのはコンピューターを使って、
構築された機能の集合体という意味になります。

わかりにくいのでスーパーのレジに例えると、


・バーコードを読み取って、商品の値段を表示する機能。
・読み取った商品の値段を合計する機能。
・預かったお金からお釣りを計算する機能。


これだけでは勿論ありませんが、
上記に挙げたような機能を合わせてスーパーのレジとなります。


そしてこれが「スーパーのレジシステム」というわけです。


コンピューターを使ったシステムは今の世の中、たくさんあります。


どのシステムも何らかの目的があって存在しています。
(そのはず。。。)


今まで人間がやっていた作業をコンピューターに命令して任せる。

その命令に使われるのがプログラミング言語というわけです。

ある意味では、システムエンジニアは人間とコンピューターの通訳と言っても良いでしょう。


但し、システムを作ると言ってもプログラミング言語を書く人だけがシステムエンジニアではありません。

前述の通り、
システムエンジニアと言ってもやっていることはさまざまなので各々の役割が決まっています。

というわけで、システムエンジニアと名乗る人には
「どんなシステムを作っていて、どういう役割を担当しているのか?」
を聞いていてみてください。


これがしっかり答えられないシステムエンジニアはクズです。
(あ、言い過ぎた笑)

自分がシステムエンジニアなのでわかるのですが、日常の作業を淡々とこなしているだけだと、自分が何をやっているのかわからなくなると思います。

もっと視野を広げて

「これは何のためのシステムで自分はどの工程を任されているのか?」

これを常に意識しておく必要があります。


意外と忘れてしまっている人、多いんですよね。。。


◇システムエンジニアの役割と仕事の内容

今までの説明でシステムエンジニアとは何か、
なんとなーくわかって頂けたのではないでしょうか?

では、もっと深くシステムエンジニアを知ってもらおうと思います。

何度も述べていますが、システムエンジニアの役割はさまざまです。

まずはシステムを作るにはどんな工程があるのかご説明します。

①【受注】顧客からこんなシステムが作って!という注文がくる。

②【設計】細かい要望を聞いて設計書を作る。

③【インフラ整備】システムで必要な環境を整える。

④【製造】設計書の通り、プログラミングする。

⑤【テスト】システムが設計書通りにちゃんと動くか確認する。

⑥【リリース】システムを顧客が使えるようにセットアップする。

⑦【運用支援】操作の不明点を聞いて対応したり、追加要望などを聞く。アウトプット(計算結果や出力媒体)確認の為の支援をしたりする。

⑧【システム改修】顧客の要望に応えて機能の追加をしたり、不具合(バグ)を修正したりする。

※【】は私が一般と思っている呼び方。


まあ、ざっとこんな感じです。
ちなみに⑦⑧は作ったあとのサポートみたいな感じですね。
これも思ってる以上に重要な工程です。

そして、携わる「人」の役割としては以下の通りです。

・【プロジェクトマネージャ】作業進捗を管理する人

・【システムエンジニア】顧客との窓口になる人、実際作る人への橋渡し役。
 (要望を聞いたり、方向性がズレていないか確認したり。)

・【プログラマ】実際作る人

・【テスター】テストする人

・【ヘルプデスク】リリース後の運用支援をする人

※【】は私が一般と思っている呼び方。


ここで一つ疑問が生まれると思います。

「システムエンジニアって顧客の窓口やってる人だけじゃん!!」

答えはNo!です。(と私は思っています。)

前述のとおり、システムに関わる技術者が広い意味での「システムエンジニア」だからです。

まあ、上記に挙げた「一般的な呼び方」が正しくない!という指摘もあるかもしれませんが、

システムを作る上もっとも重要なのは

「いかに顧客が必要とするシステムを提供するか。」

ということだと考えています。

どういうことかというと作業進捗を管理する人も実際作る人もテストする人も
みんな顧客の要望を理解して役割を全うする必要があるのです。

「QCD」という言葉をご存じでしょうか?

・Q→品質
・C→コスト
・D→納期

言い方を変えると

「顧客の予算内で満足するシステムを必要な時に提供する。」

どんな仕事でも当たり前に意識しないといけないことですね。


◇システムエンジニアの将来と今後

まあ、これは私の予想なので実際どうなるかはわかりませんが、
今後、今のシステムエンジニアの仕事は少なくなると思います。

少なくならなければ、システムエンジニアが存在している意味はないと思います。

その理由は、仕事をコンピュータに任せる為にシステムエンジニアが存在しているからです。

もちろん既存システムの改修は今後も発生すると思いますが、ゼロから作るよりは
確実に少ない人数で対応が可能なはずです。

自分で自分の首を絞めている・・・

なんか悲しいですね。

しかし、もうそんなことはシステムエンジニアの大半は気づいています。


システムエンジニアを仕事とする「個人」で考えた場合は、営業の能力だったり、
経営のノウハウを学び、

「新しいなにか」

を見つけなければ飯が食えない時代になっていると思います。

また、業界全体で考えると既存のシステムをいかに活用するか、パワーアップしていくか
という状態ではないでしょうか。

「システムを使うユーザーへの教育」という点でも力を注ぐ必要があると思います。

ポジティブに考えれば、なんでもできる職業でもあります。

「こういうことを便利にしたい。」
「もっとこうなればいいのに。」

という「気づき」が原動力となる仕事です。

私はこれからもこの仕事に誇りをもって、従事していきたいと思います。

2015/04/24

脆弱性とは


脆弱性

・・・


読めねぇー!!



はい、これは「ぜいじゃくせい」と読みます。



情報セキュリティーが求められる現代において、とても重要なワードです。

ぜひ、読めるようにしておきましょう。

※IT用語としての意味だけではありませんが、ここではIT用語として紹介します。
(脆弱性骨折とかいう病名もあるそうですよ。)

まず、このワードが出てきたら

「こりゃ危険かもしれぬぞ!」

と思ってください。

そう、例えるなら、

昨日一緒に呑んでた友達が食中毒になった。

このくらい危険だと思ってください。

厳密に言うと状況は異なりますが、そのくらい身の危険が迫っているということです。

インターネットが爆発的に普及している今、コンピュータは常に危険と隣り合わせだと思ってください。

ちなみにここで言うコンピュータはパソコンだけではありません。
スマホやタブレット、ガラケーはもちろんのこと、3DSやPSP(古いか!笑)などのインターネット接続ができるもの全てです。

でも、これらを一切使わない。というわけにもいきませんよね。

そう、せっかく友達が誘ってくれたのに断るなんてできませんよね!?


すみません、話しが脱線しました・・・




脆弱性とは、そんなコンピューターの弱い部分、攻撃されやすい部分だと思ってください。

どんなに強いバレーボールチームでも「穴」というのがあるものです。
そこを狙って、サーブをバンバン打ってくるんですね~。

ほんと悪い奴らです。

その「穴」を埋める為には、選手交代という選択肢もあります。

でもそれ以上に輝くところがあれば使い続けたい。

よし、特訓だ!!

バレーボールチームならこうなります。

コンピューターの場合は選手を「ソフト」に置き換えてみてください。

一カ所だけ欠点が見つかっても使い慣れたソフトを使い続けたいですよね?

その為には欠点(脆弱性)をなくす必要があります。

さて、どうするのか?

特訓する??

いえ、

ソフトをアップデートするんです。

ユーザーとしては、ボタンをチョチョイと押せばだいたいオッケーです。

簡単ですね!!

でも絶対カンペキ!というソフトはありません。
ソフト管理者は常に弱い部分(脆弱性)を探しているわけです。
そして、プログラマーたちは鬼監督のしごき以上の苦労をしながら昼夜問わず対応をしているのです。。。(笑)

最後まで読んで頂きありがとうございます!

ご存知かもしれませんが、IPA(情報処理推進機構)が脆弱性の対策として最新情報をお知らせしているページがあります。(こちらから)

これは毎日チェックですね!!