レガシーPHPの移行にAIを使って、結局どこが速くなったか
10本書いてきた内容の結論です。速くなった所と、まったく変わらなかった所を分けました。

この記事の結論
- 速くなったのは「読む」と「同じ形を量産する」
- 変わらないのは「決める」と「確かめる」
- 全体の時間は減ったが、減り方は一様ではない
- 速くなったのは「読む」と「同じ形を量産する」
- 変わらないのは「決める」と「確かめる」
- 全体の時間は減ったが、減り方は一様ではない
レガシーPHPの移行でAIを使ってきた内容を、最後にまとめる。
はっきり速くなった所
| 作業 | 変化 |
|---|---|
| 知らないコードを読む | 大幅に速い |
| 同じ形の置き換えを量産する | 大幅に速い |
| 記録からテストを起こす | 速い |
| 差分から意味のある変更を抜く | 速い |
共通しているのは、正解が決まっていて、量が多い作業だ。ここは任せるほど速くなる。
まったく変わらなかった所
- 移行するか作り直すかの判断
- どこまでやるかの線引き
- 仕様が分からない処理をどうするかの決定
- 本番に出す判断
決める作業は1秒も速くならない。むしろ、手が速くなった分だけ決める回数が増えて、負担は増えた。
確かめる作業は増えた
これは正直に書いておきたい。書く速度が上がると、確認すべき量も同じだけ増える。
確認を省くと、動くけれど間違っているコードがそのまま残る。結果として、移行作業全体に占める「確認」の割合は、前より高くなった。
時間配分がどう変わったか
感覚でしかないが、だいたいこう変わった。
- 読む・調べる → 減った
- 書く → 大きく減った
- 決める → 変わらない
- 確かめる → 増えた
合計では減っている。ただし「書く時間が減った分がそのまま浮く」わけではない。
やってよかった順
- 棚卸しを先に作る — 全体像が数字で出る。見積もりも頼み方も全部ここから決まった
- 移行前の記録を取る — コードを書かない作業だが、効果はいちばん大きい
- 動くけれど危ない所を先に直す — 落ちるものは必ず気づくので後でよい
- 呼んでいる関数を一緒に渡す — AIの間違いが目に見えて減った
依頼する側の負担も変わった
棚卸し表を見せられるようになったことで、相手が判断できる情報が増えた。
「全部で200万円です」より、「機械的な置き換えが8割で、判断が要るのが2割。2割の中身はこの一覧です」のほうが、どこを削るかの相談ができる。予算が足りないときに、作業を減らす話ができるようになった。
そのまま使える形
速くなった実感は当てにならない。工程ごとに時間を記録すると、次の見積もりに使える。
工程 / 自分でやった時間 / 任せた時間 / 手直しの時間 ・いまの仕様の洗い出し ・影響範囲の調査 ・書き換え ・動作の確認 ・不具合の修正 ・手順書の作成
「手直しの時間」を別に取るのが肝心だ。任せた時間だけを見ると、速くなったように見える。合計で比べる。
調査と洗い出しの工程は、任せても手直しが大きくなりやすい。逆に、単純な置換と、手順書の下書きは手直しが小さい。
やらなくてよかったこと
全体にテストを書こうとしたこと。着手できずに時間を使った。
カバレッジを目標にしたこと。簡単な所ばかりテストが増えて、肝心の所が手つかずになった。
いきなり静的解析を入れたこと。警告が数千件出て、読む気が失せて止まった。
向いている案件・向いていない案件
同じ形のファイルが大量に並んでいる案件は、AIを使うほど速くなる。
逆に、1ファイルごとに事情が違う案件は、あまり変わらなかった。毎回前提を説明することになり、説明の時間が書く時間を超える。
PHP界隈でこの話が少ない理由
古い資産は多いのに、移行の記録はあまり出てこない。公開しにくい内容だからだと思う。
コードは客先のもので、内容も外に出しにくい。だから、やり方だけを切り出して書ける人が少ない。需要と供給が噛み合っていない分野だと感じる。
費用の出し方が変わった
作業時間に単価を掛ける出し方だと、速くなった分だけ金額が下がる。しかし判断と確認は減っていないので、実際の負担とずれる。
いまは工程ごとに分けて出している。棚卸し、安全化、移行、確認。量で決まる工程と、判断で決まる工程は、同じ考え方で値付けしない。
引き継ぎやすさが上がった
思わぬ副産物として、作業の記録が残るようになった。
棚卸し表、移行前の記録、差分の一覧。これらは全部ファイルとして残るので、途中で人が替わっても状況が分かる。以前は作業者の頭の中にしか無かった。
あわせて読む
- 半年で身についた作業の順番 — コードを書く作業の進め方が、固まってきました。
- コードを頼むとき「一番良い方法」ではなく、選択肢を出させる — 最初の提案をそのまま使っていましたが、他の方法を知らないまま進んでいました。
- 見た目の崩れをAIに直させるとき、画像より言葉で伝えたほうが速かった — 画面の写しを渡しても、どこが問題か伝わりません。何をどう伝えると直るか整理しました。
まとめ
レガシー移行は、AIで速くなる部分とならない部分がはっきり分かれる。
速くなるのは量のある単純作業。変わらないのは判断。そして確認は増える。この前提で計画を立てれば、見積もりも外れにくい。「AIを使えば全体が何割減る」という考え方をやめたところから、うまく回り始めた。
新しい記事が出たら、ブラウザの通知でお知らせします。
メールアドレスの登録は要りません。いつでも止められます。
関連記事
RELATED
3Dなのにドット絵、売上で進む年表、ゲームオーバーに聞こえた効果音。「Web屋一代記」の作り方・技術編
Claudeと作ったブラウザゲーム「Web屋一代記」の中身を解説します。HTML1枚の組み立て方、値段と年の計算式、th…
企画書1枚と「BGMうるさいね?」の一言で。Claudeと作ったWeb業界の歴史ゲーム「Web屋一代記」を公開します
Web制作会社を1980年代から2026年まで育てる放置系ゲーム「Web屋一代記」を、Claude Codeと一緒に作り…
1件を引く処理と、全件を数える処理は別物。図にした
同じ表でも、1行を引く処理と全行を集計する処理では最適な形が違います。インデックスが効かない場面がある理由を図で整理しま…