SEに必要なスキルってなんだろう?




タイトルで書いておいてなんですが・・・
SE(システムエンジニア)のお仕事は幅が広いので、必ずしも当てはまらないですw

この投稿は、学生(大学生、専門学校生、高校生)向けです。
就活対策ではなく、実践に対してのものです。
非常に個人的な意見ですので、異論反論あるかもしれません。

いわゆる一般的な業務システム(会社が業務で使うアプリ)を開発するSEを想定してます。
ゲーム作るとかロボット作るとかパッケージ製品作るとか・・・じゃないよ。

そもそもSEのお仕事ってなに?

一言で言えば、通訳・翻訳をすることだと思ってます。
お客様から話を聞いて、実現イメージを描く。
ある程度決まってきたら、仕様を起こして、製作サイドに伝える。
モノができたらテストして、お客様に納めるのが基本。

ぐぐると出てくる一般論

Google先生に聞いたところでは、こんな感じですね。

  1. プレゼンテーション能力
  2. コミュニケーション能力
  3. 論理的思考能力
  4. 技術系・専門分野の能力
  5. マネージメント能力

言われてみれば、そんな気もします。
占い師、もしくは、模範解答的な感じで、あまり響きませんw
こんなに何でもかんでもできる人って、そうそういないかな。

一般論を少し深堀りしてみる

結局どのあたりを専門(武器)にやっていくかで、道が分かれてしまうのですが。
プログラミングなんて知らなくてもやっていける場合もあります。

プレゼンテーション能力

営業部門、もしくは、営業に近い立ち位置になると必要かもしれません。
新しいお客様を開拓したい人は必要ですが、ある程度お付き合いがある場合、そんなに必要ではないと思います。
少なくとも、最初から必要だとは思えません。
若手がうまーくしゃべると、逆に浅く見られるかもしれません。

コミュニケーション能力

・聞く
話を聞くことが商売のようなものなので、聞く力は重要です。
聞いた話を曲げないこと、勝手な想像をしないこと。
うまく話すことよりも、聞くことが大事だと思います。
・話す
話す側では、モノゴトを説明する力は必要だと思います。
会話は、ふつうにできれば十分でしょうw

論理的思考能力

システムを実現するためには重要です。
本当にこれでモノができそうなのか?考えることは非常に大事です。
お客様の「あんなのが良い」、「こんなのが良い」の中には、だいたいトラップが含まれていますw
(悪い意味ではなく、どうしても考えが抜けたり、矛盾したりするものです)

技術系・専門分野の能力

お客様と会話している間でも、思考実験して実現できそうか考えられることは重要なのです。
お客様から受けた質問を宿題で持ち帰りできれば良いですが、持ち帰れない場合もあります。
結局そのときに考えていることは技術のことだったり、専門分野のことだったりなのです。

マネージメント能力

マネージメント能力を最初から持っている人はいないでしょう。
社会人になる前からマネージメントしている人は、99%いません。
ただし、決められたスケジュール・コストなどの意識を持っておくことは重要です。
まずは、自分自身をコントロールできるかです。

ほかに必要そうなことは?

・調べる力
この業界は日々勉強(調べる)が必要ですw
日進月歩で技術は進化するし、得体の知れないモノに触ってみたり、お客様ごとに全然違ったり・・・なので、日々わからないことだらけです。
やってることは、「話を聞いて、モノ作って、納める」ですが、同じモノを作ることはないので、どこかで詰まることが良くあります。
うまく調べて、うまく活かすことができれば、それは大きな力になります。
・伝える力
前述のとおり、通訳・翻訳が仕事です。
伝言ゲームにならないような伝え方は大事です。とくにオフショア(海外にモノづくりを依頼)する場合とか。
・確率統計学
いきなり各論ですがw学生時代に学んでおくと良さそうなことは、「確率・統計学」です。
検定とかは覚えておくとお客様に言い訳してみたり、謝ってみたり、説明したりするときに有利ですw

SEにプログラミングの知識は必要か?

「プログラミングの知識は不要」なんて言う人もいます。
たしかに言語を書く知識は必要ないかもしれません。
ですが、知っているのと知らないのとでは大きな差があります。
知っていると、プロジェクトの進み方から、作り方・処理の流れまで、すみずみ想像できるので、できそう・できなさそうは、自分で判断ができます。
ところが、何も知らないと、誰か他の人に判断を仰ぐ(依存)ことになります。
(てきとーな判断は、製作サイドと喧嘩の元になるので、要注意w)
よって、個人的には、ある程度のプログラミングの知識は得ておいた方が良いと思ってます。
プログラマをやってから、システムエンジニアが順当でしょうか。

重ねてになりますが、あくまで個人的な意見ですw
的外れかもしれませんので、聞き流す程度にしてくださいませ。

偉そうなこと書いてすみません。そんなつもりは全くないです。
自分もいつも迷ってる一人です(; ・`д・´)