
はじめに
登壇直前に地元バスケクラブが準優勝し、かなりのダメージを負っていた楽楽債権管理チームの冨澤です。
2026年5月30日に行われたJJUG CCC 2026 Springで初登壇してきました。
本記事は、そのレポートとなります。
JJUG CCCとは
JJUG CCCは、日本最大のJavaコミュニティイベントです。
日本Javaユーザグループ(JJUG) / Japan Java User Group (JJUG)が主催しており、今回は春に開催されたカンファレンスです。
(秋にもあります!2026年11月28日開催予定)
登壇スライド
外部発信のモチベーション
なぜCIを速くしたいかは登壇スライドに書いているので、なぜ外部発信をしたのかについて少し書いておこうと思います。
1つ目は、取り組みを始めた当時、自分が調べた範囲ではJava関連プロダクトのCI時間削減の記事が少なかったからです。
RailsやGo、フロントエンド関連のCI時間削減の記事は多かったのですが、Java関連の記事はあまり見つかりませんでした。
そのため、成功でも失敗でも何かしら貢献ができるのではないかと考え、最初の取り組みを以下のテックブログに書きました。
ちなみにこのやり方は、Goのテスト実行における「パッケージ単位で実行を分け、パッケージ内のテストは必要に応じて t.Parallel() で並列化する」という考え方から着想を得ました。
2つ目は、外部からのフィードバックを得たかったからです。
これは今回JJUG CCCに登壇したかった理由でもあります。発表後や懇親会の場で社外の方とお話しする中で、新しいフィードバックや気付きを得られたらよいなと考えていました。
こうした機会は自分から動かないと得られないと思い、CfPを提出しました。
また、上記のテックブログの内容からさらに改善を行ったので、その取り組みも紹介したいと考えていました。
登壇を通じて得られた気付き
何名かの方とお話しする中で、共通して話題に挙がったのが「PRごとに毎回すべての単体テストを実行しているのか?」という点でした。
これは本当におっしゃるとおりで、今回の取り組みでCI時間を約50%削減できたものの、それでもまだテスト実行に約10分かかっています。
デグレの早期検知や安心材料としてすべての単体テストを実行しているのか、もっと速くできないか、すべて実行する必要は本当にあるのか。そうした会話を通じて、「そもそも何のためにこれをやっているのか?」という重要な問いに何度か立ち返ることができました。
自分たちのプロダクトにとって本当に大事なことは何か。逆に、何をトレードオフとして選ばないのか、あるいは優先度を下げられるのか。そうした視点の重要性に改めて気付くことができました。
例えば、より速くPRをマージしたいのであれば、変更の影響範囲に絞ってテストを実行し、夜間にすべてのテストを実行するという選択肢があります。逆に、速さよりもデグレの早期検知を重視するのであれば、毎回のPRですべてのテストを実行する判断になるかもしれません。
目の前の作業だけに没頭するのではなく、時折立ち止まって目的を見直す姿勢が大事なのだと改めて感じました。
振り返り
CfP採択の結果連絡が来た時は、非常に嬉しかったです。
採択されたことが信じられず、社内の方にも本当に採択されたのか確認を取ったほどでした。
登壇直前までかなりバタバタしており、とても緊張していましたが、何名かの同僚が来てくれており非常に心強かったです。
登壇直後、次に発表される方からの質問や廊下での立ち話、懇親会での会話など、様々な場面で社外の方と交流することができました。「E2EやAPIテストなど他のテストとの役割分担はどうしてる?」「コーディングエージェントにテストをうまく書かせる工夫は?」「開発組織で取り組んでいる工夫は?」など、話題は多岐にわたり、どれもとても楽しい時間でした。
当初の想定どおり、たくさんの方と交流でき、そこで得たものを今後の業務に活かしていきたいと思います。
今後もこうした登壇の機会があれば、ぜひ続けていきたいです。
登壇者・参加者・企画・運営の皆さま、素敵な場をつくっていただき本当にありがとうございました!