新人エンジニア成長記#3|Java初開発!2日間のチーム制作で得た学び

挑戦する新人エンジニアの軌跡

この春から未経験でIT業界で働くことになった新人エンジニアです!

現在受講している新入社員向けIT研修の様子を「新人エンジニア成長記」として発信中!

今回はその第3回として、「Javaプログラミング研修」の中で行ったシステム開発演習について、感じたことや学んだことをお届けします。

ミニシステム開発!初めての共同開発の体験

共同開発の概要

Javaの基本をひと通り学んだ後、実際の開発演習に突入しました。
今回の開発では、3人1組のチームを組んで、Javaのコンソールを使ったミニシステムを2日間で作ることになりました。

共同開発の結果

これが人生初の「共同開発」です。まずシステムの設計を行い、その後実際にコーディングを行いました。最初のシステム設計の段階では全くイメージが湧かず、不安だらけでした。しかし、グループの仲間としっかりコミュニケーションをとりながら、何度もエラーと向き合って修正を重ねることでシステムを完成させることができました。

共同開発を通して学んだこと

たった2日間という短い期間でしたが、2つの大きな学びがありました。
具体的には「コミュニケーションの重要性」、「エンジニアの役割」です。
この2点について具体的にお話しします。

コミュニケーションの重要性!チームでの協力の鍵

共同開発におけるコミュニケーションを怠ると起こること

「エンジニアにとってコミュニケーションが大切」って、よく聞きます。
実際に共同開発をしてみることでその重要性を本当に実感しました。

今回の共同開発では、GitLabというツールを使ってコードを管理していました。
私たちがコード管理時に失敗したことがあります。
それは

コミュニケーション不足によって、自分が書いたコードが他のメンバーに上書きされてしまう

ことです。
実際、私もエラーを修正してコード管理ツールに保存したのですが、他の人の更新で上書きされていたことが何度かありました。

コミュニケーションの重要性

こういったことを防ぐためには、どんな小さな修正でも欠かさず報告・共有することが本当に重要です。実際の現場では、基本的にチームで開発を行うため、密なコミュニケーションが欠かせないと感じました。
また、実際のやり取りは文字ベースになることが多いため、文面で正確に伝える工夫も必要だと感じました。

コーディング以外の仕事も重要!エンジニアの幅広い役割

実際の共同開発での成功体験

私は以前までエンジニアは「コードを書く人」というイメージが強かったです。実際に共同開発を行うと実はコーディングという仕事はシステム開発のほんの一部でした。

私はまだJavaを学び始めたばかりの初心者だったので、システムの中でも比較的シンプルなページを表示する部分を担当し、メインの処理部分はより経験のあるメンバーが担当しました。その結果、私の担当している開発部分が早めに終わり、少し時間ができました。
そこで私は「今の自分にできることは何か?」を考えた末に、開発と同時にテストを進めることに決めました。今回は2日間という短い期間での開発だったためシステムがひと通り完成後にテストを行うと期限内に間に合わないと考えたためです。
開発と同時にテストを行うことで軽微なミスが発生してもすぐに手戻りができるという利点もあります。
実際に軽微なミスはすぐにチームに共有することで期限内に設計書通りのシステムを完成させることができました。

エンジニアの幅広い役割

今回の共同開発で気づいたことは、エンジニアの仕事は本当に幅広いということです。
2日間での小規模システム開発における役割でも下記のようなものがありました。

  • 設計
  • コーディング
  • テスト

実際の開発現場では、プロジェクトの規模が大きくなるにつれて、担当する役割もより細分化され、関わる人数も増えていきます。そうした環境では、自分の担当業務だけでなく、他のメンバーとの連携や全体の流れを把握する力も求められます。
今回の研修では、単に開発手法を学ぶだけでなく、設計やコーディング、テストに至るまでの一連の工程をチームで実践的に体験することができました。これは、今後実際の現場に出た際に大いに役立つ貴重な経験になると感じています。

また、エンジニアに限らず、どんな職種においても「今の自分にできることを見つけて、自ら動く力」はとても重要です。今回の開発演習でも、空いた時間を有効に使ってテスト作業を進めたり、他のメンバーをサポートしたりする中で、その意識の大切さを改めて実感しました。

まとめ

今回は「Javaプログラミング研修」の共同開発で気づいたことをお伝えしました。
実際に共同開発を通して感じたことは、エンジニアの仕事は本当に幅広かったです。コーディングはもちろんのこと、設計・テスト・チームでのやり取りなど、様々な役割があると実感しました。
次回は「Javaのテスト」や「新しいクラスでのさらにレベルアップした学習」についてお届けする予定です。
新しい仲間との出会いや、徐々に難しくなっていく内容に奮闘する様子をお届けするので、次回もぜひ読んでいただけると嬉しいです!

コメント