プログラマーとシステムエンジニアの求められるスキルの違い

IT業界
スポンサーリンク

プログラマとシステムエンジニアは根本的に業務が異なります。

IT業界人はみんな知っている!PGとSEの仕事の違いについて
IT業界内で技術職と言われている職には大きく2つあります。 プログラマーとシステムエンジニア。 この職業の違いを理解しておかないとどっち付かずの人間になっていて大人になってから苦労するだけでなく、お互いにリスペクト出来ない器の狭...

業務が異なるので当然キャリアパスも違ってくるのですが、全く分離されている訳ではなくコーダーから繋がっています。

PGとSEのキャリアパスの違いをFF的に解説する
突然ですが、プログラマーとシステムエンジニアのキャリアパスの違いって知っていますか?これからIT業界に挑戦する人は是非とも知っておいてほしい事ですね。 そもそもプログラマーとシステムエンジニアは役割が違います。 それについてはこ...

システムエンジニアはプログラマーを経験していた方が良いです。

業務内容が異なるという事は求められるスキルが違ってくる訳で、自分のキャリアパスを描く上で必要なスキルを知っておく必要があります。

本記事ではPGとSEで求められるスキルについて紹介します。

スポンサーリンク

プログラマに求められるスキルとは

プログラマに求められる事とは、ズバリ仕様書通りにシステムを動作させる事です!

この求められている事を極めていく事がプログラマに求められるスキルになります。

極めていく方向性はQCDで考えるとわかりやすいと思います。

  • Q=品質
  • C=コスト
  • D=納期

「より良く」「より安く」「より早く」

この3点の方向にプログラム能力を高めていく事が大切になります。

システム設計スキル

プログラマーとして高みを目指すのならシステム設計スキルは必須です。

システム設計はシステム全体の良し悪しを決定付けてしまう重要な要素です。

チーム全体の生産性、品質、保守性、拡張性・・・

これらシステムの将来を決めてしまうくらい重要です。

プログラマーとして高みに行けば行くほど、チーム全体、システム全体の行く末を決めてしまう程に重要な役割を担います。

アルゴリズム化スキル

アルゴリズム化スキルと言葉は多分無いと思います。勝手につくりました。

複雑な仕組みやルールも瞬時にアルゴリズム化出来る能力はプログラマに求められるスキルです。

ユーザーやSEは仕様書に記載されている内容を全て形にしてもらえると信じています。プログラマからすると時には無理難題が記載されている事があります。その期待にどれだけ応えられるのか?もプログラマーとして求められるスキルの一つと言えます。

みんなが無理と言うものをパパパッと仕上げてしまうプログラマーってカッコいいですよね。

とはいえ、なんでも「はいはい」と言うのはダメです。無理なら無理と言うスキルも求められます。

デバッグスキル

プログラマーにとってデバッグのスキルは必要不可欠です。

活躍しているプログラマーはみんな正しいデバッグのやり方を知っている
デバッグ作業というのはプログラマにとって永遠になくならない作業ですよね。 そりゃ、もちろん最初からバグのないプログラムが書ければベストです。でも現実としてそれは無理です。必ずバグは混入します。 なのでデバッグ作業というのは絶対的...

その重要性はコチラでも記載していますが、本当にデバッグ出来ないプログラマーに出会います。

デバッグを知らないと言う事はアルゴリズムが作れないと同義です。

プログラマーの仕事はコードを書いて終了ではありません。当然ミスもありますしデバッグが付いて回ります。そして、自分の書いたコードだけではなく他人が書いたコードのデバッグをする必要も出てきます。

直しているつもりが被害を拡大させる。それはチーム全体の効率も落ちますし、利用者に迷惑をかけています。プログラミング能力を磨きたければデバッグ能力を身に着けるのが近道です。

言語スキル

プログラミングをする上で言語はもちろん必須です。

言語仕様を知った上でその機能をフルで活用する事が重要です。知っていると知らないでは全然生産性が変わってきます。

ダメなプログラマーは何でもかんでも自分で作ろうとするプログラマーです。賢いプログラマーは機能をフル活用してコードの量を減らします。コード量が減るという事が品質が上がるのと同義です。

こういった品質、生産性の観点からも言語に精通している事を求められています。

システムエンジニア

システムエンジニアに求められる事とは、ズバリ利用者の望むシステムを利用者に届ける事です!

