システムエンジニアが使う手法やツール
企業やプロジェクト、クライアントにおいて標準的な手法やツールが決まっている場合は、共通言語として利用するのがよいでしょう。事例やノウハウを知的財産として共有しやすいからです。
ここではいくつかの手法やツールをご紹介しますが、実際に仕事の中で試しながら、自分なりの「道具」を見つけていくとよいでしょう。
ビジネス領域の理解や整理のために
設計や運用の対象となるビジネス領域を把握するには、自分で図解してみるのが一番です。「ビジネスモデルキャンパス」や「ビジネスモデル2.0」のように、すぐに描き始められるものをどんどん使ってみるのがおすすめです。
要件定義のために
要件定義の手法やツールについて短くまとめることは難しいですが、重要なことは
- 対象領域の現状と課題(As-Is)
- 対象領域のあるべき姿(To-Be)
をそれぞれ把握することによって、現状(As-Is)とあるべき姿(To-Be)の差を明らかにすることです。その差が、システム化対象範囲となるからです。
また要件定義では、機能要件と非機能要件の両方を洗い出すことも重要です。
要件定義における手法やツール、進めるうえで考慮する点については、「ユーザのための要件定義」にくわしい情報があります。
また、とくに非機能要件については「非機能要求グレード表」に網羅的にまとめられています。ここから、必要な項目をピックアップするとよいでしょう。
設計のために
企業の業務システムのように規模的に大きい場合や、複数の機能や技術要素から構成されるシステムについては、いきなり細部の設計に入るのではなく全体的なアーキテクチャー設計から始めます。
構成要素と相互関係を決める静的なアーキテクチャー設計は、複数の視点(ビュー)からの全体図を描きます。
主要機能と外部連携の全体図(エンタープライズ・ビュー)、必要な業務機能一覧(サービス・ビュー)、システムインフラ機能連携(ITシステム・ビュー)、アプリケーションごとの主要構成(ソフトウェア・ビュー)などを概要から詳細へと図示していきます。(参考:社会保険庁 アーキテクチャー設計の考え方と成果物のイメージ)
処理の流れを決める動的なアーキテクチャー設計には、ユースケース図やシーケンス図などを記述します。ユースケース図は、システムと利用者(アクター)との相互関係と振る舞いを表すものです。シーケンス図は、処理の流れを表します。
外向けホームページなどWEBアプリケーションの設計においても、静的な画面デザインデータだけでプログラミングに入ってしまうのではなく、動的なアーキテクチャー設計を必ずおこないましょう。
クラウド上でシステムを開発する際には、典型的なアーキテクチャーパターンと構成が用意されている場合があります。あらかじめどのようなパターンがあるかを頭に入れてから、全体を設計するのもよいでしょう。
設計手法やツールは、その後の開発言語や稼働環境との相性も考慮する必要があります。
特にプログラミング開発をせずにWEBアプリやパッケージソフトを活用する場合は、アプリで何ができるか、制約は何かを確認した上で設計をおこなう必要があるでしょう。
プロジェクト管理のために
大規模プロジェクトでは、専任のプロジェクトマネジャーがプロジェクト管理の責務を負いますが、システムエンジニア自らがプロジェクト管理もおこなう場合があります。
進捗管理には「WBS (Work Breakdown Structure)」を使います。
最近はクラウドアプリ(SaaS)のプロジェクト管理ツール(Asana,Backlog,Trelloなど)が多く提供されていますので、ExcelにWBSを記述して管理するよりも、便利なツールを選ぶことができます。
システムエンジニアの魅力
続いて、システムエンジニアの仕事をするうえで魅力に感じることを3つご紹介します。
1. 作って動かすというシンプルな喜び
ものづくりは楽しいと思いませんか。システムエンジニアの仕事の中にも、ものづくりに通じる喜びが発見できる場面があります。
複雑と思われた仕組みを紐解いてシンプルに設計できたとき、設計通りにシステムが動いた瞬間、問題の原因が判明して完璧に修正できたとき、誰しも「よしっ!」と心の中でガッツポーズを作っているはずです。
こうした小さな喜びは、システムエンジニアとして働くモチベーションを形作っているに違いありません。
2. さまざまな技術や人との出会いの豊富さ
システムエンジニアは、複数の技術を組み合わせてシステムを作り上げていきます。そのため、新しい技術を知ることのできる機会に溢れています。技術だけでなく人との出会いも多様です。
さまざまな企業や部門において、経営層からマネジメント、現場を動かす人たちの話に耳を傾けて、チームで課題解決の道を探ります。プロジェクトでは、ステークホルダーがチームとして活動するため、企業や部署の垣根を越えたコミュニケーションが生まれます。
システムエンジニアほど、境界を超えてさまざまな出会いのある仕事はありません。
プロジェクトが始まるたびに、まるで新しい会社に転職したような変化があり、飽きることはありません。
3. 人や社会を動かすほどの可能性
システムエンジニアは、システム作りの地味な裏方という見方があります。しかしシステムエンジニアが動かすことができるのは、プログラムやシステムに限りません。
システムが業務を支え、人を動かし、企業を動かします。さらには社会をも動かします。よくも悪くも、大勢の人やその命にさえ影響を与えることがあるのです。システムが及ぼす効果や影響に想像力を巡らせれば、システムエンジニアとして一種の「使命感」に身が引き締まることがあります。
こうした捉え方は、仕事への緊張感だけでなく、システムエンジニアであることの魅力ももたらしてくれていると思います。
システムエンジニアに必要なスキル
システムエンジニアとして仕事をしていくうえで、求められるスキルを3つに絞って説明します。
1. 論理的思考
システムエンジニアに求められる論理的思考(ロジカルシンキング)とは、
- 漏れなく全体を捉える
- 具体的なところから共通点を見つけて抽象化する
- 抽象的なところを細分化して具体化する
- 構成要素同士の相互関係を明確にする
- 因果関係を説明する
- 設計上の決定について明確に理由付けする
といったものです。
要件定義フェーズでは、誰もが正確に理解できる客観的な要件として言語化、文書化します。設計フェーズは、論理的思考を駆使して仕様書(設計書)を作っていく、システムエンジニアの主戦場です。
こうした論理的思考は、仕事の段取りや曖昧さを切りわけて具体化し、解決策を見出すなど、システムエンジニアに限らず仕事全般に活用できるスキルといえます。
2. コミュニケーション能力
システムエンジニアに求められるコミュニケーション能力とは「聞く力」「伝える力」のことです。
システムエンジニアの仕事を「ビジネスとITとの橋渡し」と表現したように、複数の相手とのコミュニケーションが発生します。このとき、論理的思考を組み込んだ、一連のコミュニケーション能力が求められます。
「聞く力」とは、相手が何を言いたいのかをじっくり傾聴することです。そこでは、適切な質問を投げかけて、潜在的な要求を顕在化していくやり取りも必要になってくるでしょう。想像力を働かせて意図を汲み取ることも必要です。
「伝える力」とは、正確かつわかりやすく伝えて共感や賛同を得ることです。伝える相手によって、要件やITへの理解の深さが異なります。また論理的な説明で正確に伝えるのか、相手の視点に立ってナラティブに説明するのか、相手によって伝え方を変えることも大切です。
よいものを作っても、伝えて価値を共有できなければ意味がありません。口頭での説明力に加えて、文章や図などを使ってプレゼンテーションするスキルも求められます。
3.自ら学び続けること
システムエンジニアを取り巻く環境は、常に変化し続けています。一度習得した技術や手法も、技術や適用する環境が変われば、使えなくなることもしばしばです。システムエンジニアに限らずIT分野で働くには、IT技術の動向に加えてIT技術が適用されるビジネス領域にもアンテナを張り、常に情報をキャッチしていくことが必要です。
まず、システムエンジニアも「手を動かす」経験から学びましょう。どんなプログラミング言語でも小さなプログラムでもよいので、実際にビジネス現場で使われるプログラムを作ってみましょう。
システムインフラを設計するシステムエンジニアなら、サーバーやネットワークデバイスにOSやソフトウェアをインストールしてみましょう。実際に手を動かしてみることで、設計上考慮すべきことや効率的な設計方法、テストの重要性などが実感できます。
次に、さまざまな手法を学んで、自分なりの手法を編み出しましょう。プロジェクト管理、要件定義、設計、開発、テスト、運用管理などについて、世の中で標準とされている手法やよく使われている手法があります。
よさそうなものを選んで、実際に使ってみるのが一番効果的な習得方法です。そこから使いやすく、ステークホルダーに理解されやすいようカスタマイズして、自分なりの手法に仕立てましょう。
さらに、ビジネス環境へと学びを進めましょう。ビジネス要件を導き出す際の理解が深まります。コンサルタントが得意とする領域にスキルを広げることができ、プロジェクトの「超上流」と呼ばれるフェーズから参画できるようになります。
このように、新しいことに興味を持ち学び続けることで、システムエンジニアとして技術力を深め仕事の幅を広げていくことができるでしょう。
あると便利な資格
システムエンジニアの仕事に就くにあたって、必須となる資格はありません。しかし一部の企業では、特定の資格取得によって手当が追加されたり、昇進の際に加点評価されることがあります。
日本の企業で比較的採用されることの多いシステムエンジニア向けの資格として、IPA(情報処理推進機構)が提供している国家試験の「情報処理技術者」があります。
(参考: IPA 独立行政法人 情報処理推進機構情報処理技術者試験の概要)
情報処理技術者試験には、基本試験・応用試験に加えて、専門分野ごとの高度な知識や技能が問われる試験区分があります。
ITストラテジスト、システムアーキテクト、プロジェクトマネージャ、ネットワークスペシャリスト、データベーススペシャリスト、エンベデッドシステムスペシャリスト、ITサービスマネージャなどです。
IT利用者の立場での知識や技能を問うITパスポート試験、情報セキュリティマネジメント試験などもあります。スキルアップの手段としても活用できる資格といえるでしょう。(参考: IPA 独立行政法人 情報処理技術者試験の区分)
実務レベルで「あると便利な資格」に、ITベンダー提供の認定資格があります。仕事の中で使用する技術について体系的に知識を習得するためには、ITベンダーの認定資格とそのトレーニングが活用できます。
ITベンダー提供のトレーニングや認定試験の中には、高額のコストがかかるものもあります。業務での必要性を明確にしつつ、勤務先に一部負担を要望してみることも必要となるかもしれません。
資格取得を含めたシステムエンジニアとしてのスキルアップは、会社任せにせず自律的に計画・実施していきましょう。
システムエンジニアの給料事情
政府統計e-Statの賃金構造基本統計調査(令和元年)をもとに計算してみると、従業員10名以上の企業におけるシステムエンジニアの平均年収は 569万円 (38.8歳) となりました。もちろん企業によって年収の幅があります。就職や転職を検討している方は、気になる企業の情報を確認してみてください。
昇給の基準や評価方法も企業によって異なりますが、システムエンジニアとしてキャリアアップするには、スキルを発揮して高い成果を出していくことが鍵となります。成果を出すとは、システムエンジニアとしてプロジェクトの遂行や完了に大きく貢献したり、有用な提案を積極的におこなって採用されたりすることです。
キャリアアップにつながる高い成果を出すには、与えられた仕事を予定通り完了させることに加えて、「プラスα」を心がけてみましょう。
プラスαとは、経験したノウハウを一般化して、今後の仕事や社内の仲間で再利用できるようにすることです。
具体的には
- 事例情報やノウハウ集、テンプレートなどにまとめる
- まとめた成果物を社内で共有する
- 経験をもとにコーチングをおこなう
などが挙げられます。
プラスαを意識して仕事に取り組む習慣は、知的財産を生み出し、専門分野での実績を高め、システムエンジニアとしてのキャリアアップに繋がっていくでしょう。キャリアアップの他の選択肢として、「フルスタックエンジニア」を目指す方向性があります。
フルスタックエンジニアとは、設計も開発も、アプリケーションもシステムインフラもと多能工的に何でもこなせるエンジニアのことです。
スキルの幅広さと奥深さの両方を持つフルスタックエンジニアになるには、経験と実績を積む必要があります。またどんなことでも頼まれがちなため、過重労働を避けるために、自ら仕事量をコントロールするスキルも必要です。
ハードルが高めのフルスタックエンジニアですが、とくに中小企業やスピード感が必要なプロジェクトにおいて需要は高く、昇給のチャンスも多いと考えられます。
システムエンジニアの将来性
システムエンジニアは、将来に向けて多様性が広がっていくでしょう。これは選択できる仕事の幅が広がっていくということです。
冒頭で述べた広義のシステムエンジニアの役割「要件とITの橋渡しをおこなって要件を実現すること」は、変化の激しいIT領域において必要性が高まっています。
細分化・専門化されて呼び名が変わったとしても、「システムエンジニア」としての仕事は、今後も必要とされるに違いありません。
一方で、「システムエンジニアの仕事は、AIに奪われる」との予測もあります。
比較的簡単に自動化できるような要件は、AIの登場を待たずとも近日中にシステム化されるでしょう。しかしビジネスを取り巻く環境はより複雑になり、新しい技術も次々登場しています。
激動する環境において、システム設計の仕事も複雑さを増していきます。AIがカバーできる領域「以外」にも広がっていくので、結局システムエンジニアの仕事はなくなりません。
同時にダーウィンの進化論のように、システムエンジニアも環境の変化に適応していかなければ生き残れないともいえます。
システムエンジニアならば、環境への適応に留まらず、自分が携わりたい仕事を企画・提案して作り出せる強みを持っています。自律的にキャリアを切り拓くシステムエンジニアが増えることで、システムエンジニアの将来がさらに明るいものになっていくと信じています。
まとめ
今回は現役のシステムエンジニアの方に記事を書いてもらいました。社内のシステムエンジニア経験者の方にもお話をうかがったところ、「システムエンジニアは体力が必要な仕事」とおっしゃっていました。
システムエンジニアの業務は幅広いため仕事量が多く、最新の知識や技術を学ぶ必要があるので、体力が必要になるといえます。
- システムエンジニアは「ビジネスとITとの翻訳者」
- システム開発の一般的なフェーズは「要件定義、設計、開発、テスト、運用」
- ビジネス領域の理解や整理のために、図を描くのがおすすめ
- システムエンジニアの仕事には作って動かすというシンプルな喜びがある
- システムエンジニアに必要なスキルは論理的思考、コミュニケーション能力、学び続けること
- 資格は必須ではないが、「情報処理技術者」「ITベンダー提供の資格」を取得することがおすすめ
- システムエンジニアの平均年収は569万円※年齢38.8歳、従業員10名以上の企業。
提供・さくマガ(「やりたいこと」を「できる」に変えるWEBマガジン)
【こちらの記事も読まれています】
>生産性向上の方法とは? 3つの具体的施策と2社の成功事例から考える
>男性の育休について、男性育児休業取得率から考える
>ブラック企業ものがたり。アンガーマネジメントを全て間違えてた課長
>フレックスタイム制とは? さくらインターネットでの導入事例を紹介
>パラレルキャリアとは? パラレルキャリアのメリットや実践での注意点を解説