2025-10-21

AIバイコーディングは、既に我々が10年以上前に通った道だ(オフショアリング昔話)

----

追記

「My Job Went To India」の改題改訂版が「情熱プログラマー」なんだ!ありがとう発注したわ。(たぶん達人プログラマー混同して読んだ気になって読んでないパターンだわ)

俺の悪文のせいで意図が伝わらなかったであろうブコメがあったので、要旨だけ書き直しておくな。

ただ忘れないで欲しいんだけど、TerraformメンテしてAWSとかGCPで立ち上げてサービス公開するまでの速度は、相見積取って稟議通して部材調達から入ってた時代に比べると爆速だけど、人間技術屋の需要は増えてる。

俺は、「マスタリングTCP/IP 入門編」を人間が読んで理解するのは古いよね、という時代にはならないと思ってる。

Slerが自前で手元で試すようになるから~ってのも懐疑的SIerメーカーが内製すると必ず子会社作って分離、ぼく発注者きみ受注者にしたがるので。これは技術じゃなくて感情とか経営問題

(ただし、Slerが7payみたいなことやらかすのでは?って疑問なら同意。たぶんそういう生成AIで俺たちでプロダクトなんか簡単に作れるじゃんよギークいらね(仕様バグあり)は一時は増えるだろうね)

追記ここまで

----

VibeCodingでIT技術者は不要になるのか?という話題が花盛りなのは理由があります

ギーク現場コードを書いていたい人)が分かる話からスーツ(人を集めたりお金を集めたり営業をする)が分かる話になってきたからです。

具体的に言うと、OpenAI社をはじめ続々とTDD(テスト駆動開発)でやってますみたいな、具体的な開発スタイルの話が出てきたから。

そうすると、現場の座組チョットワカルという強めの経営者が理解して判断し始めるんですね。

でもね、その道はもう15年も昔に我々は通り過ぎました。前回のブームと何が違うでしょうか?

オフショアリングは、ソフトウェア開発者インターンを全滅させる!

技術者なら電子機械も強電も弱電もお世話になったことのあるオーム社過去に出していた直球の本の話から

「My job went to India : オフショア時代ソフトウェア開発者サバイバルガイド」という書籍、何と発行年は2006年です。

かいつまんで話すと、インターネットが整備され、輸送コストほとんどかからないソフトウェア開発では、アメリカエンジニア給与の面でオフショアに歯が立たない、だって、1/10給与インドエンジニアは働くんだぜ?という本です。

そうした、価格競争力で負けるアメリカソフトウェアエンジニアは、如何にして今後サバイブすべきなのか、という本になっています

普通に面白いAIコーディング時代に通づるものがあるので復刊を希望したいところですが、まあ直球過ぎる題名を何とかしないと再販は無理でしょうな)

そして、JTCや外資わず過去オフショア開発経験された技術屋のみなさんははてブにも多く生息されているでしょう。

では、ジュニア開発者不要になりシニア開発者のみになって、いまのソフトウェア開発は主に安い給与で働いてくれるところに遠隔で作業してもらって、レビューだけすれば良い環境ですか?

そうはなっていません。なぜでしょうか。

コミュニケーションコストとは、数値化がしづらいだけで確かに存在しま

さて、今普通にXと連動する中古品売買プラットフォームを開発しようと思ったら、どうやってつくるでしょうか?

この文脈に埋め込まれたいくつもの情報「今」「普通」「連動」「中古品」「売買」「プラットフォーム」「開発」を解釈し、すり合わせ、未来運営者も含めた全員に伝えるためのコストが、コミュニケーションコストです。

そうなると、「ちょっと良い感じにラフでいいかプロトタイプ作って持ってきてよ」で話が通じるのは、受注者マインドがしっかりした日本受託開発現場の精鋭たちになるわけです。

テストケースだけを通過するように、内部テーブルを持たせた関数を大量に持ってこられてレビュー時に頭を抱えた経験が無いひとは、とても幸運なのです。

とは言え、これは何も文化の違いに起因するだけではありません。仕様とは、環境によって定まるものからです。

例えば、うるう年判定の関数は、1581年以前をエラーしますか?1873年以前をエラーしますか?(ヒント:明治六年)

そしてその仕様って、品質にどの程度影響しますか?

