初のプロジェクト参画!新人システムエンジニアの1日と作業内容を紹介します!
はじめに
こんにちは!2023年4月入社の豊島です。
私は7月にソリューション開発部に配属になり、部内での新人研修を経て、9月から初のプロジェクト参画となりました。
部内新人研修についてはこちらの記事で詳しく紹介しておりますので、ぜひご覧ください!
ソリューション開発部の新人研修を大公開!(2023年度版)
本記事ではプロジェクトに参画した約半年間を振り返り、実際におこなってきた作業や1日のスケジュールを紹介します。
そして半年間の総括として、チームの一員としてプロジェクトで働く中で新人ながらに感じたことを振り返ってみました。
「新人としてプロジェクトに参画したら、具体的にどんな作業をするの?」と気になっている学生のみなさんや、システムエンジニアを目指す方々の参考になれば幸いです!
参画プロジェクトについて
本プロジェクトのお客様は製造業界の大手企業です。
部品の購入者(バイヤー)と部品を売る企業(サプライヤ)をつなぐ「部品調達システム」のWebアプリケーション開発を支援しています。
お客様企業のバイヤーに加え、サプライヤ企業のユーザなど約1万人が利用するシステムの開発ということで、大規模なプロジェクトとなっています。
私が所属する開発チームは7人体制で、アークシステム社員3名とパートナー企業のエンジニアさん4名から構成されています。
社員の3名はチームリーダー、OJTトレーナーの先輩、そして私です。
勤務体制はフルリモートで、打ち合わせや相談など必要なときに通話をつなぎ、基本的には個人作業で通話をつながずにおこなっています。
ある1日のスケジュール
09:00 ~ 09:30 | チーム朝会 |
09:30 ~ 10:00 | 先輩社員との状況共有 |
10:00 ~ 11:00 | 作業 |
11:00 ~ 12:00 | 顧客との打ち合わせ |
12:00 ~ 13:00 | 昼休み |
13:00 ~ 16:30 | 作業 |
16:30 ~ 17:00 | プロジェクトマネジャーとの1on1 |
17:00 ~ 18:00 | 作業 |
チーム朝会
チーム朝会は毎日、作業の状況共有をおこないます。
受け持っている作業が終わっていれば次の作業を割り振ってもらったり、困っていることがあればチームリーダーに相談したりします。
リモートでも朝から声を出してあいさつをし、自分の状況を説明することで頭を起こして、「今日も仕事を頑張るぞ!」とスイッチを入れる時間にもなっています!
先輩社員との状況共有
こちらも毎日、先輩社員と1対1で状況共有をおこないます。
チーム朝会で割り振られた作業に対してより細かく方針を確認したり、技術的にわからないことがあればその場で質問したりして解消します。
マンツーマンで年の近い先輩が担当してくださることもあり、より気軽に聞けます。
「わからないことがあれば質問できる時間」が毎日あるのは、新人としては心の支えで本当にありがたいことだと感じます。
顧客との打ち合わせ
お客様が実現したい要件を直接ヒアリングし、技術的に実現可能かすり合わせや方針決めをおこなう会議です。
もしお客様に対して直接質問したいことがあれば、この時間に解消できます。
作業
基本的に個人で与えられた作業を遂行できるよう進めていきます。
1人でじっくり集中して思考を深められる貴重な時間ですね!具体的な作業内容については後述します。
プロジェクトマネジャーとの1on1
週に1回、プロジェクトマネジャーと下記内容などを共有します。
- 一週間の作業内容と成果
- スキルアップしたこと
- 困っていることや気になっていること
週に1回という高い頻度で会話ができるので、悩みがあっても相談しやすい環境が整っています。
「スキルアップしたこと」を直接評価してもらえる場があるのはとても嬉しく、「もっと成長したい!」というポジティブな気持ちで作業に挑めます。
実際におこなってきた作業内容
システム開発は基本的に、
要件定義 → 設計 → プログラミング → テスト → リリース・運用保守
の流れでおこなわれますが、私は主に設計、プログラミング、テスト、保守の作業を担当してきました。
各段階の成果物は先輩社員にレビューしていただき、指摘事項の修正を繰り返しながら完成を目指して進めていきます。
設計
お客様からの要望(要件定義)を受け、画面の設計をおこないます。
設計段階の制作物である設計書には、下記内容などを詳細に記載します。
- どんな機能を持つ画面か
- どんな変数を必要とするか
- どんなメソッドが必要か
次の段階でプログラミングの担当者が参考にする資料です。
お客様の言葉で表現された要件定義を解釈し、実装する際の最適解を書き起こす。お客様側、開発者側をつなぐとても重要な段階だと感じています!
プログラミング
開発業務といえばプログラミングを一番に想像する方も多いのではないでしょうか?
設計段階で作成された設計書を参考にプログラミングをおこない、実際にお客様が利用する機能、画面を作ります。
本プロジェクトでは、下記のプログラミング言語やフレームワークを用いて実装をおこないます。
- クライアント側(画面の表示を作る部分): HTML, CSS, JavaScript, Vue.js/Nuxt, TypeScript
- サーバー側(画面から呼び出す処理を作る部分): Java, SQL
自分で試行錯誤しながらコードを組み立てて、実際に動く画面を作れた時は達成感がありますね!
テスト
プログラミング段階の制作物に対するテストとして、クラスごとにおこなう「単体テスト」と、機能を組み合わせて挙動の確認をおこなう「結合テスト」をします。
単体テストはテスト網羅率(カバレッジ)を確認しながら、機能が期待する正しい結果を返すかを確認するため、単体テストコードを実装しておこないます。
本プロジェクトでは、JUnit という単体テストソフトウェアを用いておこなっています。
結合テストは画面上での期待動作を書き出し、実際に画面を操作して期待通りの結果になるかをテストし、証拠(エビデンス)を残していく作業です。
例)「〇〇の条件で検索すると、期待通り△件検索結果が表示される」というテストをおこない、検索結果の画面をスクリーンショットを撮る。
リリース前の最終確認の段階ということもあり、慎重におこなう必要があります!
保守
実際にお客様がシステムを使用する中で発覚した不具合の修正や、新たな改善要望への対応をおこないます。
例)「〇〇の条件で検索したのに、検索結果が返ってこない」という不具合が発覚。不具合内容の確認とソースコードの問題点を修正し、正常な検索ができることをテストで確認した上で再度リリースする。
コードに修正を加えると、修正箇所を呼び出す他の画面でも不具合が発生する可能性があります。
修正箇所の影響範囲を調査することも、不具合修正する際には大切です!
初のプロジェクト参画で感じたこと
初のプロジェクト参画からの約半年間はとにかく必死で、あっという間に過ぎていきました。
参画してすぐの頃はなにをやるにも先輩方のサポートを受けながらで、「チームの一員として役に立てる日は来るのだろうか?」と不安な気持ちもありましたが、今はだんだんと1人でも遂行できる作業が増えてきた気がします。
「最初から完璧にできる人なんていない」というのはわかっていても、自分は新人で知識も経験も豊富な先輩を見ていれば、焦る気持ちが出るのは仕方のないことだと思います。
とはいえ、いつまでたっても質問ばかりで先輩方の時間を奪うわけにはいかないという意識もあります。
そこで新人にできることは「先輩方の知識を自分のものにする」意識を常に持ち、「わからないことは自分から聞く、確認する」を徹底することだと思います。
疑問を解決し、理解した点を次回からは1人でできるようにする。これだけでも繰り返せれば、日々できることが増え、成長を感じながら過ごせます。
ただそのためには、質問しやすい体制が整っているなど周りの環境も重要だと感じます。
いつも優しく的確に指導し、近い立場で楽しく会話に応じてくれる先輩、少しずつレベルを上げて課題を用意し、圧倒的な知識で支えてくれるチームリーダー、少しの成長も見逃さずに褒めて、心の支えとなってくれるプロジェクトマネジャー。
この方々のおかげで、ここまで成長できたのだと、本当に感謝の気持ちでいっぱいです。
私も今や社会人2年目になり、社内では後輩ができました。
参画プロジェクトでも新規メンバー参入が随時おこなわれており、私が質問を受ける側、体制を整える側になる日もそう遠くはなさそうです。
誰もが成長を感じながら安心して働ける環境作りを目標とし「最初からできないのは当たり前」を念頭に置いたサポートができる人材を目指します!
とはいえ、サポートがなければできない作業は私にもまだまだあります。その分、成長の余地もたくさんあります。
周りへの感謝を忘れず、日々の成長に価値と喜びを見いだしながら、これからも邁進していきます!
最後に
今回は初めてプロジェクトに参画した新人の1日、作業内容を紹介しました!
本記事を通して、アークシステムで働くこと、ソリューション開発部で働くこと、システムエンジニアとして働くことに興味を持っていただけたら大変嬉しく思います。
最後までお読みいただき、ありがとうございました!