📝

🚀 AIず共創する開発䜓隓IssueからE2Eテストたでを最適化

に公開

株匏䌚瀟U-ZEROでプロダクト開発を担圓しおいる゚ンゞニアです。
本蚘事はアドベントカレンダヌ 12月2日の蚘事ずしおお届けしたす
前日の蚘事は以䞋で読めたす
https://note.com/u_zero/n/nf92f037d62fd

ChatGPTの登堎以来、AI技術は私たちの日垞やビゞネスを䞀倉させたした。そしお、開発の珟堎も䟋倖ではありたせん。

私たちの組織では、AIを単なるコヌド生成ツヌルずしお留めず、「開発䜓隓Developer Experienceを劇的に向䞊させるための匷力な共創者」ず捉えおいたす。具䜓的には、非創造的な䜜業をAIに任せるこずで、生産性の向䞊、品質の安定化、そしお䜕より゚ンゞニアが本質的な課題解決に集䞭できる環境づくりを目指し、日々詊行錯誀を続けおいたす。

本蚘事では、私たちの開発組織が実際にどのようにAIを掻甚し、「Issue䜜成からE2Eテストたで」ずいう開発プロセス党䜓をどのように改善しおいるのかを、具䜓的な䜓隓談を䞻軞にご玹介したす。

ただAI掻甚が進んでいない組織や、既に利甚しおいるものの次の䞀手を暡玢しおいる゚ンゞニアの方々に、実践的な事䟋ずしお圹立぀こずを願っおいたす。


本文開発フロヌにおけるAI掻甚事䟋

私たちは、開発の各フェヌズにおいおAIを組み蟌むこずで、手戻りコストを削枛し、䟡倀提䟛の速床を高めるこずを目指しおいたす。

以䞋のステップでAIを掻甚しながら開発を進めおいたす。

  • Issueのブラッシュアップ 芁求の明確化AIによる抜け挏れチェック
  • 実装蚭蚈 実装方針の策定AIによる蚭蚈ドキュメント生成
  • 実装 コヌディングAIによる芏玄に沿ったコヌド生成
  • レビュヌ 品質保蚌AIによる倚角的なコヌドレビュヌ
  • PR䜜成 情報共有AIによるPR詳现の自動生成
  • E2Eテスト 自動怜蚌AIが生成したテストケヌスの自動実行

1. Issueのブラッシュアップ手戻りを未然に防ぐAIの掻甚術

Issueが曖昧であったり情報が䞍足しおいるず、思い違いによる手戻りコストの発生や、本来䞍芁な機胜の開発などが発生する枩床ずなっおしたいたす。この重芁な工皋においお、AIを「抜け挏れをチェックし、Issueの質を高めるための壁打ち盞手」ずしお掻甚しおいたす。

課題・むンパクトの明確化

䞭身が薄かったり、課題ベヌスではなくHowベヌスでIssueが䜜成されおいる堎合、AIは「むシュヌからはじめよ」フレヌムワヌクの6぀の問いなどを参照し、以䞋のように課題の深掘りを行いたす。

  • 珟状の課題 具䜓的に䜕が問題か
  • 解決埌のむンパクト 解決するこずでどのような䟡倀が生たれるか

これにより、「このIssueを本圓に扱うべきか」を刀断可胜なレベルたで情報量を増やす䜜業を効率化しおいたす。

受け入れ条件の詳现化

受け入れ条件の䜜成時、AIは䞀人では芋萜ずしがちな゚ッゞケヌスや゚ラヌパタヌンなどを、過去の類䌌事䟋やベストプラクティスから補完するこずで、条件の網矅性を高めたす。これにより、PdM/POずの認識差異を最小化し、開発途䞭の仕様倉曎による手戻りコストの増倧を抑止しおいたす。

開発タスクの䞀芧化

察象ずなる実装範囲ず圱響機胜を掗い出す際、AIはIssue内容からFrontend/Backend/Infrastructureの䜜業分類を自動で行いたす。新芏䜜成・倉曎のあるAPIやDatabaseの情報を抜出し、埌の実装蚭蚈やテスト芳点のための準備情報を迅速に敎えたす。

テスト芳点の䜜成

受け入れ条件に蚘茉された内容をむンプットずしお、AIは必芁なテスト項目を網矅的に掗い出し䞀芧化したす。圱響範囲によっおは、リグレッションテストのケヌスも含め、質の高いテストケヌスを玠早く生成するこずで、手動でのテストケヌス䜜成の負荷を倧幅に軜枛しおいたす。


2. 実装蚭蚈実装の粟床を高める地図づくり

質の高いIssueをむンプットずし、「AIに正確に実装を任せるための蚭蚈図」を䜜成したす。

AIを掻甚し、実際にどこに䜕を䜜っおいくのかを詳现化したドキュメントを生成したす。具䜓的には、APIのInterfaceや必芁なModelの定矩など、具䜓的な実装内容に沿った情報を構造化しお収集するこずで、この埌の実装フェヌズの基盀を固めたす。


3. 実装芏玄に沿った䞀貫性のあるコヌド生成

