みなさんこんにちは。文系女子SEのほりごたつ(@horigotatsuSE)です。
と疑問に思ったりしませんか?
私自身SIerに勤務しているSEですが、
最近はほとんどプログラミングはしていません。
というのも、SEにはプログラミングだけでなく、
開発全体として遂行することが求められるからです。
今回は、SEの仕事内容や経験をもとにお伝えしていきます。
この記事の信頼性
私は文系未経験ながらSEになり、
現在では開発責任者も任されています。
今回はSEの1人として、プログラミング能力の重要性を現場目線でお伝えできればと思います。
SEにプログラミング能力が不要と思われてしまう理由
まず、SEにプログラミング能力が不要と思われてしまう理由についてお伝えします。
と純粋にイメージで思っている人もいると思いますが、
実はSEは年次が上がるごとにプログラミングをしなくなってきます。
というのも、SEの仕事の範囲はこのオレンジ色の部分だからです。
この実態を知っている方には
と言われたりもします。
ですが、実際にSEにはプログラミング能力は必要です。
今回は、よく言われる以下2点に反論する形で、プログラミング能力の重要性を伝えたいと思います。
SEにプログラミング能力不要と思われる理由
・主たる仕事が開発案件の遂行
→ 上流だけやってると思われる
・プログラマーの存在
→ 設計書書くところまでやれば、あとはプログラマーにお任せでいいと思われる
SEにプログラミング能力は不要と思われる理由1.上流だけやってると思われる
1つ目が、
というもの。
先ほどの図をもう一度ご覧ください。
この図で左上部分を「上流工程」、右下へ行くごとに「下流工程」と呼びます。
プログラマーの主たる仕事は「下流工程」にあるので、
SEの仕事は基本的に上流工程、だからそもそもプログラミングやらないでしょ、と思う人がいるわけですね。
ですが実際は、
最初の1~3年くらいはプログラミングもやるほか、
それ以降も「後輩のプログラムを確認」する仕事は発生します。
後輩の組んだプログラムにバグがないかレビューする人が
プログラミング能力なくて大丈夫なはずがありませんよね。
SEも最初の1~3年は業務内容もプログラミング漬け。年次が上がってプログラミング自体が主たる仕事でなくなっても、後輩のプログラムをレビューする仕事は発生する。
よってプログラミング能力は必要。
SEにプログラミング能力は不要と思われる理由2.プログラマーにぶん投げだと思われる
2つ目が、
というもの。
プログラマーが存在している以上は、プログラミングはその人にお任せでいいので
プログラミング能力は必要ないんじゃないか、というものですね。
▼SEとプログラマーの違いはこちらの記事もどうぞ
SE(システムエンジニア)とプログラマーは何が違うの?現役SEが解説
私も実際に、協力会社と呼ばれる他者さんにプログラミングをお願いすることもあります。
ですが、あくまでも案件として責任を持つのはSEである自分。
たとえプログラミングをお任せできたとしても、
その内容に責任を持つのは自分なので、レビューは欠かせません。
プログラマーさんの組んだプログラムにバグがないかレビューする人が
プログラミング能力なくて大丈夫なはずがありませんよね。
他者のプログラマーさんにプログらミングをお任せできたとしても、そのプログラムをレビューする仕事は発生する。
よってプログラミング能力は必要。
SEにプログラミング能力が必要だと感じた経験
さて、ここまでSEにプログラミング能力が必要だという理由を説明してきましたが、
ここで私自身がプログラミング能力の重要性を実感した経験をお伝えしたいと思います。
本記事3回目のこちらの図をご覧ください。
図の右上の「提案」もSEのお仕事です。
「こういう理由でシステムの修正や開発が必要だと思う!」と提案し、案件をもらうのも仕事のうちです。
この提案の仕事で、「性能改善」を提案したことがありました。
なんでもシステム化の世の中。
システムの速度が遅いのは使う人にとっては困ることも増えてきました。
しかしこの速度を改善しようという提案では、
「どれくらい早くなるのか」を具体的な数字で示す必要があります。
では具体的な数字で示すためにはどうするのか。
以下に私が提案に向けてやったことを挙げますね。
提案に向けてやったこと
・現行のプログラムの分析
→ ループ文を分析し、100万件処理するとしたら何回ループされるのか計算
・修正後プログラムの検討
→ どう修正するとどれくらいループが削減されるのか、修正リスクも加味して3案程度検討
まずは現行プログラムの分析。
実際にプログラムが100万件の大量件数を処理したら、プログラムの行数ではどれくらいが実行されるのか。
どれくらいループ文が実行されるのか、ムダな個所はないのか。
等を分析します。
そして修正後プログラムの検討。
どう修正するとどれくらい実行行数が減るのか。その結果どれくらい時間短縮されるのかを検討します。
時には仮でプログラムを作ってみたり・・・
提案1つとっても、プログラムに関する知識や
プログラミング能力が必要なことが分かると思います。
性能向上の提案などでは、プログラムの分析や修正イメージ作成が必要なのでプログラミング能力が必要
SEもプログラミング能力が必要
いかがだったでしょうか。
SEの元々のイメージでプログラミング能力が必要だと思っていた人も、
SEとプログラマーの違いを知ってプログラミング能力が要らないのでは、と思っていた人も
今回の話でSEにプログラミング能力が必要だということが分かったのではないでしょうか。
SEになりたい人も、プログラマーになりたい人も、
きちんとプログラミングを勉強して技術力をつけることが重要ということですね。
コチラの記事もオススメ!
プロジェクトマネージャー(PM)とは?開発責任者の私がどうやったらなれるか考えてみた
COBOL(コボル)の需要はない?現役COBOL開発者がCOBOL需要を解説
SE(システムエンジニア)は女性でもやっていけるの?現役女性SEのホンネ
SE(システムエンジニア)のキャリアパスとは?現役プロジェクトリーダが描く今後のキャリアプラン