SE(システムエンジニア)の仕事内容と必要なスキル

SE(システムエンジニア)に興味のある人

SEの仕事内容ってどんなものなんだろう?

あと、SEになるために必要なスキルとかあるのかな?

 

本記事ではこのような疑問に答えます。

 

本記事を書いている僕は、SEとして働いて6年目になります。

 

会社によって違うところもありますので、こんな感じなんだと気楽に読んでもらえたらと思います。

SEの仕事内容はどんなものか

SEの仕事の内容は主に次のようなものです。

  • 要求分析・要件定義
  • 設計(基本設計、詳細設計)
  • テスト

※会社や開発するシステムの規模によって変わることがあります。

 

ただ、仕事の内容をこんな風に書かれてもよく分からないですよね。要求分析ってなんだと。笑

今回はそれぞれの内容を説明するために、料理をシステム開発に見たたて説明しようと思います。

要求分析・要件定義

例として、カレーが食べたいお客さんがいたとしましょう。

このときに、「誰が(何人が)」「どんなカレーを食べたいのか」を「具体的に」「もれなく」聞き出すことが、要求分析・要件定義でやることになります

 

まず、何人のお客さんがカレーを食べたいかによって、ボリュームが大きく変わります。1人で食べるのか、10人で食べるのか。

 

次に、カレーと言っても色々な種類がありますよね。

  • チキンカレー or ビーフカレー or シーフードカレー
  • 甘辛 or 中辛 or 辛口
  • 野菜は何を入れるのか
  • とろみがあったほうがいいのか
  • などなど

 

その他、お客さんによっては具材にもこだわりがあるかもしれませんね。

  • 肉はスーパーの細切れ or 松坂牛
  • 野菜は人参・玉ねぎ・ジャガイモでいいのか
  • 産地の指定はあるのか

 

ここでお客さんの食べたいカレーをモレなく聞き出すことが、プロジェクトの成功に直結します。

なので、要求分析・要件定義はシステム開発の中でも非常に重要な仕事になります

 

「カレーなんて簡単でしょ」と甘く見て、

細かいところまで聞きださずに、要求分析・要件定義を終了させてしまったプロジェクトを見たことがありますが、そういうプロジェクトはほとんど失敗していました。

設計(基本設計・詳細設計)

設計では、要求分析・要件定義で決まったカレーの作り方を設計書に書き出します

基本設計・詳細設計とありますが、イメージ的にはこんな感じです。

  • 基本設計:料理人がカレーを作るための大まかな流れのレシピ
  • 詳細設計:料理人がカレーを作るための具体的なレシピ

※プロジェクトによっては、基本設計と詳細設計を分けずに進めることもあります。

 

設計で大切なことは、どんな料理人でもレシピを再現できることです

  • 必要な具材・調味料・調理器具
  • 具材を切る順番
  • 具材を炒める順番
  • 煮込み時間
  • などなど

料理人によってカレーが変わってしまっては困るので、手順から時間まで詳細に書くことが必要です。

テスト

設計書まで書いたら、料理人にカレーを作ってもらいます。

テストでは、料理人が作ったカレーが、要求分析・要件定義を満たしているか、設計書通りに作られているかをチェックします

つまり、お客さんが食べたいカレーになっているかを確認するわけですね。

※チェック項目は、設計書と一緒に作成します。

 

ひとつでもチェックに引っかかったら、お客さんが食べたいカレーになっていないことになるので、もう一度カレーを作ってもらいます。

チェック項目がすべて問題がなくなったら完了です。ここまですればお客さんが食べたいカレーの品質になっているからです。

 

分かりやすいようにカレーを例としてあげてみましたがいかがでしたでしょうか?

システム開発では、カレーではなくシステムとして考えるだけで、やることは基本同じになります。

SEの仕事に求められるスキル

SEに必要なスキルとしてよく見るのは、次のものがありますね。

  • コミュニケーション能力
  • マネジメント能力

なんとなく、このふたつの能力が必要そうなのは分かりますが、ザックリとしすぎている感じがします。

 

実際に経験してみた経験から、具体的には次のふたつの能力が必要だと考えます。

  • 相手のほしいものを聞き出す質問力
  • 様々なことを想定する想像力

相手のほしいものを聞き出す質問力

要求分析・要件定義ではお客さんとやり取りをするため、コミュニケーション能力が必要と書いてあることが多いですが、

僕はコミュニケーション能力の中でも、質問力が重要と考えています。

 

SEはお客さんが欲しい機能をシステム化するためにいるわけですが、

お客さんがその機能を欲しい本質を知ることで、どんなシステムにするのがいいかを提案することができます。

 

逆に本質が分からないと、モヤっとしたシステムになってしまう可能性があります。

モヤっとしたままシステム開発を進めて、システムを使えるようになったときに、イメージと違ったでは困ってしまいます。

 

本質をお客さんが話してくれたらいいですが、話してくれないときにお客さんから本質を聞き出す能力が必要になり、その能力が質問力だと思います。

様々なことを想定する想像力

まず、要求分析・要件定義のときには、お客さんが使いシステムにするための想像力が必要になります。

例えば次のようなこと。

  • 検索ボタンを押さなくても、Enterキーを押せば検索できるようにするべきでは?
  • システム使用者が毎回使うグラフは、初期画面に表示したほうがいいのでは?
  • 個人情報が見えるページは、特定の人しか見れないようにするべきでは?

 

すごいささいなことだと思っても、お客さんにとってはありがたいことだったりするんですよね。

そういったことが積み重なると、「この人ならいいシステムにしてくれると」信頼につながったりします。

 

次に、マネジメントのときには、リスクを想定して対策することが重要になります。

例えば次のようなこと。

  • メンバーのひとりが新人だから、作業に時間がかかるし教える時間もかかるから、多めに時間を見積もる
  • 若いメンバー中心なので、ベテランにフォローしてもらう
  • 他のプロジェクトで発生した問題を防げるように、あらかじめ対策する

想像したことがすべて採用されるわけではないですが、周知したことで問題を防ぐことができることもあるでしょう。

まとめ

SEの仕事は主に次の内容になります。

  • 要求分析・要件定義
  • 設計(基本設計、詳細設計)
  • テスト

 

また、SEとして必要なスキルは次の内容になります。

  • 相手のほしいものを聞き出す質問力
  • 様々なことを想定する想像力

関連記事

社員のモチベーションを上げるためのマネジメント