【SE歴10年の筆者が考える】システムエンジニアとは?プログラマとの違いを踏まえた本質を紹介!

アイキャッチ システムエンジニア

皆さんが知っているシステムエンジニア像、それって少し違うかも?

考える人

おっすー。ガッチョです。
今回はシステムエンジニア像(システムエンジニアの本質)についてです。

システムエンジニアは今も人気な職業の一つなため、就職・転職してみたいと思う方も多いようですが、実際にどういう仕事をしている人なのかピンとこない方もいますよね。
私もシステムエンジニアとして働く道を選んだときは、パソコンとにらめっこしながらひたすらキーボードを打ち込んでいる人、という大雑把なイメージしかありませんでした。

しかし、10年以上システムエンジニアとして働いてきた中で振り返ってみると、システムエンジニアが本当にやるべきことは「顧客が抱える課題を解決する人」ということでした。
そこで、この記事ではそのシステムエンジニアの本質について、私なりに気付いた点を解説します。
これを読めば、皆さんも求められているシステムエンジニアの解像度が上がること間違いなしです。

システムエンジニアは「顧客が抱える課題を解決する人」

握手する人

いきなり結論からになりますが、システムエンジニアは、「顧客が抱える課題を解決する人」です。
いつの時代も絶えることのない悩み。それを解決できる人は、かっこいいですね。

では、どうして読んで字のごとく「システム」を「開発する人(エンジニア)」ではないのでしょうか。
答えは、「システムを開発する」だけであればプログラマ(ソフトウェアエンジニア)にもできるからです。

プログラマ(ソフトウェアエンジニア):
プログラムすることにより求められている処理や機能を開発し、それらが正常に動作するかをテストをする人。

例えば、とある顧客のECサイトのシステムを開発するとします。
その際、プログラマとシステムエンジニアに求められる仕事は以下のような違いがあります。

  • プログラマ:システムエンジニアがつくった設計書を元に、「IDとパスワードを入力して認証後、ログインできる」「商品をカートに入れること購入でき、クレジットカードで決済する」等の処理や機能を開発し、テストを行う。
  • システムエンジニア:顧客と会話をしながら「見やすさ・使いやすさが第一のシステムにしてほしい」「多少レスポンスが悪くてもセキュリティは万全にしてほしい」といった抱えている課題を洗い出し、設計への落とし込みを行う。その後、プログラマがつくった処理や機能で当初の課題が解決できているかを最終的に確認する。

どうでしょう?考えていたより、やるべき範囲が違うことに気付くでしょうか。
まとめると、違いは以下のとおりになります。

  • プログラマ:処理や機能といったシステムの中核を開発する人
  • システムエンジニア:システムの開発に必要な情報を整理&設計を行い、出来上がったシステムで顧客が抱える課題が解決されるかを確認する人

実際問題として、これらを厳密に線引きをすることは難しいですが、システムエンジニアの本質が「顧客が抱える課題を解決する人」であることに変わりはありません。

課題を解決するためには、とにかくコミュニケーション

コミュニケーション

では、実際の現場ではプログラマとの違いをどう意識すればよいでしょうか。
とは言っても、ここで重要なのはプログラマとの違いを明確にすることではなく、システムエンジニアとして何をしなければならないか、になります。

繰り返しになりますが、システムエンジニアは「顧客が抱える課題を解決する人」です。
そのためには、顧客とのコミュニケーションが最重要であると、私は考えています。

よりわかりやすくするため、相手を顧客ではなく恋人に置き換えてみましょう。
恋人の悩みを解決するために、皆さんはまずは何をするでしょうか。
そうですよね、最初はその悩みを親身になって聞いてあげますよね?

  • いつ、どこで、何があったのか?
  • それに対してどうしようとしているのか?
  • 現時点では、どんな選択肢が取れそうか?
  • よし、それなら自分に任せて! or 解決に向けて一緒に考えよう!

こういった流れで話が進むかもしれません。そして、これは相手が恋人でなくても、親や友人であっても同じです。
顧客は敵ではありません。ビジネスパートナーとして伴走していく相手です。

しかしながら、システムエンジニアとは名ばかりの対応をする人が多いのも事実です。
顧客とのコミュニケーションをまともに取ろうともせず、プロである私たちが提示するあるべきシステム像は一蹴され、顔色を伺うだけで相手の言いなりで仕事を引き受け、挙句の果てにチーム全体が疲弊しきってプロジェクトが破綻する・・・

こういった結果にならないためにも、まずは顧客を知り、信頼関係を築き、お互いがwin-winの関係になる、これがシステムエンジニアがやらなければならないことです。

ガッチョ
ガッチョ

プロジェクト破綻の原因がこの悪しき習慣であった、という事態だけは断ち切りたい、そう思ったのがブログを始めたきっかけでもあります。

皆さんはこういう場面に遭遇することはないでしょうか?

  • 上司・先輩から言われたことだから、それが正しい
  • 顧客がやらなくていいと言ったから、やらない

もちろんこの判断が最適な結果となることもありますが、その前に一度立ち止まって考えてみてください。

  • この判断は本当に顧客の課題解決に繋がるのか?
  • 自分にはまだできることが残っていないか?

人間にはホメオスタシス(恒常性)があり、変化を嫌います。
歳を重ねて社会の荒波に揉まれると、思考停止になりがちです。それが楽だからです。
ぜひ、この疑う気持ちを忘れないようにしてほしいです。

皆さんには、「顧客が抱える課題を解決する」という本質を念頭に仕事に臨んでいただけると、本当の意味でのシステムエンジニアになれるはずです。

まとめ

システムエンジニアの本質は、顧客が抱える課題を解決することです。プログラミングをしてシステムを開発するだけが仕事の本質ではありません。

また、顧客との対話を拒否し、ただ言いなりになっているだけではシステムエンジニアの仕事を全うしているとは言えません。
コミュニケーションの力で歩み寄ることが、システムエンジニアとしての第一歩です。

コメント

タイトルとURLをコピーしました