見出し画像

3年間で感じた、システムエンジニアという仕事の面白いところ

こんにちは!福岡・佐賀でシステムエンジニア(SE)とイラストレーターをしている、Hitomiです。

九州大学法学部を卒業してからSEになって丸3年が経ち、4年目に突入します。
技術力不足など悩むことも多かったですが、幸せなことに、最近仕事が面白いと思うことが増えました。
それを書き残しておきたい、SEの仕事をやったことがない方に発信したい、という気持ちが膨らんで、久しぶりにnoteを開いた次第です。
私なりに面白いと感じるところ3つを取り上げ、語らせていただきます!

前提として、私が勤めているのはSlerと呼ばれる種類の会社です。
ソフトウェア開発を行う会社は、Web系と呼ばれる自社サービスを開発する会社と、Slerと呼ばれる他社からシステム設計~運用までを受注して開発を行う会社に分類されることがあります。
Slerを経験した立場のシステムエンジニアとして、こんな側面があるんだなぁと感じていただけたら嬉しいです。


面白いところ① 企業経営に近い目線でものづくりができる👀

なんとなくシステム開発を発注するということは絶対になく、現場のこの課題を解決したいから、この運用ルールを徹底したいから、この監査を楽にしたいから、といった理由がありますよね。
私はお客さんの担当者は未経験で、Web会議に参加したり設計をしたりすることが多いのですが、システムは企業の業務運用ルールと密接に関連しているため、設計の過程で企業経営の視点が求められることがあります。
(もしかしたらSler特有の部分かもしれません!)

ちょっとした仕様や、画面に表示するメッセージ1つで企業の業務に大きな影響を与えるので、陰から企業経営をサポートしていると感じて面白いです。
例えば、確認メッセージを表示するだけでその処理を行えるようにするのか、エラーとして先に進めないようにするのか、といった設計の違いが、企業の運用ルールに直結します。
お客さんの要望を聞くだけでなく、時にシステム全体や法規制を見渡して提案することもSEの力の見せどころです。

また、設計を通して企業ごとの経営方針の違いを見られるところも面白いです。
私は医薬業界の在庫管理を中心としたパッケージシステムの開発チームに所属しており、企業ごとに要望をもらってカスタマイズを行っています。
本部が店舗を統制して店舗の不正を減らしたい企業、逆に緩く管理して店舗に現場で判断してもらいたい企業など、方針の違いを楽しみながら(?)開発を行っています。
システム開発を発注できる企業は、余力のある大手企業が多いです。
そのような企業の経営に近い目線でものづくりをできることは、SEの醍醐味ではないかと思います。


面白いところ② みんな違ってみんないい🧑🏻‍🤝‍🧑🏽(何かしらの自分の強みを活かしやすい)

SEというと、パソコンに向かって小難しい英数字を扱うプログラミング、のイメージが強いと思います。
お客さんと要件定義を行うので、コミュニケーション能力がSEに求められる、という情報を目にする方もいらっしゃるでしょうか。

3年間経験して、SEの仕事に活かせる能力が非常に多岐にわたるということを感じます。
私が知っているだけで、一括りにSlerのSEといっても以下のようなポジションがあります。
※実際はポジションの正式名称があったりしますが、分かりづらいので具体的に記載しました。

  • お客さんの要望を聞き、システムの要件を定義する(いわゆるITコンサルタント)

  • 開発工数の見積、スケジューリングを行う

  • システムの設計書を書く

  • お客さんの目に見える画面のプログラムを書く(いわゆるフロントエンドのプログラマ)

  • お客さんの目に見えない部分のプログラムを書く(いわゆるバックエンドのプログラマ)

  • 設計書やプログラムを見て、お客さんにとって使いやすいか、整合性がとれているか、パフォーマンス面に問題がないかなどの確認を行う

  • ネットワークやサーバの設定を行う(いわゆるインフラエンジニア)

  • 経験に基づいてテストを作成し、システムの品質を担保する

  • お客さん(企業のシステム部であることが多い)が社内で承認をもらえる、分かりやすい資料や検証エビデンスを作成する

  • 大量データを扱うシステムの速度改善を行う

  • お客さんから来た問い合わせについてシステムを調査し、お客さん・開発チームにとって最善の解決策を出す

  • 開発チームの意見を聞き、マネジメントを行う(いわゆるマネージャー)

  • 外部の協力会社に仕事を依頼し、当事者意識を持たせながら一緒に仕事をする

  • その技術が得意な人を見つけ、担当してもらえないか交渉する

  • プログラムが一貫性を保てるよう、運用ルールを定めて管理を行う

  • セキュリティ問題が発生しないように、本番環境の情報管理を行う

  • 開発・リリースの自動化など、開発チームの開発効率化を行う

  • 新人やプロジェクト参加者に対して教育を行う

  • 時々発生する、絶対に間違えられない単純作業を行う

上記様々な役割があり、いくつか兼任することが多いです。
プログラミングの技術力の面でも、どの部品を作るかで多岐に渡っており、更に文章力、社内調整力、コーチング、話しやすい人柄、情報管理、真面目さや細かさ、デザイン思考など、様々な力を活かすことができます。
(コンピュータサイエンスに関する知識は最低限必要となりますが…!)

私に関して言うと、開発も行いますが、どちらかというと社内での調整やチームのコミュニケーションのサポート、お客さんへの提案内容を考える部分で力を発揮できているように思います。
技術力に特化しているメンバーは調整やチームメンバーへの気配りが苦手なこともあるので、一定数需要があるように思いました。(美術部で部長をしたときの感覚に少し似ています!)
一方でテストや単純作業は苦手なので、得意な方にお願いしたり確認してもらったり、ツールに頼ったりしてカバーをしています。
一般に知られているイメージよりも、「みんな違ってみんないい」仕事なのではないでしょうか。


面白いところ③ プログラミングは嘘をつかない🤝

「筋肉は嘘をつかない」に負けない勢いで、私は「プログラミングは嘘をつかない」を推します!

コンピュータはすべての出来事に理由があり、正しく扱うと正しく動くし、間違った使い方をすると間違った動きをします。
プログラミング言語はコンピュータの言語なので、英語などの言語学習と同様に、やった分使えるようになります。
自分でシステムのバグを直したり、速度改善をしたり、自分で作ったbotプログラムが動いた時の感動はとても大きく、一つ一つが成功体験になっています。

もちろん、1つのバグにずっと引っかかってつらくなることもありますが・・それは何か原因があるのです。
SEの間ではエラーが出ると「怒られる」という表現をよく使います。
システムは魔法の箱ではないので、気が付かないうちにアンチパターンと呼ばれる想定外のプログラムを書いていたり、ネットワークの設定が間違っていたり、何かしら理由があります。
理由があると分かっているから、ゲーム感覚で面白いし、解決した時の喜びはひとしおです!

今はスーパーエンジニア達が無償で公開してくれているオープンソースや、有志エンジニアのサイトや動画など、お金をかけずに学べるものであふれています。
興味がある方は、趣味として始めてみてはいかがでしょうか。


これからも自分の強みに関する経験・知識を強化したり、新しい技術にチャレンジしたりして、SEとして成長していきたいです。
質問やご意見、お寄せいただけるととても嬉しいです。
最後までお読みいただき、ありがとうございました!




この記事が参加している募集

多様性を考える

この記事が気に入ったらサポートをしてみませんか?