システムエンジニアの仕事って何?必要なスキルは?
システムエンジニアとは
『システムエンジニア』と聞いてまず思い描くのが、パソコンとにらめっこしてプログラムを作る(書く)人ではないでしょうか?
ご存じの方もいるかと思いますが、プログラムを書くのはプログラマーであって、必ずしもシステムエンジニアがプログラミングをするとは限りません。
現に、私はプログラミングを一切しません!
wikipediaによると、システムエンジニアとは以下とあります。
日本の企業では慣習的にコンピューターシステムやネットワーク・データベース等の情報システムに関わりながら以下のような業務を行う者を指すことが多い。
- 企画
- 設計
- 開発
- 評価
- プロジェクトマネジメント
- コンサル
- 工事
- 保守
- 運用
見てわかる通り、システムエンジニアという言葉は特定の作業を指すのではなく、システム構築・運用に関する職業といったところでしょうか。
(この中で実際にプログラミングをするのはだいたい「開発」ぐらいですね)
なお、システム開発の主な工程と特徴については別の記事でまとめたいと思います。
さて、近年、これからの時代はやれITだのAIだのDXだのといろいろ言われていますが、確かにこれらにはシステムエンジニアが関わってきます。
では、デジタル社会で生きていくために、どんなスキルを習得すればよいのでしょうか?
システムエンジニアに必要なスキル
最初に断っておきますが、私は一人のSEであり、SEを研究していたりするわけではありません。そのため、以下は一般論ではなく、自分の知識・経験を基にしています。他にも必要なスキルはたくさんあると思いますが、特に私が大切だと思うものをあげます。
ヒューマンスキル
まずはヒューマンスキルです。
ヒューマンスキルと一口で言っても多くの要素がありますが、ここでは人と良好な関係を構築するスキルとします。
仕事全般で必要になりますが、これを一番最初にもってきたのは特に大切だと思っているからです。
確かに、プログラミングの知識や開発可能なプログラミング言語の豊富さ、専門用語の知識なども必要ですが、私は「技術や知識」は後からいくらでも習得できると考えています。
一方、ヒューマンスキルは習得に時間が掛かったり、そもそも大切と思っていない人が多い気がするため最初にもってきました。
さて、なぜヒューマンスキルが大切かと言うと、基本的にはシステムは組織(チーム)で構築するものだからです。
プログラミングをする場合であっても、
- プログラムソースを書く人
- プログラムソースをチェックする人
が登場します。
他にも、進捗や課題などを管理する管理者(開発リーダーと言ったりします)も存在します。
これらの人と、コミュニケーションを取りながら作業を進めていくことになりますが、同じ目的意識を持って取り組むことでより良いもの・より良い仕事ができると考えています。
そのためにはヒューマンスキルがかなり大切となります。
他にも、顧客と直接会話をしてシステム仕様を検討したり、有識者が集まっての企画会議や課題対策会議、障害対応会議など複数人で協議(ときに激しく・・・)することが多いです。
一見、一人で黙々とプログラミングをしているイメージかもしれませんが、決してそれだけではなく、他人との関わりが大きいです。
実際、私はこれまでSEでありながら人間関係にかなり悩まされてきました。(一人で仕事がしたいと思うこともしばしば)
人と関わるのが苦手な私がどのようにしてこのような仕事を続けられているかと言うと、苦労しながら自分なりの精神論を持つことができたからです。それは別の記事でまとめます。
論理的思考力(ロジカルシンキング)
次は論理的思考力です。
論理的思考力とは、複雑な事柄を整理・分析して一貫した結論を導き出す能力です。
設計にせよプログラミングにせよ、考えることが多く、それを他人と議論することが多いです。論理的思考力があれば、自分の考えや表現したいことを整理でき、それを他人にわかりやすくアウトプットできるようになるからです。
論理的思考力はかなり応用が効くので、是非身につけておきたいスキルです。
私の勤めている会社でも新人のうちに学びました。
他にもクリティカルシンキングなどさまざまな思考力があるのですが、それはまた別の記事にしたいと思います。
プログラミングスキルと言語
プログラミングスキルとは、プログラムを作るスキルですね。
当然、プログラミングを専門とするプログラマーは必須です。
扱える言語が多ければ多いほどいいと思います。新しい言語はもちろん、古い言語であっても古いシステムが残っている企業があれば需要はありますし、むしろ古いと扱える人が少なく希少スキルだったりします。
システムエンジニアであっても、プログラムを作ったり見たり(調査・確認したり)、それを評価したりすることがあるため必要です。ただ、私はプログラムを作るスキルよりもプログラムを設計するスキルの方が大切かなと思っています。
プログラム作成(コーディングと言います)をプログラマーに任せる場合、システムエンジニアはプログラムを見たり評価することの方が多くなります。このとき、プログラムがどうあるべきかがわかることが大切であり、これを行うためには、正しいプログラム設計をイメージできる必要があるためです。
とはいえ、プログラミングの知識がないと設計ができないため、やはりプログラミングスキルは必要になります。
まとめ:システムエンジニアの仕事って何?必要なスキルは?
いかがでしたでしょうか。
システムエンジニアといってもプログラミングだけでなく、企画から開発、運用・保守といったシステム構築・運用に関わる全般的な職種ということを説明しました。
また、これら全般に必要とされるスキルが、技術だけでなく、ヒューマンスキルや論理的思考力が大切ということを説明しました。
この記事では、まずはシステムエンジニアとはどんなものかを説明しましたが、正直これだけではよくわからなかったり納得しなかったりするかと思います。
更に詳しい内容は別記事にまとめていきますので、そちらも見ていただければと思います。