システムエンジニアはプログラミングスキルがなくても仕事ができます。
これは、システムエンジニアやプログラマー経験者の方には周知の事実です。
当記事ではこれからシステムエンジニアを目指す人のために
- プログラミングできなくても仕事ができる理由
- プログラミングできないデメリット
- プログラミングできるメリット
についてわかりやすくお伝えしていきます。
これからシステムエンジニアを目指す人の「プログラミング」への考え方の参考になれば幸いです。
プログラミングスキルがなくても仕事ができてしまう
システムエンジニアはプログラミングスキルがなくても仕事が成り立つことがあります。
その理由について見ていきます。
システムエンジニアの主要業務はプログラミングではない
通常、開発工程は以下のステップで進んでいきます。
システム開発工程
- 要件定義
- 外部設計
- 内部設計
- 開発(プログラミング)
- テスト
開発(プログラミング)とテストはプログラマーが担当し、システムエンジニアはそれより前の工程を担当します。
要件定義・・・ユーザーの抱えている問題ややりたいことをヒアリングして分析、提案する
外部設計・・・システムの入力画面や出力する帳票を設計する
内部設計・・・データの流れや計算式など、プログラマーが内部設計を見て開発できるように設計する
システムエンジニアの主な仕事内容は、システム開発工程のプログラミング以外となります。
したがって、業務の中でプログラミングをゴリゴリ書くことはありません。
参考
プログラミングもバリバリ担当しているシステムエンジニアもいます。ベンチャー企業などで少人数体制で自社開発している場合はシステムエンジニア、プログラマーの垣根がないことはあります。
システムエンジニアの仕事内容、プログラマーとの違いについては以下の記事で詳しく紹介していますので、よければご覧ください。
-
-
システムエンジニアとは?仕事内容や必要なスキルを簡単にわかりやすく紹介
続きを見る
-
-
システムエンジニア(SE)とプログラマ(PG)の違い | どっちがいいの?
続きを見る
【事実】プログラムが書けないシステムエンジニアはいます
システムエンジニアの主要業務がプログラミングではないことが分かったと思います。
でも、「プログラミングができないと内部設計もできないんじゃ?」と気づいた方もおられるでしょう。
その通りです。
プログラミングを理解していないとハチャメチャな内部設計ができあがります。
そして、プログラマーが内部設計を見ても開発できないという悲惨な状況が完成します。
ですが、大手になればなるほど、システムエンジニアは内部設計もおこなわないことが多いのです。
どういうことかというと、システムエンジニアは要件定義と外部設計までの上流工程だけを担当し、その後の工程は開発会社に依頼するか派遣のプログラマーに任せます。
よって、プログラミングができなくてもシステムエンジニアとして成り立ってしまいます。
事実として、僕もプログラミングができないシステムエンジニアをたくさん見てきました。
ただし、それがすべて悪いと言っているわけではありません。
プログラミングが書けなくてもシステムエンジニアとして仕事ができている人は
- IT全般知識にくわしい
- コミュニケーション能力に優れている
- マネジメントがうまい
- 業務知識が豊富
- 観察力
- 調整力
などのプログラミングスキル以外のスキルで仕事をしているのです。
プログラミングができないシステムエンジニアのデメリット
プログラミングできなくてもシステムエンジニアとして務まることがありますが、やはりデメリットが存在します。
プログラマーと意思疎通が取れない
プログラミングが分からないので、プログラマーへの的確な指示出しができず、「こんなものを作りたいんだけど」と丸投げするだけになってしまいます。
開発の細かな相談を受けても、ちぐはぐな回答しかできないので、プログラマーとのコミュニケーション役はプログラミングスキルのあるシステムエンジニアに任せた方がよいです。
自社システムに詳しいだけの人になってしまう可能性
自社システムだけを長年担当しているシステムエンジニアが陥りやすいです。
プログラミングができなくても、業務知識と自社システムの知識があるのでシステムエンジニアとして務まります。
ですが、これが続くとシステムエンジニアではなく「自社システムに詳しいだけの人」になってしまう可能性があります。
つまり、一歩外に出ると、まったく通用しないシステムエンジニアになってしまいます。
プロジェクトを炎上させてしまう
プログラムができないシステムエンジニアがやってしまいがちなプロジェクトを炎上させる要素は以下になります。
- ムチャなユーザーの要望を「すべてできます!」と回答してしまう
- 不十分な仕様書や設計書が完成してしまう
- 開発スケジュールが無茶苦茶
- プログラマーの説明が理解できず、あいまいな情報をユーザーに伝えてしまう
プログラムを知らないので正常な開発管理ができずプロジェクトを失敗に導いてしまいます。
もちろん、プログラムができないシステムエンジニアでもプログラミング以外のスキルで、プロジェクトをうまく回せる人はいます。
ですが、そういった人はよほどプログラミング以外のスキルが充実している人です。
普通のシステムエンジニアは、やはりプログラミングスキルがないとプロジェクトをうまく回せないことが多いです。
プログラミングができるシステムエンジニアのメリット
プログラミングもきちんとできるシステムエンジニアは、プログラミングできないシステムエンジニアと比較してメリットがあります。
ユーザーとの折衝がスムーズにできる
システムエンジニアは、ユーザーと打ち合わせして要望や困っていることを聴きます。
そして、ユーザーの要望を実現するにはどうすればよいか考えなければなりませんが、プログラムを理解しているとユーザーと話しながらでも
- システムで実現「できる・できない」をすぐに判断できる
- システム改修の期間(費用)がわかる
以上のことが頭の中に浮かんでくるようになります。
ですので、プログラミングスキルがあると、ユーザーとの折衝がスムーズにおこないやすくなります。
プログラマーから信頼される
プログラミングができるシステムエンジニアは、プログラマーから信頼されやすくなります。
プログラマーから「この実装どうしましょう?」と相談された時でも、プログラマーと同じ目線で考えることができます。
まして、経験豊富なシステムエンジニアであれば的確なアドバイスも可能です。
的確なアドバイスを受けたプログラマーは、そのシステムエンジニアへの信頼感が高まります。
プログラマーから信頼されるとチームの一体感が強まり、プログラマーの士気もあがってプロジェクトが成功に近づきます。
転職・働き方の幅が広がる
プログラミングスキルがあるシステムエンジニアは、転職したいと思った時の選択肢が広がります。
プログラミングができると、これからますます増えていくフリーランスエンジニアとして働くこともできますし、業界全体でITエンジニアが不足しているので転職も簡単です。
一方、プログラミングスキルのないシステムエンジニアの転職となると、大きなプロジェクト管理の実績やマネジメント能力・コミュニケーション能力・リーダーシップが優れていないと年収アップの転職は難しくなります。
まとめ
システムエンジニアがプログラミングできなくても仕事ができる理由と、事実プログラミングできないシステムエンジニア(上流工程しか担当したことがない)がいることを紹介しました。
やはり、プログラミングできないデメリットとプログラミングできるメリットがあるように、個人的にはシステムエンジニアにはプログラミングスキルは必要だと考えます。
これからシステムエンジニアを目指す人には、最初から上流工程(要件定義・管理)だけをすると決めるのではなく、プログラミングスキルも習得してほしいです。
プログラミングができるだけで、将来の可能性が広がりますよ。