「エンジニア」という響きには、いかにも理系のお仕事というイメージのあります。しかしそれが「システムエンジニア(SE)」になると、少し様子が異なります。実はSEとは、文系の方にもおすすめしたいエンジニア職なのです。
その理由は、次の3つです。
・他人が作成した資料の読解力、口頭説明に対する理解力が必要である
・必要な情報を簡潔かつ一意に伝える文章作成能力が必要である
・IT知識があって当然と思わないことが必要である
今回は、なぜその3つがSEにとって必要なのか、だからといって未経験からでもSEとして採用されることは実際に可能なのかなど、ご紹介していきたいと思います。
目次
1.1 情報系以外の理系と文系の差はほとんどない
1.2 技術力以上に理解力&伝達力が必要?
2.1 システム開発の流れとSEの役割
2.2 各工程の詳細
1.SEに必要なスキルは文系寄り?
1.1 情報系以外の理系と文系の差はほとんどない
ひとまとめに理系と言っても、情報系以外の理系が学んできたことにSEの実践で生かせる知識はほとんどありません。工学系であればプログラミングをやっている可能性が高いのでそれは確かにアドバンテージになりますが、情報以外の理学系などであればIT技術関連は学ばないケースがほとんどです。
つまり文系だから理系だからはあまり意味がなく、ITの予備知識があるかないかが第一の分かれ目になります。たまに理系は論理的思考力が…という表現がされることもありますが、よほどの尖った天才でもなければ、一般人レベルでの差はほとんど無いのではないでしょうか。
1.2 技術力以上に理解力&伝達力が必要?
前項ではプログラミングをやっているとアドバンテージになると書きましたが、SEの主なお仕事はプログラミングではありません。実は次の2つが主な役割になります。
・資料を読んだり話を聞いたりして、顧客の要望を正しく理解する
・どんな物を作ってほしいのか、プログラマ(PG)に分かりやすく伝えるための資料を作成する
検討や予定ばかりではありますが曲がりなりにも国家資格ですので、実現度は高いのではないでしょうか。特に1つめが実現すれば、合格祝い金や資格手当の支給を行う企業が増えると考えられます。
つまり、顧客と開発の橋渡し役がSEなのです。そのために必要な能力は必ずしも理系でなければならないものではなく、むしろ文系の方が得意とするジャンルではないでしょうか。
2.具体的なSEの仕事内容
前項で挙げた2つの役割ですが、具体的にどのような場面で発生するのでしょうか。システム開発の流れに沿って、SEの業務内容を詳しくご紹介します。
工程 | 担当 |
---|---|
(1)要求分析 | SE |
(2)顧客へのプレゼン&入札 | リーダークラス以上のSE、営業 |
(3)要件定義 | SE |
(4)設計 | SE |
(5)製造 | PG(プログラマ) |
(6)テスト | PG、SE、テスト専門部門など |
(7)納品 | SE、リーダークラス以上のSE、営業など |
入札が無いケースなど現場により少し異なりますが、おおまかには上のような流れでシステムの開発は進んでいきます。「エンジニア」と聞いて思い浮かべるようなコーディング(プログラミング)が行われるのは、うちの「⑤ 製造」の部分になります。
2.2 各工程の詳細
次に、上の表でSE担当としている工程で何を行っているのかを詳しくご紹介します。
(担当がSE以外の工程については、説明を割愛します)
(1)要求分析
ここで必要になるのは、「顧客の要求を正しく読み解き、規模を見積もる力」です。
多くの大規模開発案件では、競争入札が行われます。まず顧客となる企業や官公庁が「こういったシステムが欲しい」という説明資料を作成し、公開します。その資料から「何を求めているのか」を正しく理解し、どのくらいの規模のシステムが必要か、それは何人が何日作業すれば完成させることができるのか、競争入札に手を挙げる前にしっかりと見積もる必要があります。
最終的な金額の見積もりはプロジェクトリーダークラスの経験を積んだエンジニアが決定しますが、見積もりに必要な数値を出すのは中堅SEの役割です。
(3)要件定義
ここで必要なのは「顧客の業務や必要とするものを理解し、資料にまとめる力」です。
重要なのは、ほとんどの場合「顧客はIT初心者」であるということです。長年IT系に詳しい仲間に囲まれていると「このくらい常識」という意識が強くなります、そのため「顧客が分からないことが分からない」という状況に陥ることがあります。その点文系出身であれば、顧客の立場に立ち「分からない気持ちが分かるSE」になれる可能性が高いのではないでしょうか。
またSEには、「顧客の業務内容を理解すること」が求められます。業務内容を正しく理解していなければ、本当に顧客が必要としているシステムを作ることは困難です。そのため会計システムであれば簿記の勉強をしたり、官公庁系のシステムであれば法制度について勉強したりと、IT技術以外の知識も勉強する場面が多々あります。IT技術だけでなく、いろいろな方面に興味を持って学べるということが、SEには重要なのです。
最後に、顧客との打ち合わせは口頭での対話が重要になります。「言った言わない」や「思っていたのと違う」という苦情が、多く発生する場面です。ここでは会議の内容を的確に文章に落とし込み、記録する能力が必要になります。
(4)設計
ここで必要なのは「仕様を正確にPGに伝えるための文章作成力」です。
顧客との対話で掴んだ「必要な機能」をプログラマ(PG)に正しく伝えなければシステムを作ることはできませんが、その伝達には主に「設計書」が使われます。設計書に書いていることが分かりにくいと確認のため作業に遅れが生じ、さらに悪いケースだと時間がないからと曖昧なまま適当に作ってしまい、後で大問題につながることもあります。そうならないためにも、誰が読んでも同じものができるよう、簡潔かつ一意に伝わる文章を作成する能力が必要なのです。
(6)テスト
この工程になると開発は大詰めとなり、職種を問わずチーム総出で動作確認を行う場面も多く見られるようになります。テストした結果問題が見つかれば、PGに頼んで急ぎ修正してもらう必要があります。
現場により体制は異なりますが、例えば検出したエラー一覧をPGに渡して修正してもらうという体制の場合、何をしたときどんなエラーが発生したかを短文で分かりやすく伝える必要があります。発生条件が曖昧だとエラーを再現することができず修正に時間がかかってしまい、作業の遅延につながってしまうのです。
3.文系SEが不利な点と対応策
ここまで文系がSEに向いている点についてご紹介してきましたが、逆に不利な点とその対応策をご紹介したいと思います。
3.1 ITの基礎知識が足りない点
IT初心者の気持ちが分かるのも重要ですが、あくまでもSEはITの専門家である必要があります。そのため情報処理に関する基礎知識が足りなければ、努力して習得する必要はあります。
ITの基礎知識不足を補うには、ちょうど良い国家資格があります。それは「基本情報技術者試験(FE)」です。情報系の学校で学ぶ基礎知識がまんべんなく詰まっており、知識的な不足分を十分補うことができます。
3.2 プログラミング知識が足りない点
プログラマほどにコーディング(プログラミング)がばりばりできる必要はありませんが、技術的に「実現出来ること」と「実現出来ないこと」が分からなければ設計することはできません。建築に例えると、大工の技術がなくても建築士にはなれますが、大工の技術を理解していなければ現実的な設計はできないのと同じことです。そのため「プログラミングはまったく分かりません!」では、SEは務まらないのも現実です。
プログラミングの基本を学ぶ対応策としては、ふんだんにある入門書から初めてみることがおすすめです。最近では中学生からを想定した初学者向けに、分かりやすい本がたくさん出版されています。例えばスマホゲームが好きな方であれば、JavaでAndroidアプリを作る本がおすすめです。興味あるところから実際にプログラムの元となるソースコードを書き写し、動かしてみることから初めてはいかがでしょうか。
4.SEに向いている人と向いていない人の特徴
このように文系の方にも向いているSEという職種ですが、やはり向いている人と向いていない人の特徴はあると思います。筆者の経験則になりますが、実際に続いている人、辞めてしまった人の特徴をいくつかご紹介します。
4.1 向いている人
筆者が中規模SIer(システム構築会社)でSEをしていた頃の同僚にも、多くの文系出身者の方がいました。最初の上司(課長)はその後本部長にまで上り詰めましたが、学生時代の専攻は心理学だったそうです。その上司は向いているタイプの方でしたが、好奇心旺盛で色々な分野に興味を持って吸収することができ、コミュニケーション能力が高い(顧客から必要な情報を引き出すのが得意、かつ部下と気軽にお喋りして状況把握できる)方でした。
また他の例としては、文系出身だけど趣味がパソコンで休日は1日中PCの前に座っているという先輩や、こつこつと日々勉強して新しい知識を取り入れている先輩なども、SEとして着実にキャリアを積んでいました。
まとめると、次のような方がSEに向いていると考えられます。
・コミュニケーションが好き
・好奇心旺盛
・PCが好き(1日中PCに向かっていても苦にならない)
・こつこつと作業ができる
4.2 向いていない人
SEになったものの何かが違うと感じて、数年で他業種へ転職してしまう方もいました。その方の特徴をまとめると、次のような共通点がありました。
・プライベートではPCを立ち上げない(PCに興味があまりない)
・緊急事態に脳がフリーズしてしまう
専攻は問わず、なんだかんだPCが好きというのはやはり重要なようです。中には仕事とプライベートを完全に切り分けられる方もいますが、SEは単純にPCの前に座っている時間がとても長い職種です。PCに向かうのが苦になるようでは、SEになるのは難しいようです。
またSEはチーム戦がメインですが、繁忙期で複数システムが同時に稼働するようなタイミングでは1人で顧客先へ訪問して設定作業を行うなんて場面もありえます。大抵は決められた手順通りに実行すればOKというケースばかりですが、まれに原因不明のエラーが発生し、手順を遂行できなくなる場合もあります。そんな時にパニック状態になってフリーズしてしまうタイプの方は、その後SEを辞めるケースが多いようです。もし自宅のPCがエラーになったとき、対処法をGoogle検索してみたり、電話で詳しい人に聞いてみたり、とっさの問題解決に向かって能動的に動けるタイプの方であれば、SEが向いているのではないでしょうか。
5.文系(未経験)でもSEに就職・転職できるのか?
結論から言えば、新卒からの就職であればほぼ確実に可能です。もちろんこの就職氷河期に数多のライバルを掻き分けて採用されるには、他の人より優れた点をアピールする必要はあります。ですが前項でも挙げたように、すでにとても多くの方が情報系以外の専攻からSEとして採用されている実績がありますので、専門外だからと就職できないことはありません。
転職の場合は年齢次第になります。IT系以外からの採用となると、どうしても「育てる」という見方が強まります。そのため即戦力が期待される30代以降になると、いきなりSEへの転職は難しくなります。
しかしどうしてもSEになりたいという場合には、まずPGとして採用されて開発の現場に入り、その経験をもとにSEにクラスチェンジするという方法があります。慢性的にPGは不足している現場が多く、SEより幅広く求人が行われています。さらにPGになるための職業訓練コースは各所で開講されていますので、プログラミングに興味がある場合はまずPGを目指してみてはいかがでしょうか。
6.文系なのになぜ?と言われない、志望動機の書き方
情報系以外の専攻からなぜSEを選んだのか?は、やはり聞かれる可能性が高い質問です。その時の答えは純粋に思った通りの内容で大丈夫かと思いますが、例として次のようなものが挙げられます。
<志望動機の例>
・チームでのものづくりに興味があるから
・IT技術に関心が増してきたので、もっと勉強したいから
・IT業界はこれからも成長していくと思うから
・趣味でプログラミングをやってみたら楽しかったから
・チームで協力して何かを成し遂げることが得意だから
また問われやいのは、IT技術に対する勉強意欲です。資格を取得していれば、自発的に学習することへの意欲をアピールするのに役立ちます。取得していない場合は、努力する意思をしっかりと示すことができると高評価ではないでしょうか。
あとは志望する会社のことをよく調べた上で、「なぜSEなのか」だけではなく「なぜその会社なのか」も、忘れずに考えておくようにして下さい。