日進一歩~考え方を変えて人生を変える~

日進一歩~考え方を変えて人生を変える~

考え方を変えて豊かな人生を目指すブログ。具体的には、自己啓発と資産運用を中心に紹介します。

システムエンジニアでもプログラミングは必要?

f:id:solfisbfprj:20200712011512j:plain

システムエンジニアとプログラミング

 システムエンジニアとは、特定の作業を指すのではなく、企画から開発、運用・保守といったシステム構築・運用に関わる全般的な職種を表している言葉です。

システムエンジニアについては以下の記事でも書いています。

 

solfisbfprj.hatenablog.com

 

システムエンジニアと言っても、必ずプログラミングをする訳ではありません。
プロジェクト規模や企業にもよりますが、要件定義のような上流工程やプロジェクトの管理(プロジェクト管理者)などではプログラミングをしません。
大企業だとプログラミングは外部(国内企業や海外企業など)に委託してしまいます。

じゃあ上流工程や管理をする場合はプログラミングはできなくても大丈夫か・・・

半分正解、半分間違いです!

私の考えではありますが、プログラミングをしない立場、役割である場合、プログラムを書けなくてもプログラミングの知識は必要です。

もちろん、プログラミングが出来る方が良いですが、立場、役割を考えた場合、プログラマーに求められる能力とは違うということです。

具体例をあげて説明していきます。

プログラミングをしない立場でも知識が必要となる例

要件定義の例

要件定義とは、顧客と一緒にシステムで実現することを詰める作業です。
この先の開発の目的・内容・方向性を決める工程でとても大切です。

そんなの「営業の仕事じゃないの?」と思うかもしれませんが、企業によってはシステムエンジニアが顧客と直接話をして仕事の話をします。

さて、要件定義の際は「どんなシステム/追加機能を構築するか」などをメインに議論しますが、時には技術的なことを顧客から聞かれます。なぜなら、顧客からしたらシステムのプロフェッショナルと話をしていると認識しているからです。

よくあるのが、要件定義の場にプログラマーなどの技術屋さんを連れていくことがありますが、やはり自分自身も知っている方が良いです。
システムの深い話になるとついていけなくなり、その内、顧客から「こいつ役に立たないな」なんて思われてしまうと、顧客から信頼されなくなります。そして、困難な場面で顧客から協力を得られなくなったりして、仕事をスムーズに進められなくなります。

人任せにして何もわかっていないと最終的には自分の首を絞めますからね。やはり周囲の信頼を勝ち取るためには知識は必要です

プロジェクト管理の例

開発プロジェクトが始まると、開発計画を立てたり、進捗を確認する現場監督が必要になります。
開発規模が大きくなると、開発グループを分けて、グループごとに管理者を置いたりします。(開発規模が小さいと一人で開発を指揮・管理したりします)

この管理者が、プログラミングの知識を持っていないと何が起こるでしょうか?

まず、リスク(このまま進むと悪いことが起こる可能性がある状態)に気づきにくくなります。
リスクは、もちろん事前に洗い出したて手を打つのですが、プロジェクトが進行する中で常に発生したり消滅したりします。
リスクは早期に気づいた方が手を打ちやすいため、このリスクを敏感に感じとれるかが非常に重要です。
ところが、プログラミングの知識が無いと現場の状況や苦労が正確に理解できずリスクに気づくのが遅れます。

他にも、課題や問題が見つかった時に、知識が無いゆえに現場と一緒に考えることができず、
「何とかして明日までにやってくれ!」
「いい感じに解決してくれ」
など、具体性がなく根性論のような指示しかできなかったりします。確実に現場から嫌われます(笑)

 

知識が無いと必ずこうなるわけではありませんが、現場からしたら具体的な話をして一緒に考えてほしいという思いは少なからずあります。これをしてくれる管理者は信頼され、困ったときは現場が率先して助けてくれます。
現場と敵対するのではなく、このようなプロジェクトを目指すべきと思います。

 

まとめ:システムエンジニアでもプログラミングは必要?

この記事では、実際にプログラミングをしないシステムエンジニアでもプログラムの知識が必要となるシーンがあることを説明しました。
無いよりあった方が良いのは当然ですが、上記は私の実体験でもあり、若い時にかなり苦労しました。
ただ、現在は抑えるべきポイントは抑えているつもりなので、当時よりは現場と良好な関係を築き、スムーズに仕事を進められるようになりました。

大切なのは、自分の立場や役割を理解してどのような知識・スキルが必要なのかを意識することです。

この目的意識の明確化についてはまた別の記事にしたいと思います。