皆さんはシステムエンジニア(SE)と聞いたとき、ほとんどの人は「ソフトウェア開発をまとめるエンジニア」と思うことでしょう。しかし、SEとはソフトウェア開発をする人のことだけを指しているわけではありません。。
そこで、本記事ではシステムエンジニアの役割や定義、そしてソフトウェア開発に的を絞って、SEとして持っていなければならない能力と、おすすめする資格について紹介しますので、ぜひ参考にしてください。
システムエンジニア(SE)の役割
SEとは
SEを論ずる前に、システムとはどの様なものなのかを知る必要があります。広辞苑によるとシステムとは、「複数の要素が有機的に関係しあい、全体としてまとまった機能を発揮している要素の集合体。組織。系統。仕組み」と定義しています。
したがって、SEとはソフトウェアに限ったものではなく、複数の要素を組み合わせて、全体としての機能を実現するためのエンジニアなのです。
例えば、昔の自動車は全てが機械式、かつひとつの要素でひとつの機能を実現していましたが、今では車載コンピュータを中心にさまざまなセンサーやモーターなどが組み合わさり、完全にシステムと言っていいでしょう。そのため、それらを取りまとめるSEが必要となってきました。
さらに鉄道車両や航空機など、より複雑なシステムを構築することが必要となり、より高度な技術を有するSEが必要です。航空機開発ではSEとは呼ばずにシステムインテグレータと呼ぶこともあります。
SEの仕事の範囲
それではSEの仕事には、どのようなものがあるのでしょうか。ざっくりとその項目を以下に示します。
- リスト
- リスト
- リスト要求分析・要件定義
- 基本設計書の作成
- 詳細設計書の作成
- システムの機能確認
- 運用時の不具合対応
- プロジェクトの進捗状況管理
- メンバーの労務管理
- プロジェクトマネージャーへの報告・連絡・相談(ほうれんそう)
- プロジェクトマネージャーからの指示をメンバーへ連絡
- メンバーとのコミュニケーション
どうですか、システム開発の最上流から最下流までを守備範囲とし、かつ上司やメンバーとの密なるコミュニケーションまでを行わなければならないのです。
広義のSEと狭義のSE
SEの定義
ここでSEとは何か。定義についておさらいしましょう。SEとはシステムを実現するための取りまとめ役をするエンジニアと言えますが、これだけでは何のことか良くわからないのではないでしょうか。
そこで、SEの定義をよりはっきりさせるために、以下に示すような「広義のSE」と「狭義のSE」に分けてみましょう。
広義のSE
広義のSEとは、複数のハードウェア(ソフトウェアを含む)を有機的に結合させ、システムに求められる機能を実現するエンジニア、と定義しましょう。
ここで重要なのは、ソフトウェアだけでなくハードウェアを含んだシステムを構築することです。
狭義のSE
狭義のSEとは、皆さんがすぐに思い浮かべるような、コンピュータ(ネットワークで結合されたコンピュータを含む)内のソフトウェアの開発、設計、運用を行うエンジニア、と定義しましょう。
これはソフトウェアのみを守備範囲として、ハードウェアは一切含まれていないことです。ただし、開発したソフトウェアを搭載するコンピュータがどの程度の性能を有するのかは前提条件として考慮しなければなりません。
ソフトウェア開発のSEとして必要な技術とおすすめの資格
本記事では、ソフトウェア開発のSE(狭義のSE)に焦点を絞って、必要な技術と能力、および持っていると良いおすすめの資格について、紹介していきましょう。
SEとして獲得しておくべき技術と能力
SEとしての仕事の範囲について述べましたが、幅広い技術や能力が必要だと思ったことでしょう。それでは、どのような技術や能力が必要なのか以下に示します。
プログラミング技術
ソフトウェアの基本設計や詳細設計を作成するためには、プログラミング技術を修得しておく必要があります。この技術がない場合は、実現不可能な設計をしてしまうことがあるからです。また、ソフトウェア開発のフレームワークについても理解しておく必要があるでしょう。
SEの方々には、最初はプログラマーとして仕事を始めて、実績を積んだ後にSEとして仕事ができると認められ、SEになった方が大勢います。これはSEになるための本道ではないでしょうか。
しかし、この分野は日進月歩で新しい言語、フレームワーク、ツールが生まれてきます。そのため、SEとしても、この分野の情報収集や学習を継続して進める必要があり、常に最新技術を獲得しなければなりません。この努力を継続しない方は、いずれSEとして認められなくなるので、ぜひ最新のこれらの分野にアンテナを張って、習得していってください。
マネージメント能力
Eは、クライアントからの要求を分析し、要件定義をした上で、その規模の大きさや難易度を考慮し、納期までのマイルストーンやスケジュールを決め、プログラマーを含むメンバーが何人必要なのか、また必要なリソースを決めなければなりません。もし、納期までに実現が困難と判断される場合は、具体的な理由を示して「出来ない」あるいは「現状では出来ないが、こうすれば可能」と説明する責任があります。
また、プロジェクトが開始した後も、スケジュール通りに進捗するとは限りません。遅れることが大半です。そうした場合、遅れの理由をはっきりさせるとともに、キャッチアップの方策を考え、その方策を実行する必要があります。また、スケジュールの再設定をしなければならないかもしれません。
もし、納期を守れないような事態であれば、納期の再設定を上司やクライアントに願いでなければなりません。納期はプロジェクトを管理、遂行するものとして最低限の厳守事項ですので、まずは納期を守るための方策を徹底的に考えましょう。「現状では納期を守ることが困難ですが、この方策を取れば納期は守れます。」と言って、方策を実施できるよう上司に認められることがSEとしての能力の見せ場でもあります。
これらは、マネージメント能力がなければ出来ないことです。皆さんが、現在プログラマーであり、SEを目指しているならば、携わっているプロジェクトのSEがどのように対応しているのかをしっかりと観察し、SEがなぜこのような行動をとっているのかを理解するようにしましょう。
また、マネージメントに関する書籍やセミナーが数多くありますので、これらによりマネージメントスキルを獲得することもひとつの方法です。
コミュニケーション能力
SEは常に関係者と密接なコミュニケーションをとらなければなりません。
上司やクライアントには、プロジェクトの進捗報告、スケジュール遅れなどの課題と対応策の報告などです。上司から指示があれば、それを確実に理解し、メンバーに報告や指示をします。
メンバーに対しては、与えたタスクの進捗状況の確認や指示をします。パフォーマンスが落ちているメンバーに対しては、その理由を聞き、改善の方策をアドバイスする必要があるでしょう。
もしSEが男性であり、メンバーが女性がいれば、なおさらコミュニケーションを密にする必要があります。女性には女性なりの特性を考慮してコミュニケーションを図ってください。また、グローバル化によってメンバーに外国人がいるかもしれません。外国人は日本人とは異なる価値観や個性があることを念頭において、コミュニケーションをとるようにしてください。
毎日メンバーの顔を見て、声かけをしましょう。その反応によって、メンバーが通常の状態か否かを、おおよそ判断できるものです。ちょっと変だと思ったら、すぐに状況をヒアリングして的確なアドバイスをしてください。
スキルアップするためのおすすめの資格
SEになるための資格はありません。技術と能力さえあれば、誰でもSEになれるのです。
しかし、SEとして業務を遂行していく上で、技術や能力を有していることを客観的に示すために、欲を言えば独立行政法人情報処理推進機構が主催している全ての試験に合格することが望ましいのですが、それは現実的とは言えないのでその中から特に持っていたいおすすめの資格や他の資格について、いくつか紹介します。
基本情報技術者試験(FE)、応用情報技術者試験(AP)
情報処理推進機構のホームページによると、「情報処理技術者試験は、「情報処理の促進に関する法律」に基づき経済産業省が、情報処理技術者としての「知識・技能」が一定以上の水準であることを認定している国家試験です。」と示されています。
その中でも、基本情報技術者試験は基本戦略立案またはITソリューション・製品・サービスを実現する業務に従事し、上位者の指導の下に実践的な能力を身につけた者として認められます。対して応用情報技術者試験は、上位者の指導の下ではなく独力で方向性を確立した者として認められます。
SEは自分自身でプロジェクトを管理、遂行する必要があるため、まずは基本情報技術者に合格し、その後応用情報技術者に合格することが望まれます。この試験はおすすめというより、SEとしては必須の資格ではないでしょうか。
プロジェクトマネージャ試験(PM)
先に述べたように、SEにはプロジェクトマネージメント能力が必要です。この能力を認定するためにプロジェクトマネージャ試験があります。
この試験で合格すると、システム開発プロジェクトの目標の達成に向けて、責任をもって、プロジェクト全体計画を作成し、必要となるメンバーやリソースを確保し、予算、スケジュール、品質などの計画に基づいてプロジェクトを実行・管理する者として認められます。まさに、SEとして業務を遂行するためにおすすめの資格と言えるでしょう。
この試験に合格することにより、経験に基づいていたプロジェクト管理が、論理的に行うことができるようになります。
ネットワークスペシャリスト試験(NW)、データベーススペシャリスト試験(DW)
現在のソフトウェア開発には、ネットワークやデータベースを取り扱うことが不可欠となっています。そのために、ネットワークスペシャリスト試験(NW)やデータベーススペシャリスト試験(DB)の資格を持っていると、これらへの対応が可能となり、プロジェクト全体計画作成に大きな力になってくれるでしょう。
また、これらの資格を持っていることで、他のSEと差別化することができ、SEとしての業務範囲が広がることは間違いありません。
システムアーキテクト試験(SA)
システムアーキテクト試験は、情報システムまたは組込みシステム・IoTを利用したシステムの開発に必要となる要件を定義し、それを実現するためのアーキテクチャを設計し、情報システムについては開発を主導する者として認められ、トップクラスのSEとして、さらに業務範囲を広げ、ハードウェアを含むような広義のSEを目指す方は、是非持っていたい資格です。
コミュニケーション能力1級
これは情報処理推進機構が主催する試験ではありませんが、SEに必要なコミュニケーション能力を客観的に認められるものです。コミュニケーションに関するセミナーは数多くありますが、ここでは内閣総理大臣認証NPO法人コミュニケーション能力開発機構が認定している一般財団法人日本コミュニケーショントレーナー協会が開催している「コミュニケーション能力1級」認定コースを受講することをおすすめします。なぜなら、一般のコミュニケーション関連セミナーは単に受講したというだけで、お墨付きを得られたとは言えません。それに比較して、これは、内閣総理大臣が認証しているNPO法人が認めることで、お墨付きを得られることになるからです。
コミュニケーション能力は、SEに限らず、どのような分野でも必要な能力なので、持っていて損はないでしょう。
その他にも、マイクロソフト、オラクル、Ciscoなどのベンダー資格と呼ばれるものがありますので、SEになるならこれらの資格を持っていても役にたつはずです。
おわりに
SEとはソフトウェア開発に限らず、ハードウェアを含めたシステム開発といった広い範囲から、ソフトウェア開発に絞った範囲までがあること、そして、ソフトウェア開発のSEになるための技術・能力、おすすめする資格について述べてきました。SEとして、より高みを目指すために転職を考えるのであれば、業務経歴とともに資格の有無が成功への近道になるでしょう。また、ソフトウェアのSEからプロジェクトマネージャとより上位のシステム開発に従事することも可能になります。SEを目指す方、SEとしてスキルアップを目指す方にとって、本記事が参考になることを期待しています。
↓↓↓↓独学ではなく、オンライン講座で勉強したい方はこちらもチェック!↓↓↓↓