【座談会】開発エンジニアの仕事とは?開発の技術、今後学んでいきたい技術、生成AIについてなどインタビューしてみました
ミライウェブ株式会社は「技術で顧客の成功を支援し、社会の発展に貢献する」をミッションに活動を行っております。
今回はミライウェブで開発エンジニアとして業務を行なっている3名の方と、オンライン座談会を実施しました。
参加者プロフィール
Mさん:宮城県出身。2020年当社に入社。これまでモバイルアプリ開発からウェブアプリ開発まで幅広い開発経験を持つフルスタックエンジニア。
Rさん:岩手県出身。2023年当社に入社。新卒からシステム開発会社に勤務し、Javaの開発を中心に様々なプロジェクトに従事。
Kさん:宮城県出身。2024年当社に入社。職業訓練校を経て当社に入社をし、現在はJavaの開発プロジェクトに参画。
開発エンジニアの仕事について
ーー本日は開発系エンジニアによるオンライン座談会にご参加いただき、ありがとうございます。現場で活躍されている皆さんの生の声をお聞きしたいと思います。みなさんのこれまでの経験も踏まえて、開発エンジニアのお仕事や、お仕事のやりがいについてを教えてください。ーー
Mさん:開発エンジニアの仕事は、主にソフトウェアアプリケーションの設計や開発です。お客様の要望をヒアリングし、それを設計書に落とし込み、プログラムを組み上げるのが基本的な流れです。過去のプロジェクトでは、お客様の要望が曖昧なこともあり、業務を深く理解し、提案を行うことで、最適なシステムを実現した経験があります。また、プログラムは作成して終わりではなく、テストや運用後の修正を含めたサポートも重要です。このような様々なプロセスを通じて、お客様に満足いただけたときには大きなやりがいを感じます。
Rさん:大きくはMさんと同じですが、私はシステムの移行支援も担当していました。移行プロジェクトでは、まず移行の要件定義を行い、移行時に必要なテストを実施し、最終的に本番環境への移行をサポートする流れです。移行作業は既存システムをしっかり理解した上で進める必要があり、特に移行中のトラブル防止が重要です。このようなプロジェクトを通じて、システムの安定稼働に貢献できたときにやりがいを感じます。
Kさん:私も大きくは同じですが、開発エンジニアの仕事は幅が広く、一言で表すのは難しいと感じています。私が関わっているプロジェクトでは、お客様からいただいた要件を要件定義書に落とし込み、それを基にプログラミングを進めています。Javaなどのプログラミング言語でコードを書くことだけでなく、ドキュメント作成やテストも含め、幅広い作業を行っています。こうした複数の工程を経験する中で、エンジニアとしてのスキルを磨いているところです。
好きな開発言語、ツール、技術について
ーーこれまで使ってきた開発言語やライブラリ、ツール等について教えてください。その中でも特に好きな技術を教えてください。ーー
Rさん:自分のキャリアはウェブアプリケーションの開発経験が中心なので、主に使ってきた言語はJavaで、フレームワークはSpring Bootなどを使ってきました。周辺のライブラリも色々使っています。テスト時にはJUnitなどのツールを使用しています。好きなライブラリとしては、Seleniumですね。ブラウザのテストを自動化するためのライブラリですが、バックエンドのコードを書きつつ、ブラウザが自動で動いている様子を見るのが結構面白かったです。
Mさん:私はモバイルやWebなど、様々な分野で開発を経験してきました。そのため、プロジェクトによって使う言語も様々です。モバイルでは、iOSならObjective-CやSwift、AndroidではJavaを使うことが多いです。Web開発では、主にJavaを使ってきました。COBOLはあまり触れたことがなく、「おじさん言語」なんて言われることもありますが、機会があれば少し見てみたいなという気持ちも少しあります(笑)。
好きな言語は一つに絞るのが難しいですが、モバイルのネイティブコード系が長くやっていることもあり、特に好きです。自分の作ったアプリがスマホで動く瞬間は、とても大きな喜びがあります。特に、Objective-CやAndroid Javaなど、モバイル系のネイティブコードが一番のお気に入りです。
Kさん:私は未経験からこの業界に入り、今のプロジェクトが初めての現場です。そのため、まだいろいろな言語を試す機会は少ないですが、今はJavaを極めることを目標にしています。Javaをしっかり身につけておけば、他の言語にも対応しやすくなると感じているので、ミライウェブ株式会社のJava担当として頑張っていきたいと思っています。あと、C#にも少し興味があります。
今後学んでいきたい技術、将来像について
ーー今後学んでいきたい技術や、自身のなりたいエンジニア像について教えてください。ーー
Kさん:今学んでいる技術としては、引き続きJavaを極めたいと思っています。また、Javaだけでなく、Springフレームワークについても深く学んでいきたいです。
なりたいエンジニア像としては、先輩方とは少し違うかもしれませんが、Javaに関して「この人に聞けば大丈夫」と言われるような、社内で一目置かれる存在になりたいです。最近は生成AIも普及していますが、出てきたコードをただコピペするだけではなく、その中身をきちんと理解し、説明できるエンジニアが本物だと思っています。すべてのコードに対して、どう動くのかを説明できるようなエンジニアを目指しています。
Mさん:学んでいきたい技術については、モバイルアプリ開発でずっとネイティブコードを使ってきたので、今後はマルチプラットフォーム言語、例えばFlutterやReact Nativeといった技術をもっと習得したいと考えています。これらを学ぶことで、開発の幅がさらに広がると思っています。
なりたいエンジニア像としては、技術を突き詰めるエンジニアというよりも、自分のスキルや経験を周囲に共有し、チーム全体で成長していけるようなエンジニアになりたいです。開発はチームで行うことが多いので、自分の知識や経験を惜しみなく提供し、周りを巻き込みながら、より良いものを作ることを目指しています。
Rさん:私が学んでいきたい技術としては、今業務で使っているJavaや、周辺のフレームワーク・ライブラリなどの知識をもっと深めていきたいと思っています。Java関連の技術をしっかり身につけて、より効率的に開発ができるようになりたいです。
なりたいエンジニア像としては、技術力だけでなく、ビジネス的な視点も持ちながら、業務に貢献できるエンジニアを目指しています。技術を突き詰めるだけでなく、業務全体を見渡して、チームや会社にとってより良い成果を出せるような存在になりたいです。
生成AIについての技術者の視点
ーーChatGPT等の生成AIの進化が著しいですが、生成AI技術についてはエンジニアとしてはどのように考えていますか。ーー
Mさん:生成AIは素晴らしい技術だと思いますが、まさに「諸刃の剣」だと感じています。正しく使えば非常に強力なツールになりますが、誤った使い方をすれば予期しないトラブルや、後々手間が増える原因になりかねません。特に、開発者が技術的な理解を持っていない状態でAIに頼りすぎると、表面的にはエラーがないコードでも、予期せぬ動作をする可能性が高まります。
生成AIは誰でも使えるようなチャットベースの対話形式になっていて、簡単にコードを生成できますが、最終的にはそのコードをきちんと理解し、精査する力が必要です。AIが出した結果をそのまま信じるのではなく、自分自身の技術力を高めつつ、生成AIを補完的に使うことが重要だと思っています。AIに依存せず、バランスよく活用することが、今後の開発者に求められる姿勢だと思います。
Rさん:個人の成長という観点で見ると、生成AIを活用するのは非常に効果的だと思っています。特に、Javaのコードを書く練習をするとき、ChatGPTに聞く方が、ネットで調べるよりも幅広い視点からの回答が得られることが多いです。ネットでは見つからない答えをChatGPTが提供してくれるケースもあるので、そういった「壁打ち」的な使い方は、個人のスキルアップに貢献するんじゃないかと感じています。
ただ、キャリア的な側面で考えると、特に日本では大手企業やセキュリティの関係で、ChatGPTなどのAIツールが業務で使えない場合も多いです。そのため、Javaのような大規模開発で広く使われている技術を極めれば、生成AIに淘汰されることなく生き残れるんじゃないかとも思っています。AIが進化する一方で、ビジネス的な制約が増えることで、エンジニアの役割が重要になってくるのではないかという仮説を立てています。
Kさん:悪意ある第三者が誤った情報を大量に流した場合、それがAIの答えとして出てきてしまう可能性があるため、使う側の人間がその情報が正しいかどうかをしっかり精査できる必要があると思っています。生成AIは便利だと思いますが、企業のソースコードなどはセキュリティの観点から外部には出せないので、そういった情報を自分で作り出す力を身につけることが大切だと考えています。自分でコードを書く能力を高めていけば、エンジニアの仕事が淘汰されることはないと思っています。
開発系エンジニアになりたい人へのアドバイス
ーー開発系エンジニアになりたい方へ向けてアドバイスをお願いします。ーー
Rさん:実際の開発現場では、自分が行った作業や、設計・実装の意図を説明する場面が多々あります。特に「このコードを書いた意図を教えてください」と聞かれることもよくあります。ですので、普段から自分が何をやっているのか、その意図を説明できるようにしておくと、現場に入ってからもすぐに貢献できると思います。日頃から「なぜこれをやるのか?」を意識しながら取り組むことが大切です。
Mさん:開発エンジニアというと、黙々と一人で作業をするイメージを持つ方も多いかもしれませんが、実際には毎日コミュニケーションを取りながら作業することがほとんどです。技術力も大切ですが、対人スキルやチームでの協力も重要な要素なので、その点を意識してほしいです。
また、学習方法として書籍や動画で知識を得るのも良いですが、プログラミングでは何よりも手を動かしてコードを書くことが大事です。実際にコードを書きながら学ぶことで、より深く理解できます。日々、自分で何かを作る習慣を身につけて、実践的なスキルを磨いてほしいと思います。
Kさん:私は未経験からエンジニアになったので、その観点でお話しします。未経験者の方だと、資格取得を目標にする方も多いと思います。私もそうでしたが、実際に現場に出ると、資格は取ったけど手を動かせないということがありました。やはり、簡単な作業でもいいので、実際に手を動かしてコードを書く経験がとても大事だと感じました。
それに加えて、やる気と、困ったときにきちんとコミュニケーションを取る能力が一番重要だと思います。なので、しっかり実践しながら学び、コミュニケーションも大切にして頑張ってください。
ミライウェブ株式会社では一緒に働く仲間を募集しています。興味のある方は、こちらからエントリーください。
https://www.miraiweb.co.jp/recruit/