成功したすべてのプロダクトでは、最初テストケースを書くべきだった

テスト駆動開発、古い言い方で言えばテストファーストの考え方は、成功したすべてのプロダクトで例外なく、ただの一つの例外もなく、必ず最初から取り入れるべきだったものです。

品質最後に振りかける粉砂糖のようなフレーバーではなく、最初から設計に組み込むべきだからです。

ここに問題があります

ありとあらゆる趣味において、最初から良いものを使えば時間無駄にせずに済んだ、と言われるような初期投資の大切さが説かれます

果たして本当でしょうか?

そうです、その趣味にハマって生き残りサバイブした人から見れば、過去にその時点で投資をすべきだった、というのは正しいのです。

その趣味にハマれなかった人からすれば、少ない投資自分に合わないことが分かったという合理的選択であることと矛盾しません。

そのため、全ての失敗したプロダクトは、テストケースを書く時間プロダクトを作り上げて、さっさと世に問うべきだったわけです。

VibeCodingの境界線は、設計実装の不可分さに起因するが、それは組織構造に起因する

少し昔話をしますが、オフショア開発において重要なのはドキュメンテーションテストケース、それにレビューでした。

他の部署で失敗しつづけていたオフショア開発のやり方は、端的に言えば"教化"でした。

具体的には書けませんが、グッとお安い単価の国に出す仕事を、日本会社に出すのと同じようにすべく、相手会社メンバー教育して仕立て上げるブートキャンプの仕組みを作り上げていました。

発注側を変えずに済むように受注側を教育して、日本会社に出すのと同じように単価の安いところに出せたらお得ですよね?でもこれは必ず失敗します。

何故か。だって日本会社と同じように働けるようになったら、日本会社就職するじゃないですか。少なくとも価値は上がったんだから単価を上げるように交渉しますよね?

結局のところ、当初言われていたような劇的な節約にはつながらないわけです。それなら下手に転職されるよりも自前で現地工場でも立てて地元に貢献しつつ雇用を創出した方が喜ばれるし持続可能です。

小なりとも成果が上がった方法は、フィードバック相手ではなくドキュメントにした場合でした。

例えば先ほどの例で言えば、テストケースは通るが意図したコードにならなかったとき

普通はこういう意図コードを書くからテストケースを通るにしても、関数は次からこう書いて」というのが、相手に対するフィードバック

関数を書く前に、関数意図コメントで残して、レビュー時にはそれを見ましょう」というプロセスの修正が、ドキュメントへのフィードバック

こうすると、担当者退職していなくなっても、次の担当者はその方法を参考にすれば良いわけです。

これ、何かに似てませんか。現在AIコーディングベストプラクティスと呼ばれるものに非常によく似ているんです。

まりオフショア開発というのも、設計実装が分離できるという前提に立って動いていたんです。

そして、実装しながら設計しても問題ないとする場合、それは「技術的な問題」ではなく「組織構造」に起因します。

まりプロダクトの構造を分割して、オフショア開発側に設計実装とを委譲して、実装しながら設計を変えてもらうことが許容できるのは、契約責任分界点輸出入法規を含めた法務領域です。

我々が出来ることを相手が出来ないだろうと侮るのは傲慢です。

少なくとも当時、諸々をクリアにして相手側にプロダクトの一部を荒い設計と共に切り出して、コーディングしながら再設計してもらい、テストケースを完備したコードドキュメントを共に完成までもっていってもらったことは、大きな成果であったはずです。

