Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20260723_大規模マイグレーションからみえた持続的な開発に必要なもの

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for hirohiso hirohiso
August 27, 2026

 20260723_大規模マイグレーションからみえた持続的な開発に必要なもの

AIで変わった開発速度のウラ側。大規模toCアプリの週1リリースプロセス【asken|Omiai】
https://asken.connpass.com/event/399321/]

で用いた登壇資料です。

Avatar for hirohiso

hirohiso

August 27, 2026

More Decks by hirohiso

Other Decks in Technology

Transcript

  1. 自己紹介 • 2024年度 asken入社 • あすけんのtoC / toB向けのバックエンド開発 • ◦

    コンシューマ向けアプリケーション開発 ◦ 健康経営向けサービス開発 ◦ 特定保健指導向けサービス開発 趣味 ◦ ランニング ◦ 競技プログラミング(A:▪ H:▪) © asken.inc 2
  2. AI開発の現状(生産性と品質) • 生産性・速度の劇的向上 ◦ AIエージェントの現場浸透 ◦ ハーネス(環境)の最適化 • 速度向上に伴う「品質」の課題 ◦

    「欠陥率が不変」でもバグ数は激増 AIの特性(得意な事 / 困難な事)を把握し、 今まで以上の品質を担保する仕組みづくりが必須 © asken.inc 4
  3. マイグレーション対象について • • • • • • asken内部で古くから動作しているアプリケーション 目的は言語/FWのメジャーバージョン更新 動的型付け言語

    API / 画面など一通り含む テストコードは一部あり AIを活用して短期間での移行させる方針にかじきり © asken.inc 6
  4. 移行の進め方 • • 以下のようなプロセスでAPIごとに移行を実施 AIスキルを活用してAIメインで移行を実施 マイグレー ション PRレビュー 画面/API テスト

    スキル実行のみ スキル実行 + PR 概要の証跡確認 スキル実行 / 画面の操作 レビュー観点に基づいて レビュー 新旧コードを調査してテ ストパタン作成/API実行 /結果報告 既存コード調査 マイグレ方針参照 API一括コード移植 デプロイ リンタ/ 動作確認 PR作成 © asken.inc 7
  5. ① 暗黙の契約は見抜けない • • • 処理が正しく動作するために呼び出し先と呼び出し元が共有すべき前提 前提がコード上に表現されていないもの 人の記憶や過去に実装された挙動でしか担保されていないもの 実際に発生した例 IDを払い出していた

    がなくなる よし通れ Dateです String 三三 実行時の型が異なる FW Class - hoge() HTML部品 FW Base Class - hoge() JS 内部的に払い出され たidを前提とした処 理 FWの明示していない仕様に依存 © asken.inc アプリ側でhoge()を上書きしてい たがAIは見落としてFWのhoge() を呼び出すように移植 オーバロード / フック 11
  6. ② 指示に完全には従わない • N -1 問題 ◦ N個中対応したのがN -1個 (微妙に漏れる)

    • バグ対策をルール化しても再発 ◦ ◦ Lost In The Middle / Context Rotにより作業の精度低下 /指示の見逃しが発生 再発防止をスキルやルールだけでは徹底できず自然言語での指示の限界 ? Lost In The Middle コンテキスト中の重要な情報の見逃し Context Rot コンテキスト長が増えることによる精度の低下 © asken.inc 12
  7. 契約の明示 • • Design By Contract 型 / スキーマ の徹底

    ◦ ◦ • 言語のサポート Database / キャッシュなどで管理されるデータもスキーマ管理 副作用の分離/局所化 スキーマ定義を明示する 具体例 どのような型が返却される か?nullは返却されないのか nullが返却されることを 明示 { hoge: xxx} find(id){} idには何を渡してよいの か User? find(UserId id){} 専用の型を明示 OpenAPI © asken.inc 14
  8. 機械的な検知と作業の保証 • • Lint / 静的解析 / 回帰テストなどによる保証 レビュー作業も抜け漏れがないかを機械的に検知する仕組みづくり 具体例

    作業結果をJSONの一 覧として添付 コードをgrepして JSONの一覧と突合 JSON 作業証跡による機械的な担保 © asken.inc 15