![見出し画像](https://assets.st-note.com/production/uploads/images/162541871/rectangle_large_type_2_08bb1380c0036db7757e626ad42fac90.png?width=1200)
自ら課題を見つけて改善提案入社2年目の新卒エンジニアが語る挑戦と成長の軌跡
インフキュリオンでは新卒採用を行っており、2023年12月には新卒入社エンジニア4名のインタビューを公開しました。今回は、その中で現在バックエンド開発に携わるメンバーに再びインタビューを行い、この1年間での課題への取り組み方や自身の成長について話を聞きました。
株式会社インフキュリオン
プロダクトマネジメント部 エンジニアリングチーム
「WalletStation」バックエンドエンジニア
新田(にった)さん
2023年新卒でインフキュリオンに入社。1年目は保守/SRE(Site Reliability Engineering)を担当し、テナント保守運用を中心に携わり、2023年4月より新規機能開発とリファクタリングをメインに担当。
※本記事は2024/11/20に公開。所属や業務などは取材時点の内容です。
テストのリファクタリングで、テストデータ作成を大幅に簡素化
— 昨年10月のインタビューから1年経ち、役割や仕事の仕方に変化はありましたか。
新田:昨年はSRE(Site Reliability Engineering)として 、テナントの保守運用やリリースフローの自動化の業務に携わっていました。その後、並行してテックリード直下で新規開発も行い始めました。
今年の4月からは、定期的に行うバージョンアップ開発における機能開発とリファクタリングを担当しており、開発リーダーとして、仕様整理、設計から製造、テストまで一貫して行っています。
— 今はどんなプロジェクトに携わっていますか。
新田:異動前の今年1月頃から、改めて事業部より品質強化の方針が打ち出されたことを皮切りに、テストコードの改善に取り組みはじめました。当時、さらなる精度向上が求められており、将来的に機能を追加する際にはテストコードの作成に高いコストがかかることが予想されていました。そのため、精度の向上が難しい状態でしたが、構造自体のリファクタリングを提案し、リーダーとしてプロジェクトを推進しています。
これまではSQLを直接書いてテストデータを作成していましたが、機能が増えるにつれてデータを積むコストが増大し、精度も落ちていました。さらに、テストケース同士が依存することもあり、テストデータの追加が困難な状況になっていました。
— その問題に対して、新田さんはどのように改善を進めているのでしょうか。
新田:まず、テストケースの依存に関しては、テストコードの先頭で既存データをすべて消去し、そのテストケース専用のデータを新たに積む仕組みにしました。
その上で、フィクスチャを用いて必要最低限のテストデータをあらかじめデータベースに投入する仕組みにしました。これにより、SQLを直接書くよりもコストを大幅に削減できるようになります。
それでも、例えば「決済をする」というテストでは、ユーザーデータやそれに紐付く取引、決済手段、残高など様々なデータが必要になります。さらに外部との連携も発生するため、テストに必要なデータは非常に多くなり、精度が担保できなくなるという問題もありました。そこで、プロダクションコードを活用して実際にAPIを使ってテストデータを積む仕組みを構築し、テストの簡略化を図りました。
![](https://assets.st-note.com/img/1732070281-yj7NVF3ikvXAlqYndxKubHOT.png?width=1200)
— どのように考えてそれらの解決法に至ったのですか。
新田:フィクスチャを使うのは一般的な対処法なので、書籍や他社のテックブログを参考にして取り入れました。当初はそれで解決するだろうと踏んでいたのですが、リファクタリングを進める中で、フィクスチャだけでは解決できない問題が徐々に顕在化してきました。
様々な対処法を調べましたが、参考になる事例や文献が少ない状況でした。自動テストにはJUnitを使っていますが、そのフレームワーク外での対処法も含め、プロトタイプを作成しながら解決可能な手法を洗い出していきました。その上で、テックリードとも議論を重ね、自社に最適な手法を見つけ出しました。
イニシアチブを取り、チームと共に成長——新田さんの挑戦と成長
— このプロジェクトを通じて、どのように成長できたと思いますか。
新田:参考文献が少なく、あっても自社に適用できるものはほとんどなかったため、自分で考えざるを得なかった点は大きなチャレンジでした。しかし、そのプロセスが自身の成長につながったと感じています。
— チーム開発をする上で大事にしていることは何ですか。
新田:コミュニケーションを密にとることが重要で、特に進捗管理では、早めにプルリクエストを上げてもらったり、コードベースで状況を把握するなど、目に見える形で確認していくことを心掛けています。
また、メンバーのアサインにも配慮しています。各メンバーの得意領域や興味のある分野を考慮しながらアサインすることで、チーム全体のモチベーションを保っています。
テストコードのリファクタリングに関しては、明確なプロジェクトメンバーはいませんでしたが、他チームのメンバーやインターン生に応援を依頼し、常時3〜4名が関わって進めてきました。
![](https://assets.st-note.com/img/1732070652-2Bsegx9RfYavWirczU7AN8hI.png?width=1200)
新田さんは出社スタイルを選択している。
— 決済プロダクトを作る面白さについてどのように感じていますか。
新田:決済プロダクトはお金を扱うため、品質が極めて重要です。例えば、100円の買い物で口座から99円しか引かれなかった場合、店舗に損害を与え、ユーザーには不安な体験をさせてしまい、私たちの信頼も大いに損ねる問題になります。
そうした不具合を防ぐため、常に多くのことを考えながら、緊張感を持って開発に臨む必要があります。プレッシャーは大きいですが、その分課題をクリアした際には成長を実感でき、やりがいや面白さにつながっていると思います。
やりたいこと、気になることを“無邪気に”発信してみよう
— どのような点で、インフキュリオンに入ってよかったと思いますか。
新田:まず挙げたいのは、チャンスをもらいやすい環境であることです。入社後はSREチームに配属されましたが、新規開発にも携わらせてもらいました。テストのリファクタをリードした経験も含め、妥当性があれば、年齢や経験年数に関係なくチャンスを与えてもらえる環境だと思います。
また、先ほどお話ししたように、不具合を出したら大問題になる場面もありますが、次につながるポジティブな失敗に対しては寛容な文化があります。手を挙げたら、「とりあえずやってみなよ」と言ってもらえる風土があり、挑戦しやすいのも魅力です。
— 最後に、 来年新卒で入る方に向けてアドバイスがあればお願いします。
新田:1年目だからといって、何か提案しても無下にされることはありません。耳を傾けてもらえる文化があるので、やりたいことや気になることがあれば、人の目を気にせず積極的に言ってみるといいと思います。そうすることで、チャンスをもらえることもあります。特に最初の1年は、無邪気にどんどん発言していくことが大切だと思います。
![](https://assets.st-note.com/img/1732070310-YWqxUEF60Ah51KjGXLISwctP.png?width=1200)
以下、新卒の関連記事もご覧ください!