(当時日本側と仕事をしたという実績があると大きな実力があるとみなされたと聞いたので、今はより良いところで良い仕事をされていると思います

なぜオフショア開発流行らなかったのか

ぼく発注あなた受注者という構造を変える気が無かったから。

(あと、コミュニケーションコスト輸出入の関連法規が複雑だから

少なくとも、納期までに契約たこれを納品してください、という枠組みの中では、実装作業だけ切り出すことはできない、というのが教訓として残ったはずです。

バイコーディングではなく)AIコーディングが主流になるとして起こること

少なくともあと数年、場合によっては10スパンで、日本ではほとんど変わらないと予想しています

これは技術の話ではなく組織構造や、もっと言えばお仕事の進め方と契約の話だからです。

そうは言ってもジュニアエンジニア簡単仕事が減って成長機会が失われているのは事実では?と思うかもしれませんが、そもそもの前提が誤っています

経験(弱経験)者を雇って戦力まで鍛え上げる必要があるなら、AI仕事渡してないでそのジュニアエンジニアやらせるべきなんです。

ジュニアエンジニアAIと両方にOJTさせて、その違いをレビューの場でフィードバックしてジュニアを育てるわけです。

もし、そんな時間は無いというなら、元々ジュニアエンジニアOJTで育てていたというのは幻想です。

(たまに、失敗が経験になるとして、会社に損害を与える方法ジュニアを"教育"しようとする人がいますが、商習慣的にも信義則違反ですし言語道断です)

シニアエンジニアだけで事足りるとしてジュニアエンジニアを雇わなかった企業は、シニアエンジニアが抜けてガタガタになります

これは中核エンジニアがゴッソリやめた会社が傾くなんて言う話で、昔からそうです。(たいてい、もっと人雇ってくれ待遇上げてくれみたいな悲鳴を圧殺した結果だったりします)

から、中堅がやれば手早い仕事新入社員やらせて鍛える、その代わり質は悪いし時間もかかるしフォロー必要だったわけでしょう。

AI時代が到来するとしても全く同じです。AIが出力するコードレビュー悲鳴上げてる場合じゃないんですよ。

レビューできるシニアエンジニアが足りなくなると予想されるなら、当然、ジュニアエンジニア雇ってレビューできるようにする必要があるんです。

そしてそれは、技術的な問題点ではなく、組織的・経営的な決断です。

最後に、なんで10年後は違うかもしれないのか

国産LLM開発の文脈でもそうなんですが、ハードウェア進歩無視して話をする方が多いのが気になります

現時点のコンピューターパワーは、10年後には手の届く価格になる可能性が十分高く、もっと言えば20年後には個人が所有する可能性すらあります

いまから20年前の2005年は、Youtube誕生した年です。その時に、誰もがいつも手元にビデオカメラを持ち、即座に動画世界に公開できるようになるとは思っていなかった頃です。

今もそうだと思いますが、ある分野で必要な性能にはもう十分という期待値があり、10年経てばある程度大きな会社部署単位現在最先端コーディングAIローカルで動くようになると想像するのは容易です。

そうなったときに、果たして営利企業が、エンジニアを育成するというコストを支払うかといわれると、疑問です。その時点で今後のリアルコスト比較対象可能になるので。

だって、筆耕担当者とか、清書担当者を雇わなくなった企業って、多いでしょう?

My job went to AI として、じゃあ残るものは何?というのはオーム社の本を読みましょう。再販しないかなあ。

蛇足

今後数年は変わらないでしょと書いたら今現在進行形で変わっとるわいと突っ込みが来そうなんで防衛的な意味で書いておくんですが、あなた過去数年間同じ仕事してたんすか?

仕事のやり方とか内容とか、言語とかライブラリとか、毎年のように変わってたでしょ。

レビュー比率が多くなったとか、コード書かなくなったとか、そういうの、たぶん管理職になった人が嘆いてたのと同じっすよね?

少なくとも、ジュニアエンジニアが低品質バイコーディング結果を寄越すようになってレビューが大変とか嘆くのなら、まともなコーディング規約一つ作れていない組織の脆弱さを嘆くのが先では?

手癖でバイコーディングしてヒットしたプロダクトに、あとから品質上げるように大工事するリファクタリングと言うよりリビルディング仕事って、別に今もありますよね?

散々テストケースを書かなくて良いプロダクトなんて無いという講演だけ聞きに行って、自分とこでテストケースが自動で走るようになって無いなら、そこが問題でしょ。

最先端企業が、ほとんど生成AIコーディングさせているから、あとは使う人間次第だって

  • AIにもできること・できないことがある。 いわゆるテンプレート的な設計であれば、AIで十分。 しかし、テンプレートがAIで作れるようになると、テンプレートを作れる人の価値がなくな...

  • プレイヤーに組織論の話は難しいよねってことであってるよね? いやはや本当にごもっともで草が枯れるわ

  • 定期的によくわからん理屈で人材焼き畑する業界ってあるよな。 IT、建設、流通、…etc.

  • 増田にはAIに詳しかったりIT企業に勤めている人が多いのに、どうしてスルーされているの????

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん