エンジニア

システムエンジニアにプログラミング能力は必要か?メリットとデメリットを解説!

2020年6月21日

システムエンジニアにプログラミング能力は必要?

 

システムエンジニアってプログラム開発しないけど、
プログラミング能力はいらないのかな?
やっぱりプログラムが出来た方がいいのかな?

 

こんにちは、古賀です!

 

本記事では、

はてな

「システムエンジニアにプログラミング能力は必要か?」

「プログラミング能力があることでのメリットやデメリットは何か?」

という疑問にお答えしたいと思います。

 

「プログラムが出来たほうがいいに決まっている!」

という声が聞こえてきそうですね。。

でもプログラミングができることは、良いことばかりだけではありません。

わたしの体験談ですけど、プログラミング能力が邪魔してくる場合もあります。

 

「メリット」、「デメリット」の両方を把握して、

これからのシステムエンジニア生活に活かしていってください!

 

自己紹介が遅れましたが、

わたしは大学卒業後、上場IT企業に就職し、プログラマー、システムエンジニアとして

約10年間働きまして、現在フリーランスをしております。

プロフィールの詳細はこちらです。

 

「システムエンジニアとは何か?」について知りたい方は、こちらの記事にまとめています!

システムエンジニアとは?プログラマーとどう違う?SEの仕事内容を解説!

結論:システムエンジニアにプログラミング能力は必要!

コード

早速結論ですが、ご想像の通り、

「システムエンジニアにプログラミング能力は必要」

です。

 

「プログラムができなくては、システムエンジニアとして通用しない」

とまではいきませんが、あるに越したことはないです。

 

「やっぱりプログラミングできないとダメか。。」

と思うかもしれませんが、大丈夫です!

 

基本的に、

「プログラマーを経験してからシステムエンジニアになる」

ため、ある程度のプログラム知識や能力は身に付いているはずです。

 

上流工程しか行わないSIer企業でなければ、プログラマーを経験できるはずなので、

プログラマー時代にプログラミング能力を高めておきましょう!

システムエンジニアにプログラミング能力があることのメリット!

ビジネスマン

それではプログラミング能力があることのメリットを説明します。

色々とメリットはあるのですが、以下のような場面で役立ちます。

  • 不具合調査
  • 新旧システムデータ移行
  • プログラム工数見積
  • 設計書作成
  • 効率の良いテスト

不具合調査

お客さんからプログラムの不具合や、プログラムの動作に関する問い合わせがあった場合、

プログラミング能力があると、

「問い合わせの即対応」

ができます。

結果、お客さんからの信頼が得られます。

 

直接プログラムを実行して確認したり、設計書を見て確認したりしようとすると、

結構時間が掛かってしまいます。

 

プログラマーにお願いする手もありますが、

お客さんの業務の理解が薄いプログラマーだと、即解決するのは難しいものです。

単純に手が空いていない、という場合もありえます。

 

「すぐに対応が必要!」

といった場合に、

システムエンジニアのプログラミング能力が高いと易々と対応することができます。

新旧システムデータ移行

システム新しく入れ替える時に、データの移行作業が必要になりますが、

プログラミング能力があると、

「正確なデータ移行」

ができます。

 

データ移行はお客さんに作業をしてもらう場合もありますが、
※EXCELで指定フォーマットに変換する作業

その作業をお客さんにお願いするにしても、

そのやり方であったり、難易度を把握しておく必要があります。

 

データ移行はシステム安定稼働のキモの部分です。

プログラミングというより「SQL」の知識が必要になります!
※SQLはデータベースのデータ操作するための言語

「SQL」の知識で、システムを安定稼働させましょう!

プログラム工数見積

システムエンジニアは、

「設計したプログラムの作成にどれくらいの時間がかかるか、工数の見積をする」

という仕事があります。

 

プログラミング能力があることで、

この工数見積に正確性が出ます。

 

この工数見積を間違えると、

プログラマーからブーイングがきたり、
※プログラマーでも工数を確認しますが。。

ヘタをすると会社の利益が薄くなってしまいます。

 

経験を積むことでも工数見積はできるようになりますが、

プログラミング能力があることで、始めから正確な工数見積ができるようになります。

設計書作成

定番ですが、プログラミング能力は「設計書の作成」に役立ちます。

以下が一例です。

「システム実現性のある基本設計ができ、事前にリスクを排除できる」

「よりプログラムに近い詳細設計が書ける」

 

お客さんとの打合せで、要望を聞き過ぎてしまって、

「結局実現できない。。」

となってしまうと、多くのやり直し作業が発生してしまいます。

そのリスクを事前に排除することができます。

 

詳細設計でも、プログラマーに寄り添い、

「どのようなロジックで処理を実装するか?」

という設計を書けるようになります。

プログラミング能力がないと、この部分が書けません。

 

良い詳細設計を書けるに越したことはないですが、

もし書けなくても最低限のことはやりましょう!

こちらの記事を参考にしてください。

詳細設計書が書けない?仕様書が書けなくても最低限やるべきこと!

効率の良いテスト

問い合わせ対応と似た部分がありますが、プログラミング能力があることで、

「効率の良いテスト」

ができます。

プログラム視点からテスト内容を考えることで、

「テスト内容Aとテスト内容Bは結局一緒!」

というようなことに気付けるようになり、無駄なテストをすることがなくなります。

 

さらに効率だけではなく、テストの精度もあがります。

プログラミング能力があることで、

普通にテストをしていたら気付けないバグも見つけられるようになります。

 

具体的なテストのやり方はこちらの記事でまとめていますので、参考にしてみてください。

単体テストのやり方!高品質かつ効率の良い単体テストの方法とは?

システムエンジニアにプログラミング能力があることのデメリット!

一流

ここからはデメリットです。

といっても、いっぱいあるわけではありません。

自分でコントロールできる範囲ですので、技に溺れないように気を付けましょう!

2つです!

  • 保守的になりすぎる
  • 何でも自分一人でやろうとしてしまう

保守的になりすぎる

1つ目は、「保守的になりすぎる」です。

 

「お客さんとの打合せ時点で事前にリスクを排除できる」

と先程お話しましたが、裏を返すと、

「リスクを取った決断がしにくくなる」

というデメリットがたまに顔を出します。

 

細かい部分に目が行き届いてしまうせいで、

ありとあらゆるリスクが見えてきてしまいます。

 

そのせいで、「思い切った決断」ができなくなってしまいます。

 

また、視野が広かったり、先の工程のイメージが見えすぎてしまうせいで、

ストレスも溜まりやすいです。

 

こうなってしまった場合は、

「周りのサポートが大事」

です。

 

自分がなってしまったら、背中を押してもらい、

周りにそのような人がいたら、背中を押してあげましょう!

何でも自分一人でやろうとしてしまう

2つ目が、「何でも自分一人でやろうとしてしまう」です。

 

「システムエンジニアにプログラミング能力がある」

それを言い換えると、

「何でもできてしまう」

ということになります。

 

それゆえに、何でも自分でやろうとしてしまい、

その結果、自分の負荷がいっぱいになってしまいます。

 

負荷がいっぱいになると、

なおさら人に仕事を振れなくなります。

仕事を振ること自体が手間だと思ってしまうからです。

 

いっぱいいっぱいになる前に、仕事を振るようにしましょう。

「周りを頼って、自分の能力を伝える」

これが大事です!

まとめ

ここまでの話をまとめます。

まとめ

「システムエンジニアにプログラミング能力は必要」

そのメリットは、

  • 不具合調査
  • 新旧システムデータ移行
  • プログラム工数見積
  • 設計書作成
  • 効率の良いテスト

デメリットは、

  • 保守的になりすぎる
  • 何でも自分一人でやろうとしてしまう

基本的には良いことばかり!

周りに頼ることも大事!

 

わたしはプログラムが得意だったので、

システムエンジニアになった時に、そのメリットを存分に味わうことができました。

 

「プログラムができてなかったら、めちゃくちゃ苦労しただろうな。。」

と思うくらい、プログラミング能力は役立ちました!

 

デメリットであげた2点は、昔のわたしのことです。

1人で何でもできてしまうので、全部自分でやろうとしてしまいます。

 

他人に仕事を振って、時間的に楽になっても、

自分のイメージしたものが出来上がってこないと嫌なんです。

「結局自分がやった方が早いじゃん。。」

ということが何度もありました。

 

でも、それではダメなんです。

これだと周りがレベルアップしていきません。

これは「一流思考」ではありませんね。。

目先のことしか考えない「とにかく手を動かすスタイル」です。

エンジニアとして成長するための考え方!一流へ成長する方法とは?

 

せっかくのプログラミングスキルです。

周りを信じて、そのスキルを最大限に有効活用しましょう!

周りがレベルアップしたら、

新しいスキルをまた身に付けに行きましょう!

 

おすすめ記事

道のり 1

※本記事は、各記事のまとめ記事です。   こんにちは、古賀です!   本記事では、 「プログラミング未経験者がエンジニアとして働き、 年収1000万に到達するまでの道のり」 をご説 ...

成長するエンジニア 2

  エンジニアになったけど、いまいち成長を感じられないなぁ。。 作業スピードも品質も平凡。 この先成長していけるんだろうか。。   こんにちは、古賀です!   エンジニア ...

闘病記 3

※本記事は、各記事のまとめ記事です。   こんにちは、古賀です!   わたしは25歳の時に、悪性リンパ腫になりました。 不安な気持ちになって、たくさん泣きました。 本気で「死ぬかも ...

プログラミングスクール 4

  プログラミングを本格的に勉強して仕事に繋げていきたいけど、 プログラミングスクール多すぎる。。 どういう目線で選べばいいんだ。。   こんにちは、古賀です。   プロ ...

-エンジニア
-, ,

Copyright© Koga Masao's LifeBlog 〜Alive Today〜 , 2020 All Rights Reserved.