システムエンジニア

実体験から語るシステムエンジニアが大変な理由と原因

システムエンジニアは大変って聞くけど、何が大変なの?どうして残業が多いの?という疑問に対して、僕の実体験からお話したいと思います。

僕は現在システムエンジニア5年生で、大体1年ごとにプロジェクトを移動しています。炎上するプロジェクトの条件には共通点があり、これで間違いないと思います。

残業や休日出勤が多くなることをプロジェクトが炎上すると表現しますw

システムエンジニアが大変な理由と原因

システムエンジニアが大変な理由はずばり、労働時間です。

以下が労働時間が過酷になる流れです。

納期・期日が迫る -> このままじゃ終わらない -> 残業する -> 休日も出勤する

終わらなくなる原因は次の3つ

  • タスク管理不足
  • プロジェクト体制不備
  • 技術力不足

タスク管理不足

タスクが細分化されていない

開始日、終了日設定されていない

工数見積もり誤り

メンバー進捗状況の確認不足

割り込みタスクや進捗遅延に対するリカバリができない

プロジェクト体制不備

引き継ぎがされていない

ノウハウがまとまっていない

属人化

技術力不足

システムの規模がでかい

求められる品質が高い

お客さんもシステムエンジニア

実体験エピソードを交えて解説します

以下は僕が経験した炎上エピソードです。

タスク管理不足で炎上

リーダーがスケジュールを大雑把に引いていて、上司に指摘され細かく引いたところ日数が足りないことが発覚。さらにお客さんからの追加要件が入る、炎上する。

ちなみにスケジュールを引く人がエンジニアじゃないと、実際にこれくらいかかりますよという工数の見積もりが少なすぎて炎上します。ちゃんと「これくらいの作業があるからこれくらいの期間が必要です」がお客さんに説明出来ないと、大雑把な期間だけ決められて「終わらなーい」ってなります。

また、他の現場ではリーダーが全く進捗管理しておらず、途中から「ヤバい。終わらない」でバタバタするパターンもありました。実際に本番環境で稼働しているシステムに障害が発生するとその対応が割り込みで入ることもあります。

スケジュールが遅れた時のリカバリですが、スケジュールに余裕をもたせている、メンバーのアサインを変えるなどができないとこれまた炎上します。

開発スケジュールの裏事情?

システムエンジニアのお客さんの多くは一般企業です。お客さんの事業計画もあり、納期・期日だけが先に決められてしまいます。その後、実際に開発スケジュールを立てると「え、間に合わなくない?」ってなることが多いです。

開発途中で追加変更が発生しても、お客さんの企業のお偉いさんも含めた事業計画があるため、簡単にスケジュールを動かすことができません。よって請け負うシステム会社がその納期に間に合わせようと必死に頑張るわけです。

求められる品質が高いと技術力不足で炎上

大規模プロジェクトではお客さんもエンジニアの場合が多く、求められる技術、品質がとても高いです。また、本番環境で障害が発生すると、開発途中でも障害対応で割り込みが入ります。技術力不足で調査が困難、わからないミドルウェアを使用してる、いつも大変だからノウハウがまとまってない、引き続きもされてない。はい炎上w

もうお気づきかと思いますが、炎上の多くは、タスクや顧客調整のマネジメントが原因になります。技術不足も満たす人材を配置していないという意味ではマネジメントですね。

おわりに:炎上は未然に防ぐことはできます

この記事では詳しく触れませんが、じゃあ大変なままかというとそうではありません。未然に防ぐこと、改善することはできるます。リーダーとメンバーのやる気にかかっています。

タスク管理不足の改善としては、タスクを細分化して開始日・終了日を設定する。きちんと各メンバーの進捗を確認する。予期せぬタスクの割り込み、メンバーの進捗遅延に対してスケジュールのリカバリをする。

技術不足の改善としては、何が不足しているか明確にし、テクニカルリーダーを入れるか、仕組みをつくる、勉強会を開いてチームレベルを長期的に上げていくなどあります。

もちろんすべての現場が炎上するわけではありません。上記のポイントを押さえているリーダーがいれば比較的大丈夫。タスク管理や顧客対応はリーダーの役割であることが一般的ですが、あなたが開発メンバーなら教えてあげましょう、助けてあげましょう。

僕の炎上経験が役に立ちますように。。。