経験や目視に頼る現場を救う、AI画像解析アプリへの挑戦
-- 改めてですが、大石さんの現在の業務内容について教えてください。
私は現在、AI画像解析技術を搭載した自社プロダクトの開発に携わっています。
プロジェクトの中で私は、ある機能の設計・開発を任されていて、その機能について、インフラ、フロント、バックエンドまですべてを担当しています。
-- 一人のエンジニアがすべての領域を担当されるのは、他プロジェクトでは珍しい役割分担ですね。
そうかもしれません(笑)他のプロジェクトの例をあまり知らなかったので、不思議に思ったことはありませんでした。現在のプロジェクトでは機能単位で分担することがほとんどです。そうできているのも、AIとうまく付き合いながら開発しているからだと思います。加えて、周りにフルスタックエンジニアの先輩方が多いことも、この開発体制が定着している要因の一つだと思います。
-- 開発しているアプリは、導入される現場にとって、どのようにニーズのあるものなのでしょうか。
ローンチ前なので詳細は避けつつ例を挙げるなら、「情報の真偽や状況を見極めて判断する」といった、これまで個々人の経験や目視、紙のマニュアルに頼って進められてきた現場にニーズがあると考えています。現場では、経験の浅いアルバイトや新任メンバーにとっては判断が難しく、そのたび資料を確認しなければならないなどの課題を抱える企業も少なくありません。
これをAI画像解析の技術を使ったアプリで一瞬で解決し、現場の業務補助に役立てる、非常に重要度の高いサービスになると考えています。
-- 素晴らしいですね。ただの業務効率化にとどまらず、『人手不足』や『スタッフ間のスキルギャップ』『ヒューマンエラー』という、どのような業界でも抱えていそうな大きな課題も解決することができそうです。
先輩との会話が変わった、体系的な知識を実務で使える「総合力」へ
-- 大石さんと言えば、配属から数カ月目にしてAWSの「Solutions Architect – Professional(SAP)」に合格したとお聞きしました。難関試験にこのタイミングで挑戦した理由は何ですか?
SAPで、AWS資格としては5つ目です。それまでは、比較的難易度が低めの試験や、特定分野に絞った試験を受験してきました。今回このタイミングでSAPに挑戦したのは、全体のアーキテクチャーを早い段階で俯瞰し、理解しておくことが、エンジニアとしての今後成長していくうえで重要だと考えたためです。
本音は、「知っておいた方がいい」くらいの気持ちでした。資格取得はそれ自体が目的というより、学習で得た体系的な知識を頭にストックし、実務で必要なときに活かしたいという想いは強くありました。
-- では、先輩たちとの会話に変化はありましたか?
非常に強く感じています。大きな変化だったと思うのは、これまでAWSを使って開発を行うときに、曖昧な知識のまま「なんとなく」進めてしまっていた部分があったと気づいたことです。このSAPの学びを通じて、AWS内の「なぜこのサービスが存在し、どのような役割を持っているのか」を体系的にかつ明確に理解することができました。一緒にプロジェクトを進める先輩方との会話でも、まだ完全についていけていない部分は多くありますが、以前に比べると「しっかりと本質を理解したうえで会話に参加できている」という確かな実感があります。
一方で、試験には出てきても実務で直接触っていないサービスについてはまだまだです。プログラミング全般のスキルにおいても、経験豊富な先輩方の知識や引き出しの多さにはまったく及ばないと痛感する毎日です。
-- 資格取得自体は目的ではないとのことですが、今後、さらにどのようなことにチャレンジしていきたいですか。
資格取得は、自分の中では完全に通過点であり、スタートラインに立ったに過ぎないと思っています。この知識という武器を手に入れた今、これからは実践で使える力を磨いていきたいです。現在は、一つのサービスの一機能を担当しているだけですが、「システムをゼロから構築する」ことにもチャレンジしたいです。そして、どんな要件や構成にも対応できるエンジニアとしての総合力をさらに磨いていきたいです。
「作る」の先にある価値、先輩の背中から学んだ「プロジェクト全体を導く」エンジニア
-- 入社と同時にエンジニアの道を歩み始めたとのことですが、エンジニアの面白さは、どこに感じますか?
おもしろさを感じたのは、配属して間もないころのことです。サービスのコアな機能開発を先輩が担当されており、私はその横で勉強させてもらいながらサポート作業を行うことがメイン業務でした。
「生成AIへ送るプロンプトの書き方」を工夫したり、無数にある「AIモデルの選定」を少し変えるだけで、精度が劇的に向上していく検証のプロセスを間近で見て純粋におもしろいと感じました。一方で、精度向上を追求するほどテスト範囲が増大する課題も発生しました。その際、先輩はAI判定の精度向上と並行して「テストの自動実行ツール」を新たに導入し、検証スピードを落とさない工夫を凝らしていたのです。
サービスの品質を直接高める工夫と、開発そのものを効率化するための環境づくりを両立して進める姿を間近で学び体験できたことは新たな気づきでした。また、これまで「作ること」が中心だと思っていたエンジニアの役割が、個人の業務範囲にとどまらず、プロジェクト全体をより良い方向へ導く仕事にもつながるのだと実感しました。私も将来こうしたエンジニアになりたい、と強く思いました。
-- では、エンジニアとしてやりがいや、手応えを感じるときはありますか?
サービスに新たな要望として追加開発が発生した時の話です。その要求をシステムに反映するためには、従来の仕様のままでは対応できませんでした。そこで複雑に分岐していたロジックを組み直す大規模な改修を行ったことは、とても良い経験になりました。実用性を最優先する意見を取り入れ、 "ユーザ処理スピードを圧倒的に速く保つ" という割り切った最適化設計のうえ、実装を進めることにしました。
そのような最適化設計を組み立てるための試行錯誤や、形にしていく過程は、エンジニアとしてのやりがいと確かな手ごたえを感じました。
-- 実務に携わってきた中で、ほかに印象に残っている開発エピソードや経験はありますか?
配属後すぐに担当した「アプリの利用ログを自動で収集・可視化するBIツールの仕組みづくり」が、特に印象に残っています。
当時、システム内に蓄積されるユーザーの利用ログは、毎週エンジニアがサーバーから手作業で集約し、Excelに貼り付けてグラフ化したうえで関係部門へ共有するという、非常にアナログで手間のかかる運用でした。そうした中で、「これってエンジニアが毎週手動で時間をかけずに、どうにかできないかな?」という話が打ち合わせで出ました。
そこで私は先輩に助言をもらいながら、ログを自動で収集・連携し、関係者が直感的にリアルタイムの実績を確認できるBIツールの画面を作る役割を担当することになりました。
-- 課題感を感じながらも、実務が優先になってしまうことは開発現場ではあるあるですよね。そんな中で、手動の集計作業を自動化したことにより、社内からはどのような反響がありましたか?
ものすごく大きな反響をいただきました!この仕組みを作ったことで、毎週発生していたエンジニアサイドの高負荷な作業は完全にゼロになりました。さらに嬉しかったのは、他部門からの声です。今までは「週に1回の報告を待つ」必要があったものが、「いつでも、自分が見たい時に、疑問を持つことなくリアルタイムの利用実績を確認できる」という状態が実現されたことに、とても喜んでいただけました。
-- 素晴らしいですね!「エンジニアの手間をなくす」と同時に「メンバーの意思決定スピードを上げる」という、まさに全方位で価値があるイノベーションです。この経験は大石さんにとってどんな意味がありましたか?
自分の作った仕組みが、身近なチームメンバーの業務を直接的に、かつ劇的に楽にする瞬間を間近で見られたことは、エンジニアとしての最初の自信になりました。
また、私たちのチームが今まさに推し進めている「開発の完全内製化」や「業務効率化」の重要性を、身をもって理解するきっかけにもなりましたね。ただ言われた機能を開発するだけでなく、「今ある無駄を技術でどう解決するか」を考えるおもしろさを教えてくれた、私にとって原点となる大切なエピソードです。
苦手だからこそやる。「自分の理解度を引き挙げる」最高の実践訓練
-- 日々の業務を進めるうえで、いま一番力を入れて取り組みたい目標は何ですか?
私たちのチームでは、「完全内製化」を本格的に進めています。限られたリソースの中でプロジェクトを迅速かつ円滑に進めることが求められているため、これまで開発の中でも主に「実装」フェーズで活用してきたAIを、他のプロセスにも積極的に取り入れていきたいです。
社内には、すでに開発プロセスの効率化に取り組み、現場を牽引している先輩が多くいます。まずは先輩方の知見や手法を学び、吸収していきたいです。そのうえで、ゆくゆくは自分自身も組織全体に良い影響を与えられる存在へ成長していきたいです。
そして、経験を重ね、現在はプロジェクトの一機能の開発担当にとどまっていますが、いずれは大きなプロジェクトを回せるフルスタックエンジニアを目指していきたいです。
-- ちなみに大石さんは、苦手なことや課題を感じていることはありますか?
私は、人に教えたりすることや、アウトプットしたりすること自体にものすごく強い苦手意識があります。ですが、だからこそ今年度の社内外アウトプット活動を通じて、この苦手意識を必ず克服し、エンジニアとしてステップアップしていきたいです。
-- アウトプットとは、技術ブログを書いたり、登壇に行くみたいなことでしょうか?やはり、そういったものは重要なのですか?
アウトプットすることには、他者への貢献や還元ができるメリットがあると思われがちです。しかし、私は自分自身にとってきわめて大きなメリットがあると感じています。そもそも、「インプット」と「アウトプット」では、自分自身に求められるハードルの高さがまったく異なります。誰かに教えたり、文章として発信したりするためには、完全に自分が理解した状態になっていなければ絶対にできません。
つまり、アウトプットする機会を自ら作るということは、自分の理解度を強制的に引き上げるための最高の実践訓練になるんです。発信することは他者のためであると同時に、結果的にすべて自分の血肉となって返ってくる。その意味を実感するために、挑戦する意義があると考えています。
-- アウトプットをすることは、他者のためであると同時に自分のためでもあるということですね、勉強になります!
最後に、配属からもうすぐ1年が経とうとしていますが、今後の意気込みを教えてください。
日々の実務で最高のパフォーマンスを発揮し、そこで得た知見を社内外へ積極的にアウトプットしていく。このサイクルを愚直に回して、自チームにも多数いる偉大な先輩エンジニア方に一歩でも近づきたいです。そして、これはただのロマンですが、そんな先輩方ですら歩んでこなかったTOPPANグループ初の「AWS Jr. Champion」を目指したいです!
AWS Jr. Championとは、現在社会人歴 1 ~ 3 年目で AWS を積極的に学び、アクションを起こし、周囲に影響を与えている APN 若手エンジニアを選出しコミュニティを形成する、日本独自の認定プログラムです。
※Amazon Web Services, AWS, および Solutions Architect は Amazon.com, Inc. またはその関連会社の商標です
