社内SEに必要なスキル

社内SEはプログラミングできない・コード書けない?その実態を探る

社内SEがプログラミングできない・コードが書けないというのは本当でしょうか?社内SEにはプログラミング以外の仕事もありますか?
質問者

上記の疑問に回答します。

  • この記事を書いた人


マサトシ(詳細プロフィールはこちら

新卒で大手SIerに就職|その後、外資系企業や金融機関等、複数企業で社内SEとして計15年以上の経験|アプリ、インフラ、PM、IT戦略策定等幅広い業務を担当|情シスの採用責任者としてキャリア採用の面接経験も多数

 

社内SEがプログラミングやコードを書く事ができないという一見否定的な見方について、真実を解き明かします。

社内SEが直接的なコーディングを行わないケースが多いため、このような見方が存在します。しかし、それは社内SEの役割とスキルの理解を深めることで解決可能な問題です。社内SEが開発者と同じようにコードを書くことは少ないですが、彼らはむしろITとビジネスを結びつける役割を果たし、プロジェクト全体を理解し、それを達成するための最善の手段を見つけ出します。

しかし、一方で、プログラミングスキルがある方が、社内SEの仕事はよりスムーズに進み、より多くの価値を提供できる場合もあります。
本記事では「社内SEがプログラミングやコードを書く事が必須でない理由、できた方が良い状況」を具体的にご紹介します。

補足:プログラミングとコーディング(コードを書く事)の違いについて

プログラミングとコーディングはしばしば同義として使われますが、一部の文脈では微妙な違いがあります。コーディングは具体的にソースコードを書くことを指すのに対して、プログラミングは問題解析、設計、コーディング、テスト、デバッグといった開発全体のプロセスを指します。しかし、これらの言葉は日常的には同じ意味で使われます。

社内SEとSE・プログラマー(プログラムやコード書く人)の違い

社内SE(システムエンジニア)とプログラマー(またはソフトウェア開発者)は、両者ともにIT関連の職種でありながら、役割や責任が大きく異なります。順を追って確認していきましょう。

社内SEとは

社内SEは企業内の情報システム全般を担当し、システムの企画、要件定義、設計、導入、運用、保守までを一貫して手掛けます。

彼らはビジネスのニーズとテクノロジーをつなぐ役割を果たし、ビジネス目標を達成するためのシステムの戦略を立案します。コードを書くこともあるかもしれませんが、彼らの主な役割はビジネスと技術の橋渡しをすることです。

SE・プログラマーとは

SE(システムエンジニア)やプログラマーとは、特定のソフトウェアやアプリケーションの設計から開発、テスト、そして問題の修正(デバッグ)までを行う、技術の専門家です。

これらのプロフェッショナルは、多様なプログラミング言語と開発ツールを活用し、具体的なビジネスやユーザーの課題を解決するためのソフトウェアを生み出します。その作業はコードの一行一行にまで及びます。

例えば、新規のモバイルアプリケーション開発プロジェクトでは、SEやプログラマーはアプリケーションの全機能を設計します。この設計段階では、ユーザーのニーズや利便性を満たすための機能が詳細に練られます。次に、その設計に基づきプログラムコードを書いて機能を実装します。さらに彼らは、開発したソフトウェアが設計通りに機能するかをテストし、不具合やエラーがあればそれを修正(デバッグ)します。これらの過程全体がソフトウェア開発となり、SEやプログラマーがその主導者となります。

このように、SEやプログラマーはソフトウェア開発の全工程を担当する技術の専門家として位置付けられます。

社内SEがプログラミングできない、コードが書けないと言われる理由

結論から申し上げますと、社内SEは役割としてプログラミングやコードを書く事が必須でがないからです。理由を順番に見ていきましょう。

社内SEの一般的な役割はプログラミングやコーディングではないから

社内SEの役割は主にビジネスとITの間のコミュニケーターであり、一般的なプログラマーやソフトウェアエンジニアと異なり、日常的にコードを書くことは主要な業務ではありません。

社内SEの主な業務は、企業のIT戦略の遂行やシステムの運用と管理、新システムの導入、または既存システムの改良になります。このようなタスクは、システム全体の理解と、ビジネス要件を適切なITソリューションに変換する能力を必要とするからです。

たとえば、社内SEが関与するプロジェクトとして、新製品のローンチに伴うITインフラの改修や、社内の情報共有システムの最適化などがあります。このような場合、社内SEは開発チームと協力して、ビジネス目標に最も適合するシステム設計を策定し、その実現に向けたプロジェクトを進行します。これは具体的なコードの作成よりも、全体の設計とプロジェクトの進行管理が中心の業務となります。

これらを考慮すると、社内SEはビジネスとITの間の翻訳者や調整者の役割を果たし、具体的なコーディングを行うことは主な業務ではないと言えます。

プログラミングやコーディングは外部の専門家に委託するから

社内SEはソフトウェア開発に深く関与するものの、その役割は専門的なコードの作成ではなく、プロジェクト全体の統括と外部の専門家とのコミュニケーションに重点が置かれます。

社内SEの役割は、ビジネス要件を理解し、それをITソリューションに変換し、そして外部の専門家と連携してそのソリューションを実現することです。具体的なコーディングは外部のパートナー企業、すなわちベンダーに委託されます。

例として、CRM(Customer Relationship Management)システムの導入を考えてみましょう。社内SEはまず、CRMシステム導入のビジネスニーズを理解し、それを具体的なシステム要件に変換します。そして、最適なベンダーを選定し、システムの設計から実装、テスト、導入までを管理します。ここで、社内SEが直接コードを書くことはほとんどありません。

そのため、社内SEがコーディングを直接行うスキルを持っていなくても問題はありません。重要なのは、ビジネスニーズをITソリューションに変換し、適切なベンダーと連携してそのソリューションを実現することができる能力です。

大企業ではプログラミングやコーディングはシステム子会社が担当するから

大企業において、社内SEの主要なタスクは、システムの運用、管理、そしてIT戦略の策定と実行になります。具体的なプログラミング作業は、開発専門のシステム子会社となることが一般的です。

大企業のIT部門は複雑で、多様な役割を持つグループ会社や部署に細分化されています。それぞれのグループ会社や部署は特定のスキルや知識を必要とし、社内SEはそれらの専門家と協力して、全体のIT戦略を遂行する役割を担います。

例えば、大企業「ABC株式会社」の社内SEは新しいIT戦略の立案、既存のシステムの効率化、またはIT予算の管理等を担当します。
その一方で、具体的なコードの記述やソフトウェア開発は、同じグループ内のシステム専門会社である「ABC情報システム」に所属するシステムエンジニアに委託します。

マサトシ
本当の大規模な企業グループの場合は、この「ABC情報システム」のシステムエンジニアは上流工程を担当し、プログラミングは更に外部のプログラマーの企業に外注していたりします

ですから、大規模な企業における社内SEがプログラミングスキルを持っていない場合でも、それが問題になることは少ないです。彼らの主な役割は、企業のビジネス要求とITの解決策を結びつけ、全社のIT戦略を前進させることにあります。

新システム導入時には別のスキルが求められてるから

社内SEが新しいITシステムの選定や導入を担当する場合、直接的なプログラミングスキルよりも、市場調査、製品比較、ベンダーとの交渉などのビジネスやコミュニケーションスキルが重要となります。

新しいシステムの選定や導入では、システムがビジネスの要求をどう満たすか、また、どのシステムが最もコスト効果的で実用的かを判断する能力が必要です。この過程には、市場動向の理解、各製品間の比較、そして供給業者との交渉といったスキルが求められます。

具体例として、社内SEが新たにERPシステム(経営資源計画システム)を導入する場合を考えてみましょう。この場合、社内SEはどのシステムが会社の業務フローに最も適合し、コスト効果が高く、必要な機能を提供するかを評価します。そして、選択したベンダーとの契約交渉や、システム導入の全体的なプロジェクト管理も行います。

したがって、システムの選定と導入を担当する社内SEの役割では、プログラミングスキルよりも、ビジネススキルやコミュニケーションスキルの方が重要となります。こうしたスキルは、新しいITシステムがビジネスのニーズを適切に満たすことを確認し、その実現を円滑に進めるために必要です。

システム運用保守においても別のスキルが求められているから

社内SEがユーザーサポートを担当する場合、主な任務はユーザーからの問い合わせ対応やトラブルシューティングとなり、この領域ではユーザーと効果的にコミュニケートし問題解決する能力が最も重要となります。

ユーザーの問題をすばやくかつ効果的に解決するためには、技術的知識だけでなく、ユーザーと良好なコミュニケーションを取る能力も必要となります。

社内SEがユーザーサポートを担当する場合、ユーザーからのシステム関連の問い合わせに対応し、問題の特定と適切な解決策の提供を行います。このプロセスでは、問題の本質を理解し解決するための技術的知識と、ユーザーが自身の問題を理解し、提案された解決策を適用できるように説明するためのコミュニケーションスキルが必要となります。

したがって、社内SEがユーザーサポートを担当する場合、プログラミングやコーディングができなくても問題はありません。重要なのはユーザーとのコミュニケーション能力と問題解決スキルです。

社内SEがプログラミングやコーディングスキルを持つと有利な状況

プログラミングやコーディングは必ずしも社内SEの必須スキルではありませんが、特定の状況下ではその能力が求められることもあります。

スタートアップや小規模企業で働く場合

スタートアップや小規模企業では、リソースが限られているため、社内SEがシステム全体の設計から開発、そして運用に至るまでを一手に引き受けることが期待されます。このような状況では、コードを書く能力が非常に価値あるスキルとなります。

具体的な例として、小規模企業の社内SEは、ウェブサイトの開発からデータベースの設計、そしてシステムの保守管理まで、幅広い業務を任されることがあります。また、スタートアップ企業では、「情報システム部」が存在せず、社内SEがITだけでなく総務、経理、場合によっては営業といった複数の役割を兼ねていることもあります。これらの状況では、プログラミングスキルは重要な要素となります。

したがって、スタートアップや小規模企業で働く社内SEにとっては、プログラミングやコーディングができるというスキルは大きなアドバンテージとなり得ます。その能力を持つことで、企業が直面する様々なIT課題に対応し、事業の発展に直接貢献することが可能となります。

組織が内製化を推進している場合

システム開発を社内で行う組織では、社内SEがプログラミングやコーディングをすることが必要です。これは新規システムの開発だけでなく、既存システムの更新や維持にも適用されます。

マサトシ
「内製化」とは企業や組織が自身の内部でシステム開発を行うことを意味します

内製化を選ぶ組織は、自社の特定のビジネスニーズに対応できるように、システム開発の知識を社内に蓄積したいと考えます。そのため、社内SEがプログラミングやコーディングを行うことが一般的に求められます。

例えば、特定の業務を自動化する新システムを社内で開発する場合、社内SEはシステム設計からコーディングまでを担当します。また、既存のシステムを改良したり、新たな機能を追加したりするときも、プログラミングスキルが必要となります。

したがって、システム開発を社内で行う場合、社内SEにはプログラミングやコーディングのスキルが必要となります。

技術的な意思決定が必要になる場合

技術的な判断や決定をする役割を担う社内SEにとっては、プログラミングスキルを持つことが強力なアドバンテージになります。その理由は、どの技術スタックを選択すべきか、システムをどのように設計するかといった意思決定を、より具体的で効果的に行えるからです。

具体的な例を挙げると、新しいシステム導入時には、どのプログラミング言語やフレームワークを選択するかを決定することが社内SEの役割となることがあります。各技術のメリットとデメリットを理解し、それを適切に評価する能力があれば、企業のニーズに最も適合する選択を自分自身で行うことが可能になります。

したがって、技術的な意思決定を任される社内SEにとっては、プログラミングスキルは重要な利点となります。この能力を持つことで、企業のIT戦略においてより適切な選択を行い、効率的なシステムの構築や運用を可能にすることができます。

ベンダーとのコミュニケーションの際に有利になる場合

外部の開発者やベンダーとの対話において、プログラミング知識を有することはコミュニケーションをより具体的で効果的にし、またベンダーから提供されるソリューションの質を適切に評価するために役立ちます。

ベンダーとの対話では、技術的なバックグラウンドを理解していることで、自社の要求を具体的に伝え、提案されたソリューションを正確に評価することが可能となる場合があります。

外部ベンダーが提供するAPIに問題があった場合、プログラミングの知識を持つことで、具体的なエラーを特定し、その問題をベンダーに対して明確に伝えることが可能になります。

このような場合、外部ベンダーとの効果的なコミュニケーションを図るためにも、またベンダーの提供するソリューションの品質を適切に評価するためにも、社内SEがプログラミングスキルを持つことは非常に有用になります。

トラブルシューティングの場合

システムが問題を起こしたとき、プログラミングスキルを有することで、問題の原因を追求し、適切な解決策を策定する能力が強化されます。また、外部の開発者と協力して問題解決を行う際にも、プログラミングの知識が役立ちます。

システムトラブルの解決は、プログラムのバグや設定エラーの特定から始まることが多いです。プログラミングの理解があると、問題解決のプロセスがスムーズに進行し、自分で問題を修正する能力や他の開発者と効果的にコミュニケーションを取る能力も向上します。

たとえば、データベースのパフォーマンスに問題が発生した場合、SQLに精通している社内SEは問題を特定し、適切なインデックスを作成したり調整したりすることで問題を解決することができます。

したがって、システムのトラブルシューティングにおいて、プログラミングスキルを持つことは大きな価値を提供します。この能力により、システム問題の迅速かつ効率的な解決が可能となり、業務の遅滞を防ぎます。

まとめ

「社内SEとしてプログラミングスキルが必要か?」という疑問は、あなたが働く組織の規模や役割に大いに左右されます。

大規模な企業では、IT部門がさまざまなサブセクションに細分化されており、それぞれが特化した役割を持っています。この場合、社内SEはシステムの運用と管理、IT戦略の立案と実行を主に担当し、具体的なコーディングは専門の開発チームや専門の子会社が行います。

小規模企業では、社内SEがさまざまなIT関連の業務を担当することが多く、その中にはプログラミングも含まれます。これは、資源が限られているため、一人ひとりが多角的に活躍する必要があるからです。たとえば、小規模なシステムの修正や新機能の追加は、社内SE自身が手がけることがあります。

しかし、たとえコーディングが主な業務でなくても、プログラミングの基本的な理解は有益です。それは、開発者と効果的にコミュニケートし、システムの問題を理解し、解決策を提案するためです。また、社内SEがコードを書けると、自身の職務遂行能力を向上させ、キャリアの選択肢を広げることが可能になります。小規模な改修や機能追加を自ら行うことで、時間とコストを節約し、企業全体の生産性を向上させることも可能です。

したがって、プログラミングスキルを身につけることは社内SEにとって有益であり、それが直接的な業務要件でなくても、間接的には価値を持つことが確認できます。しかし、それが必須であるかどうかは、個々の職場環境と役割によるところが大きいです。

  • この記事を書いた人
  • 最新記事

マサトシ

新卒で大手SIerに就職|その後、外資系企業や金融機関等、複数企業で社内SEとして計15年以上の経験|アプリ、インフラ、PM、IT戦略策定等幅広い業務を担当|情シスの採用責任者としてキャリア採用の面接経験も多数

-社内SEに必要なスキル