受託開発

システム改修のご依頼をいただきました Next.js/Laravel

先日、とある教育系の企業より、システム改修のご依頼をいただきました。

「過去に作ったシステムに色々と不備があり、改修して欲しい」というご依頼で。

お話を聞くと、

  • 当時の開発者とは連絡をとっていない
  • 起動したらエラーが多発する
  • メール送信でやけに時間がかかる
  • 定期的に処理が重くなる
  • スパゲッティコードで手が出せない
  • 仕様書などはない、コードのみ

などなど。

NDAなど契約を結ばせていただいた後、作業着手いたしました。

ステップ1 まずは現状分析

仕様書がなくコードのみということで、まずはコードから現状把握をする必要があります。

弊社ではReVive という仕組みを作っており、コード分析、リバースエンジニアリングを得意としておりますので、その仕組みを使いつつ、ClaudeCodeをサブとして使い、コード分析、現状の課題、改善点などを洗い出しました。

  • コード・・87,000行
  • 解析対象画面・・57画面
  • APIエンドポイント・・106本
  • 特定・分類したリスク・・83件(重大度 高23 / 中35 / 低25)
  • AI基盤が自動抽出した構造化知見・・296件(平均信頼度0.965)
  • 納品した解析ドキュメント・・35ファイル / 4, 425行 / 約57万文字

などなど。

かなり細かい内容なので、先方には抜粋したレポートを提出させていただき、対応継続することになりました。

ステップ2 徹底した環境整備

弊社では、コードを書く前に、徹底した環境整備を行います。

生成AIを活用するということで、どうしても出力にブレが起こるため、分厚いガードレールを何重にもしくイメージです。

  • Lint (複雑度、ネストなど)
  • 型チェック
  • 各種テスト(Unit, E2E, 境界、プロパティ、ミューテーションなど)
  • 仕様の概要版と詳細版の文章化
  • issue発行・マイルストーン整備
  • 敵対的レビュー
  • 共通化できそうな箇所の洗い出し

などをびっしり敷き詰めます。

あっという間にテスト数は1000以上になりますが、品質を担保するためには欠かせません。

ガードレールをしき、仕様の文章化を行い、現状を把握し、issueごとに1件ずつ慎重に対応すると。

段階を踏み、どの順番で整備し進めると後続に負荷がかからないかなどを、特に前半は慎重に進めます。

生成された文章やコードもチェックし、分析をかけながらコード理解を深めていくイメージです。

環境整備にも3日ほどかけ、あとは順番に進めるだけという状態まで持っていきます。

補足 追加対応も柔軟に

環境整備を行ったあと、どんどんと作業を進めるうちに、当初には伺うことができなかった要件などが出てきます。

先方もこちらも確認が足りていなかったり、忘れていたり、コードを読むだけではわからないことが出てくる、ということは往々にして起こります。

最初から全てを理解・把握できていればいいのですが、現実にはなかなか難しい。

今回の場合は、途中からバージョンアップ、パフォーマンス向上、スパゲティコードの紐解きなどもありましたが、影響度を並列エージェントで徹底チェックし、納期までには間に合うという見立てのもと、全てお受けさせていただくことになりました。

もしエージェントが使えないとなれば間に合わない工数・業務量だと感じます。

AIエージェントをフル活用したシステム改修

今回のような課題・問題は、たくさんの企業で起こり得ると感じています。

AI以前に書かれたコードしかり、AI以後に書かれたコードしかり。

エンジニアの単価もどんどん上がっている状況で、なかなか依頼がしづらいことも増えているかと。

弊社では、AIエージェントをフル活用させていただくという条件にはなりますが、

適正価格で、現状分析させていただき、パフォーマンス・セキュリティ・メンテナンス性向上などを実施させていただきます。

もちろん新規機能開発もお受けしております。

システム開発や既存システムの改修、リプレイスなどでお困りの際は、ぜひお気軽にご連絡くださいませ。

関連記事

お気軽にご相談ください

ご質問やご相談がございましたら、お気軽にお問い合わせください。

お問い合わせはこちら