エンジニアの定義を考える
目次[非表示]
- 1.はじめに
- 2.エンジニアってなんだろう?
- 3.IT業界におけるエンジニア
- 4.システムエンジニアの役割
- 5.理想と現実
- 6.エンジニアの定義を意識する
はじめに
本日の記事を担当するDIVXの角です。
現在エンジニアを束ねるグループリーダーとして、DIVXを強いエンジニア集団にするために日夜奮闘をしております。
今回はそんな私が考えるエンジニアの定義についてのお話をさせていただこうと思います。
エンジニアってなんだろう?
そもそもエンジニアとはどういった人のことを指すのでしょうか?
エンジニアという言葉を英和辞典で調べれば「技術者」「技師」「機関士」などと翻訳されています。
ただ、これでは具体的に何をする人なのかが分からないので英英辞典でもエンジニアという言葉を調べてみました。
英英辞典には「someone whose job is to design or build roads, bridges, machines etc」と記載されており、設計と製造を仕事とする人だということが読み取れます。
IT業界におけるエンジニア
では、IT業界におけるエンジニアとはどのような人なのでしょう?
一口にエンジニアといっても、それぞれの役割によって呼称が異なります。
例えばインフラの設計・構築をするならインフラエンジニア、ネットワークの設計・構築をするならネットワークエンジニア、システムの設計・製造をするならシステムエンジニアなどです。
また、役割を制限しないエンジニアはフルスタックエンジニアなどと呼ばれることもあります。
それらを総称したものがIT業界におけるエンジニアです。
しかし、多くの場合エンジニアという言葉はシステムエンジニアと同義で使われている印象です。
私も今回はシステムエンジニアと同義で使わせていただいてます。
システムエンジニアの役割
改めてシステムエンジニアの役割とは何か考えてみましょう。
上述した通り、システムの設計・製造をすることが大枠ではありますが、細分化してみると、とても広い範囲の業務に携わることが見えてきます。
まず、システムの設計を行うためには、そもそも作る物の定義から始める必要があります。いわゆる要件定義です。
要件定義が完了した後に設計を行いますが、ここでいう設計は単純なプログラム設計ではありません。当然、システムの構造を決めたり、アーキテクチャの定義も必要になってきます。
それが完了して初めてプログラム設計・実装に進むことができます。
また、プログラム実装が完了した後のテスト工程もシステム開発には欠かせないと考えるとテストの設計・実施なども必要になってきます。
つまり、システムエンジニアとはインフラやネットワークなども含め幅広い知識や技術を有して、初めて役割を十分にはたすことが出来るのです。
理想と現実
しかし、上記のシステムエンジニアの定義はあくまで理想論であり、世の中にはプログラム設計からプログラム実装までがシステムエンジニアの役割と捉えている人が大勢います。
近年は特にこの傾向が顕著であり、システム開発の現場ではよりプログラミングの比重が高い状態で開発が進められているのが現実です。
そのような現場では多くの課題をプログラミングで解決することを選択しがちで、その結果生み出されるのがソースコードが肥大化したため不具合が多く、保守性にも乏しいシステムたちということになります。
エンジニアの定義を意識する
こういった現状を改善するには、全てのエンジニアが自分たちの定義を正しく認識することが必要です。
正しい認識のもとで役割を果たすことができれば、より品質が高く、価値のあるシステムの開発が実現出来るはずです。
エンジニアの定義を意識することは強いエンジニア集団を作る上では欠かせない要素だと私は考えます。
最後までご覧いただき、ありがとうございました。
DIVXでは一緒に強いエンジニア集団を目指してくれる人材を募集しています。
興味がある方は是非、採用ページもご覧ください。