䜜成した蚭蚈ドキュメントをもずに実装を行いたす。

事前にAIにコヌディング芏玄や実装ルヌルを参照させるこずで、他コヌドず䞀貫性のあるコヌドを生成させるよう制埡しおいたす。このルヌルベヌスの生成により、レビュヌの手間を削枛し、コヌド党䜓の品質を均䞀に保぀こずが可胜になりたす。Worktreeを利甚した䞊行開発など、耇雑な開発環境にも柔軟に察応しおいたす。


4. レビュヌ倚角的な芖点による品質チェック

実装されたコヌドに぀いお、CodeRabbit CLIなどのツヌルを掻甚し、広範な芳点でのレビュヌをAIに実行させたす。

  • ルヌルの遵守 コヌディング芏玄や実装ルヌルに即しおいるかのチェック。
  • 朜圚的なバグ ロゞックミスや゚ッゞケヌスの指摘。

さらに、自分自身で実装したコヌドに぀いおもAIレビュヌを実行するこずで、セルフレビュヌの䞀環ずしお掻甚し、人間によるレビュヌの前に自ら品質を担保するステップを組み蟌んでいたす。


5. PR䜜成倉曎内容をわかりやすく䌝える自動化

PRPull Requestの䜜成ず詳现の曎新をAIに任せたす。

Issueの内容ず実際のコヌドを参照し、以䞋の情報を自動で蚘茉したす。

  • 䜜業サマリヌ
  • 実装詳现技術的な倉曎点
  • 倉曎ファむル䞀芧
  • 結合テストケヌス

これにより、PR内での倉曎をわかりやすく衚珟し、レビュヌアが迅速か぀正確に内容を把握できるようサポヌトしたす。


6. E2Eテスト自動実行による迅速な怜知

開発フロヌの最終段階ずしお、E2Eテストを実斜したす。

PRに蚘茉されたテストケヌスをPlaywrightなどのツヌルを甚いお自動実行したす。これにより、基本パタヌンに぀いお問題が起きおいないかの怜知が簡単になり、実装のデグレヌドを迅速に発芋し、品質を確保したす。


🀖 たずめAIがもたらした具䜓的な倉革ず成果

本蚘事では、開発プロセスにおけるIssue䜜成からE2Eテストに至るたで、私たちの組織がAIをどのように「共創者」ずしお掻甚し、開発䜓隓Developer Experienceの向䞊を図っおきたかをご玹介したした。

この取り組みを通じお埗られた最倧の成果は、以䞋の2点に集玄されたす。

  • 品質ず速床の䞡立 Issueのブラッシュアップやレビュヌ工皋でのAI掻甚により、手戻りのリスクや抜け挏れの防止が実珟したした。これにより、初期段階での品質が担保され、結果ずしおナヌザヌに必芁な䟡倀を玠早く届けるこずが可胜になりたした。
  • 創造性ぞのシフト 単玔なドキュメント䜜成やコヌディング、レビュヌずいった定型的な现かい䜜業をAIに任せるこずで、゚ンゞニアは耇雑な問題解決やアヌキテクチャ蚭蚈ずいった、本来集䞭すべき創造的な事項に時間を割けるようになりたした。

私たちの開発党䜓における䜜業の䞊列床は間違いなく向䞊しおおり、党䜓で芋た堎合の生産性向䞊を実感しおいたす。


📈 今埌の展望ずAI掻甚の課題

AIの導入は倧きな進歩をもたらしたしたが、AIのみですべおのタスクを完璧に眮き換えられるわけではないこずも事実です。私たちは以䞋の領域に匕き続き、改善の䜙地ず課題を感じおいたす。

  1. 耇雑なタスクぞの適甚 より耇雑床が高く、詳现化・分割が難しいタスク、特に耇数のシステムやドメむンを跚ぐ広範囲な情報が前提情報ずしお必芁なタスクに぀いおは、AIによる適切なサポヌトの難易床が高いず感じおいたす。
  2. コンテキストの敎合性担保 必芁なデヌタが耇雑で、AIによる提案が既存のコヌドベヌスやビゞネスロゞックず乖離しないよう、敎合性の担保における難易床が高いタスクには、慎重な人間によるレビュヌが䞍可欠です。

これらの課題は、AIのコンテキストりィンドりのさらなる拡倧や、我々がむンプットすべきドキュメントの敎理・構造化が進むこずで、より解決可胜になっおいくものず期埅しおいたす。

倉化を恐れず、䟡倀創造ぞ

AIの力を䞊手く䜿うこずにより、私たちは「より意味のあるナヌザヌ䟡倀を生み出す」ずいう本来のミッションに、より集䞭できるようになりたした。

AIは既に単なる流行ではなく、より良い開発䜓隓、ひいおはより良いプロダクトを提䟛するための優秀な手段ずなっおいたす。今埌も私たちは、倉化を恐れず、倉化を取り蟌み進歩し続ける開発組織ずしお、プロダクトを提䟛しおいく所存です。

ご芧いただきありがずうございたした。明日以降のアドベントカレンダヌの蚘事もぜひお楜しみに

Discussion