私は先日入社1年を迎えた若手社員です。大学では情報学を専攻していましたが、在学中に取り組んでいたプログラミングは、あくまで授業や研究のためのもので、「誰かのためにソフトウェアを作る」という経験はあまりありませんでした。
そんな私が実際に業務に携わるようになり、この一年でエンジニアという仕事の見え方が変わったと感じています。ここでは、研修や実務を通して気づいたことを、いくつかご紹介したいと思います。
実務に入る前には、技術研修を通して様々な基礎を身につける期間があります。私の場合は電卓アプリ(図1)および在庫マネージャアプリ(図2)の開発を行い、C#の基礎からMVC(Model-View-Controller)モデル、HTML/CSS/JavaScript、そしてDB/SQL操作まで研修を通して幅広く学びました。

図1. 電卓アプリ

図2. 在庫マネージャアプリ
この研修でまず感じたのは、コーディング以外の作業が想像以上に多いということです。
電卓アプリや在庫管理アプリを作る際には、すぐにプログラムを書き始めるのではなく外部設計書や内部設計書を作成し、作業内容の認識を合わせたうえで仕様を固めてからコーディングに入ります。学生時代は個人で完結する作業が多く、自分がわかれば十分だったため、メモ程度の記録しかしていませんでした。
しかし、研修や実務では「誰かが読む前提で文書化する」ことが求められ、最初はその点に苦労しました。最初に全体像がつかめるような構成になっているか、同じ事柄の表現にぶれがないか、並列関係や対比関係が分かりやすく整理されているかなどを意識しながら書く必要があり、想像以上に時間がかかりました。改めて考えてみると、学生時代に論文を書くときに意識していたことと共通している部分が多くソフトウェア開発においても「伝える力」が欠かせないのだと再認識しました。
加えて、研修中は作成したドキュメントの読み手が先輩のエンジニアでしたが、実務ではエンジニア以外のお客様が読むこともあります。そのため、「読み手がどこでつまずくかを想像しながら書く」「背景知識が違う人でも理解できる構成にする」という客観的な意識を常に持ちながら作成する必要がありました。頭では理解していても、実際に文書へ落とし込むのは簡単ではなく、ここも大きな学びとなりました。
また、設計段階ではどのような機能が必要で、それぞれがどの程度のボリュームになるのかを見極めることも重要です。ここが曖昧なままだと、工数や納期に悪い影響を与えてしまいます。在庫マネージャアプリでは、実装を進める中で「複数人が同時に操作したらどうなるのか?」「背反する操作が行われた場合はどう扱うのか?」といった想定をできていなかったケースが次々と出てきて、当初の設計に抜けがあることに気づきました。結果として、後から設計を見直すこととなった部分もあり、「実際に作業する前に十分に検討する」という基本的なことが、いかに難しく、そして効率的に進めるために欠かせないかを強く実感しました。
また、試験項目書を作成し、試験を実施して動作を記録に残す必要があります。どの操作に対してどのような挙動を示すのか、誰が読んでも同じように再現できるように書く必要があり、表現やレイアウトに悩むことも多くありました。
書き方ひとつで伝わり方が大きく変わるため、「誤解なく再現できる形で残す」ことの難しさを感じました。
研修が終わり実務に関わるようになると、研修では経験しなかった場面に多く直面しました。その中でも特に印象に残っているのは、Webでの打ち合わせ時にお客様からいただいた仕様に対して、技術的な観点から別の方法を提案した場面です。大きな提案というほどではありませんでしたが、自分の理解が相手の意図に沿っているのか、実現したいことをきちんと汲んだうえでより良い案となっていのか不安もありました。そのため説明するときは少し緊張しましたが、理解いただき受け入れていただけたときは、素直にほっとしたのを覚えています。
また、実務では新規に近い開発と、途中参加の引き継ぎ開発の両方を経験しましたが、それぞれに違った難しさがありました。特に引き継ぎ開発では、過去の判断や仕様の背景を理解しないと、なぜその設計になっているのかが見えてきません。背景を理解できていないと、安易に変更をしてしまい不具合を生む可能性があるため、「なぜこの形になったのか」を把握することが、正しく判断し柔軟に対応するうえで欠かせないと強く感じました。
そしてこの経験を通して、研修で学んだ文書化の重要性を、今度は“受け取る側”として改めて実感しました。初期開発から年月が経つと、当時の意図を口頭で確認することは難しくなりますが、ドキュメントが残っていることで、設計の背景や検討の経緯を理解することができ、作業の精度も大きく変わります。実務では、仕様変更の履歴や検討内容を適切に残しておくことが、後から作業する人にとって大きな助けになるのだと感じました。
この一年を振り返って感じるのは、エンジニアの仕事は単にコードを書くことではなく、相手の意図を理解し、背景を読み取り、正しく伝えることが土台になっているということです。
研修では文書化や設計の難しさを知り、実務ではお客様への提案や既存プロジェクトの引き継ぎを通して、 「なぜこの仕様なのか」「どう伝えれば誤解がないか」を考える重要性を実感しました。
これからも、背景を丁寧に理解し、相手の視点を意識したコミュニケーションを大切にしながら、 より良い開発ができるエンジニアを目指して成長していきたいと思います。