システムエンジニアの仕事
・勉強することが苦にならない
・違うカルチャーのいろんな人と付き合える
・失敗しても立ち直りが早い
という方は、システムエンジニアに向いていると思います。
数年間隔で流行りの技術が変わっていく
IT業界は、システム構築方法やプログラム言語などの新しい技術がどんどん出てきます。全てを漏れなく学習する必要はありませんが、自分のスキルが陳腐化しないよう継続的に学習していく姿勢が大切です。
また、近年の傾向として、どのようなシステム開発を担当するとしても、セキュリティの知見が求められるようになってきています。
よその会社の業務を詳しく把握するのは難しい
システム開発をするには、「どんなシステムを作りたいのか」をユーザーさんから聞く必要があります。これを要件定義と呼びますが、これは、想像以上に難しい仕事です。何を作って欲しいのかを正確に説明できるユーザーは、意外と少ないのが難しい理由です。
![](https://hoppara.biz/wp-content/themes/cocoon-master/images/man.png)
何を作って欲しいのか説明できないってどういうことですか?
![](https://hoppara.biz/wp-content/uploads/2020/12/b-man.png)
業務全体を俯瞰的に捉える、現行事務の詳細とその背景、それが知りたいのですが、それを説明できるユーザーの方は、なかなかいません。
システム開発の要件定義工程では、現状の事務を把握し(第1ステップ)、それを抽象化・全体俯瞰して全体業務フロー(AsIsモデル)を作成(第2ステップ)、それから、現状の課題解決策、追加要望を盛り込んだ新業務フロー(Tobeモデル)を作成(第3ステップ)、最後にTobeモデルを元に、システム化範囲・構成などを検討していきます(第4ステップ)。
第1、第2ステップは、ユーザーからのヒアリングを元に資料を作成していきますが、エンドユーザーは基本的に自分の行っている事務しか知りませんので、AsIsモデルを完成させるまでには、たくさんのユーザーに話を聞く必要があります。当然ながら、ユーザーの方は説明の専門家というわけではありませんので、根気強く話を聞く姿勢が大事になります。
計画通りにシステム開発は進まない
システム開発は、「開発プロジェクト」という言い方もします。”プロジェクト”には、有期性・独自性の2つの特徴があります。つまり、期間内に完了しなければならない(期限厳守)、前例がない(未知のリスクが存在)ということです。
私の経験上、何の問題もなく完了できた「開発プロジェクト」はありません。期限厳守で未知のリスクが存在するのですから、当然といえば当然のことです。長くこの仕事を続けると、かなり過酷な状況に置かれることも経験します。更にユーザーからは厳しいクレームをもらうこともあり、精神的に強くないと継続しづらい職業といえます。
まとめ
システム開発の仕事は、かなり大変で難易度は高いです。それでも、IT技術やプログラミングの仕事が好き、ユーザーに満足してもらえるシステムを作りたい、類を見ない大規模開発プロジェクトで活躍したいなど、強いモチベーションがあるのなら、やりがいのある仕事だと思います。