システムエンジニアの仕事内容(大企業向けスイッチングハブの開発)

システムエンジニアの仕事 システムエンジニアの仕事

当サイトは機械設計の仕事を解説しているサイトにはなりますが、中には今流行?のシステムエンジニア(SE)の仕事に興味を持っている方も多いのでは?

どちらも製造エンジニアの仕事になりますしね!!(無理やり共通点を作ってみました)

そんな方に為に、今回はシステムエンジニアの仕事って具体的にどんなことをしているのかを経験者に書いてもらったので参考にしてみてください。

大企業向けスイッチングハブ開発の仕事内容

私は、情報系大学を卒業後、北海道のIT企業に就職し、その年の6月に、客先の会社がある川崎へ転勤となり、大企業向けスイッチングハブのファームウェア開発に関わることになりました。

入社してからUNIXコマンドを覚えてデバッグ作業から始める

1年目は、そのスイッチングハブの仕様を覚えることと、ネットワークシステムの構造におけるUNIXによるC言語でのプロセス間通信のしくみや、UNIXコマンドを覚えると同時に、テスト項目書に基づいたデバッグをしていくことが主な内容でした。

テスト項目には、比較的容易なものと難解なのもが含まれていて、難解なものとしては、システム許容量のパラメータを最高の状態にして、何日間か放置する耐久テストのような項目も含まれていました。

扱っている製品シャーシ型のスイッチだったので、それぞれのシャーシを抜き差しした時の正常動作確認や、シャーシとシャーシをまたいだ通信における正常動作確認なども行いました。

メモリリークの確認

C言語でシステムを開発していたので、メモにに異常がないかの確認「メモリリーク確認」を行いました。また、定期的に行われる試験として、出荷時の最終確認としての「統合版確認」やそれをさらに細分化した「入鍵版確認」などを行いました。

2年目で全体の流れをつかむ

2年目は、設計書(要求定義、基本設計書、詳細設計書、関数仕様書)の作成、コーディング、単体テスト、結合テスト、システムテスト、耐久テストのような、システム開発におけるウォーターフォール・モデルにしたがって、一連の工程を経験していきました。

要求定義の段階では、コマンドの追加としての仕様を決めていく段階としてレビューを重ねていって、基本設計書に記述するための項目などをまとめ、実際に自分で作成したものを修正・追加していくという作業を進めていきました。

基本仕様書がある程度仕上がったら、機能をコーディングするための詳細をどのように実現するかといったことをレビューやウォークスルーを重ねて、図表の作成や具体的なモジュール名などを決め、機能仕様書を作成していきました。

機能仕様書に基づいた、それぞれの機能ごとのC言語で扱う関数名のプロトタイプを関数仕様書を作成し、コーディングへと進んでいきました。

コーディング

コーディングの仕方としては、いかにバグを出さないかに注意し、会社で決められた法則に基づいて行いました。それは、関数の説明は、必ず、詳細に記述し、変数名、関数名、配列名、構造体名、マクロ名などは、関数仕様書に基づいた命名規則でそれぞれの関数を仕上げていきました。

特に注意すべきは、メモリリークを起こさないために、malloc()関数でメモリを確保したら必ずfree()で解放するといったことを忘れずに行いました。また、malloc()で、メモリを確保できなかった場合の処理として必ず、ソケットの切断といった処理を加え充分に気を配ってコーディングを行っていきました。

コーディングが終わるとテスト項目書の作成や実際の単体結合テスト、耐久テストなどを行い、テスト段階で、異常が現れた場合は、プロジェクト管理システムの懸案事項欄にどのような異常が表れ、どのような解決方法があるかを詳細に記述していく作業がありました。

例えば、必ず使わなければいけないモジュール群がない場合、違うチームに作成依頼をするといったことがありました。

どのチームが担当なのかある程度状況を把握したうえで、自チームや他チームとのコミュニケーションなどをとりながら解決方法を見つけていくと行った作業できた。懸案が解決したら、認証してもらう仕組みになっていたので、そのへんは、かなりの労力を必要としたことを記憶しています。

システムエンジニアに必要なスキル

仕事を行ってみての実際に必要なスキルは、同時作業並行能力、専門用語理解能力、応用的なプログラミング手法、専門的コミュニケーション力、忍耐力などが挙げられます。

システムエンジニアの年収

収入面は、請負先の売上によって左右されるので、一概に安定とはいえませんが、私の場合は入社1年目の年収が400万円前後だったと記憶しています。

ちなみに残業は毎日2時間程度、休日出勤は月1回あるかないかぐらいでした。

システムエンジニアの仕事をしたい方へのアドバイス

これから、このような仕事をしたいという方へのアドバイスとしては、基礎段階として、IT系の大学でかなり優秀な成績を目指して勉強すると共に、大学期間中に、一度ITの仕事はどういったものかということで、入りたい企業と交渉して、数日間体験するのも良いかも知れません。

入った段階で、プログラミングの全くの素人、OSの素人であった場合は、相当の学習意欲や忍耐力がないと、病気になってしまうことも珍しくはありません。

なので、趣味程度でプログラミングの知識がある程度では、実際の仕事に仕事が出来る状態になっていないので、アルバイトで募集している企業で、多様な経験を積むことも一つのアイデアかも知れません。

専門的なコミュニケーション能力を磨くために、大学などでは、ゼミナールなどで、仕事感覚で専門的な言葉を使う習慣を身につけておいたほうが良いでしょう。