システムエンジニアは顧客の要望をシステム化する事が役割となります。要するにシステムの仕様を策定し、利用者に届ける事がシステムエンジニアの仕事になります。

予算の中でどこまで利用者を満足させる事が出来るか?どこまで利用者の望むシステムにする事が出来るか?を極めていく事がシステムエンジニアの求められるスキルとなります。

スケジュール管理スキル

プロジェクトは限られた予算の中で進行していきます。プロジェクトを進めるにあたり様々なリソースに予算を割り当てていく事になりますが、システム開発において一番大きな割合を占めるのは人的リソースですよね。

その最大に予算が割り当てられる事になる人的資源をどれだけ効率よく最大化した作業をしてもらうか?が一つ大きなスキルになってきます。

スケジュールをしっかりと管理出来るスキルが必要です。

要件定義スキル

利用者の望むものを届けるために、ちゃんとヒアリング出来るスキルは必須です。

ヒアリング能力はお客様の言っている事を「聞く」ではなく「聴く」能力です。

利用者が言っている事を理解して、本質を見つける能力が求められます。

利用者の望む真の姿はは利用者が気が付いていない事がほとんどです。

「こんなのが欲しい!」と言ってもよーーーーく話を聴くうちに全く違うものが必要だったケースがほとんどです。その本質を探れるのスキルが求められます。

提案スキル

伝える能力です。

先ほども言いましたが利用者が欲しいと思っているものの真の姿に利用者自身が気が付いていない事がほとんどです。

その本質を探し当てるまでは出来たとしても、なぜそうなのか?をシッカリと伝える事が出来なければ何の意味もありません。

しっかりと論理立って、かつ熱意のある提案と言うものが必要になってきます。

プロジェクトマネージメントスキル

利用者にシステムを届ける。それはプロジェクトを継続的に成功させる事ができてこそです。「継続的に」がポイントとなります。やはり、利用者にとって一番うれしい事は利用しているシステムが継続的に成長していく、タイムリーに望むものがリリースされる事です。

プロジェクトを継続的にするためには成功し続ける事が重要な要素となります。成功し続けるためには当然プロジェクト管理能力が必要となってきます。

プロジェクト管理能力が低いとこんなトラブルを起こしてしまいます。

【知らないと損をするSEの失敗談】作業が明確になっていない請負はしない
失敗から学ぶことは大いにあります。 私もIT業界に長きにわたり身を置き、様々な失敗をしてきました。 失敗の数だけ成長もしてきたと思います。 その数々の失敗を公開する事で他の皆さんの何か助けになれば幸いと思って、「SE失敗物...

共通

プログラマーとシステムエンジニアは業務が異り、キャリアパスも異なります。しかし、非常に似通った部分も多く共通的なスキルもあります。

お互いの仕事の境界線にあるものだったりするものです。この共通するスキルがあるからこそ、システムエンジニアはプログラマから実践しておくと良いに繋がります。

機能設計スキル

機能設計はシステムエンジニアだけが必要なスキルと言う訳ではありません。

当然、プログラマが勝手に機能設計をする訳にはいきませんが、実際に動作する物を一番最初に振れるのはプログラマです。動作検証をしながら「ん?」と言った疑問を感じて、システムエンジニアに報告する事も良いシステムを作る為には必要なスキルになります。

工数見積もりスキル

工数の見積はシステムエンジニア、プログラマー当然の事ながら当たり前に必要なスキルになります。

作業にどれくらい日数がかかるのかを見積もる能力は必須です。

テスト設計スキル

テスト設計も当然の事ながらプログラマー、システムエンジニア問わず必要なスキルとなります。

担当する工程でのテスト設計スキルが求められますが、品質担保の観点からテストに対してのスキル、知識は必要となります。

まとめ

どうですか?

こうしてみると道を極める為に数々のスキルを身に着け磨く必要がある事がわかります。

ただ一見複雑で難しく感じますが、役割と求められる事をしっかりと把握しておけば大丈夫です。

最後までお付き合い頂きありがとうございました。

よろしければはてなブックマークやいいね!などお願いします。

 

また、ブログランキングに参加していますので、お帰りの際にポチッとして頂けると嬉しいです。

ブログランキング・にほんブログ村へ
にほんブログ村

コメント