IT業界の中核を担う存在のシステムエンジニアになるには?

  • このエントリーをはてなブックマークに追加
  • Pocket
it 職種

システムエンジニア(以降SE)が、IT業界の中核を担う存在であることに異論を挟む人はいないでしょう。

一昔前は、SEと聞くと「コイツできる」と羨望の目で見られたものですが、ITが人や企業にとって不可欠な存在となり業界規模が格段に拡大した最近は、SEをしている人に会ったとしても珍しくはなくなりました。

一般的にSEを目指す人は、専門学校や高等専門学校、大学でITや情報処理、データベースの構築やプログラムなどについて専門的な知識を習得したのちIT企業もしくは企業のIT部門に就職するケースが大半です。

なかには、IT業界の恒常的な人手不足の影響などからポテンシャル採用を積極的に行っている企業も増えてきており、ITや情報処理に関して全く知識のない状態からキャリアをスタートするSEも少なからずいるのだそうです。

SEとPGの違いとは?

ただ、「SEって何をしている人?」と聞かれたとき、業界の人間でも明確にこれだと答えられる人は少ないでしょう。それはSEが担う業務の領域が余りに広く、システム開発全般に関わる人たちを一緒くたにSEと呼称することが多いからなのだそうです。

しかし、一般的には、SEは顧客の要求に応じ、システム全体から詳細に至るまでの設計から運用までを担当する役割を担い、そのシステムをプログラミングする実行部隊がプログラマー(以下PG)と呼ばれます。

すなわち、システム開発フェーズにおける計画、要件定義から本番稼働に至るまでのプロジェクト全体を網羅する役割を担うのがSEで、SEが描いたシステムを形にする肝となるべき役割を担うのがプログラミングを行うPGであると言えるでしょう。

PGはSEの登竜門 ~Facebookの事例から~

2015年7月現在、世界で14億人が利用しているソーシャルメディアであるFacebookは、使い勝手の良さと高い拡散力もありアラブ諸国で起こったジャスミン革命の陰の立役者となったほか、日本では東日本大震災など災害時の安否確認で大きな役割を果たしました。

このFacebookの創業者であるマーク・ザッカーバーグ氏は、プログラマー上がりの経営者であることは良く知られています。優れた頭脳と卓越したプログラミング技術がFacebookを産み出し、大きなシステム構築を必要とする規模のSNSへと成長し、ザッカーバーグ氏は、世界を代表する実業家へと昇りつめていきました。

彼はプログラマーであり、SEであり、同時に経営者でもあるのです。彼が比類なき天才であることは疑いの余地がないことだとしても、Facebookの成功は、彼がプログラマーであったことが大きな要因であることは間違いありません。

「Facebookをこうしたい」という明確なイメージがあり、その中で湧き出たアイデアを瞬く間に形にする。そしてフィードバックを電光石火の速さで反映していくことの繰り返しによってFacebookは世界最大のソーシャルメディアへと成長していったのです。

ザッカ―バーグ氏がいかにプログラムの鬼であったかの様子は、2010年に公開された彼の半生を描いた映画「ソーシャル・ネットワーク」に描かれています。

開発チームの中には、元請けの企業から送られてきたSEと外部や下請けの企業から派遣されたPGで構成されている場合も少なくありません。

この場合、元請企業の事情によりSEにプログラミングの知識が欠如していた場合、チームは大きな混乱を来します。PGは大きな負担を強いられ、IT業界でいうところの「デスマーチ」が頻繁に起こるようになります。SEとPGの信頼関係は深まるばかりか早々に破たんを来し、開発フェーズは大きな修正を余儀なくされることになります。

このように、必ずしも絶対にとは言い切れませんが、開発の一端でありながらシステムを形にする役割を担うPGはSEにとって最も重要視しなければならない存在であり、彼らの活躍なくしてはシステム開発もままならないことを肝に銘じるべきなのです。

ならば、イの一番にSEに求められるものはプログラミングの知識であり、コードという共通言語を通じてPGの様子を慮る洞察力なのです。

優秀なSEの多くはPG出身であり、PGの経験がない人もプログラミングに関して深い知識を持っています。これからSEを目指そうと思っている人は「PGはSEの登竜門」であると心得、プログラムの勉強を始めてください。

SEに求められるスキル

SEはシステム開発の設計者、監督者の役割を担うため、顧客との折衝や開発チームをまとめ上げるマネジメント力は必須となります。

特に要件定義などの上流工程においては開発の基礎的な部分となりますので、プログラミングといった本業のスキルからヒューマンスキルまで幅広い能力が求められます。ここでは、その中でも特に重要な4点についてご紹介しましょう。

プログラミング能力

先に述べたようにJavaやC,C++、PHPなどのプログラミング言語に関する知識は大きな強みになります。実際にプログラミングの経験があればプロジェクトの全体像をより具体的に描けるようになるでしょう。

また、OracleやMySQL、PostgreSQLなどのデータベースやSQLに関する知識もあると有用です。加えて、Linuxなどサーバーに関する知識も顧客先でサーバーを構築するようなときは、大いに役立ちます。

プログラマーからSEへのステップなら、プログラミングに関しては知識のない人よりは、はるかに前を走っていると言えます。今後データベースやサーバー構築、ネットワークの知識を広げていくと、対応力が広がります。

業務知識

顧客との折衝や打ち合わせの際に、顧客の要求を汲んで、それを満たすシステムを構築するためには業務知識は必須です。

業務知識がないと、システムの設計図を書いたり仕様書を作成する際に、このシステムで何がどのように改善されるのかなど全くイメージすることができません。

上流工程に携わるSEを目指す人ならなおさらのこと、無理やりにでも頭に叩き込む必要があります。

プロジェクトマネジメント力

SEにも開発チームに関わっている以上、マネジメントと無関係ではいられません。

プロジェクトマネージャー同様に進捗管理や現状把握、人員・仕事調整、顧客との打ち合わせ、リスク・トラブル管理などといったプロジェクトマネジメントに関するスキルも求められます。

コミュニケーション能力

コミュニケーション力は対顧客、対チームメンバーなど人に関わる側面で絶対に必要とされるスキルです。顧客と接する際は、会話からニーズを察知し的確な提案を行うのも、要求に対して即座に対応するのもコミュニケーション能力です。

これらは、上記に挙げたスキルをベースにしており、考えうる限りの質問を投げかけ、顧客が求めるものの核心に迫っていくには、場数を踏むことはもちろんのこと、「できる」SEの手法から学んでいくことが肝要です。

また。プロジェクトチームのメンバーとのコミュニケーションも顧客と同様に大切になってきます。プログラマーに設計や仕様を適切に伝えられるかが、完成品の出来栄えを左右します。

プログラマーとのミスコミュニケーションが小さなバグを産み出し、それがプロジェクト全体にも関わるほど大きな問題となりかねません。開発チームは期間限定とはいえ同じ目標を持って集まった運命共同体です。その中での人間関係を円滑にすることもSEに求められる隠れた使命なのです。

コンピューターという人類が産み出した最高のテクノロジーを扱うIT業界は一見無機質に映りがちですが、プロジェクトが人によって介在している以上、成功の秘訣はやはり「人が気持ちよく働ける環境」を作っていくかということなのです。

最後に確認して欲しいポイント

SEを目指す人はまずはプログラムを学び、それをベースとして上記に述べたスキルを身に付けてください。これが顧客を満足させ、開発チームも気持ちよく働くことのできる環境の構築へと導いてきます。

それが結果としてSEとしてのステップアップへとつながっていくのです。

  • このエントリーをはてなブックマークに追加
  • Pocket

cta_ss