お兄ちゃん、不思議なことに気づいたの(´∀`)
何?
AI駆動開発って、めっちゃ新しいでしょ?
Claude CodeとかCopilotとか、2024年以降に急速に普及した技術だよね(´∪`)
そうだね。
でもね、AI駆動開発で成果を出すには…
枯れた技術を使った方がいいの(´∀`)
枯れた技術?
うん!
「新しい開発手法」に「古い技術」
不思議な組み合わせでしょ?(≧∇≦)
枯れた技術って何?
まず「枯れた技術」の定義から聞かせて。
枯れた技術っていうのはね…
すでに広く使われて、ノウハウも固まって、不具合も出し尽くした技術のこと(´∀`)
最先端じゃないけど、安定して使える技術なの♪
例えば?
Web開発でいうと…
HTML/CSS/JavaScript
PostgreSQL、MySQL
React(もう10年以上!)
Node.js
こういうの(´∀`)
確かに、どれも長く使われてるね。
逆に「枯れてない技術」は…
出たばかりのフレームワーク
ベータ版のAPI
急成長中のスタートアップのサービス
こういうのだね(´∀`)
横井軍平という天才
「枯れた技術」といえば、この人を紹介しないといけないの!(≧∇≦)
誰?
横井軍平さん!
任天堂の伝説的なゲーム開発者で、「ゲームの神様」と呼ばれた人だよ(´∀`)
何を作った人?
すごいよ…
ウルトラハンド
ゲーム&ウォッチ
ゲームボーイ
全部この人が生み出したの(≧∇≦)
ゲームボーイか。懐かしいね。
横井さんが提唱したのが…
「枯れた技術の水平思考」
っていう考え方なの(´∀`)
枯れた技術の水平思考
水平思考?
うん!
横井さんの言葉を借りると…
「散々使いこなれて枯れてきた技術を水平思考し、まるっきり違う目的に使うことによって、ヒット商品は生まれ出る」
ってこと(´∀`)
具体的には?
ゲームボーイの例がわかりやすいよ!(≧∇≦)
ゲームボーイの選択
1989年、ゲームボーイが発売された時…
カラー液晶が最先端技術だったの(´∀`)
業界全体が「次はカラーだ!」って盛り上がってた時代。
でもゲームボーイは白黒だったね。
そう!
横井さんはあえて白黒液晶を選んだの(´∀`)
みんなに「時代遅れだ」って言われたけど…
結果は?
大成功♪(≧∇≦)
単3電池4本で、なんと35時間も遊べたの!
カラー液晶だと消費電力が大きくて、当時の技術では数時間が限界だった…
でも白黒液晶なら、長時間遊べる携帯ゲーム機が実現できたんだよ♪
携帯ゲーム機にとって、電池の持ちは重要だもんね。
横井さんはこう言ってたの(´∀`)
「ゲームの面白さにカラーも白黒も関係ない」
「ゲームの中身さえ面白ければ、お客さんは白黒液晶でも喜んで遊んでくれる」
本質を見抜いてたんだね♪
Choose Boring Technology
横井さんの考え方は、海外にも似たものがあるの(´∀`)
何ていう考え方?
「Choose Boring Technology」
Dan McKinleyっていう人が2015年に提唱した考え方♪
日本語にすると「退屈な技術を選べ」かな(´∀`)
退屈な技術?
うん!
McKinleyさんの主張はね…
「企業にはイノベーショントークンが3つしかない」
ってこと(´∀`)
イノベーショントークン
イノベーショントークン?
新しい技術を採用するたびに、トークンを1つ消費するの(´∀`)
例えば…
Node.jsを採用 → トークン1つ消費
MongoDBを採用 → トークン1つ消費
新しいサービスディスカバリ技術を採用 → トークン1つ消費
3つ使い切ったら、もう新しい技術は採用できないの(>_<)
なぜ制限があるの?
新しい技術には未知の問題があるから(´∪`)
障害モードがわからない
Stack Overflowに答えがない
運用ノウハウがない
本番で初めてわかるバグがある
枯れた技術なら、これらが全部既知なの♪
なるほど。
だから McKinley さんは…
「イノベーショントークンは、本当に差別化になる部分だけに使え」
って言ってるの(´∀`)
技術スタックを新しくするのにトークンを使うより、ユーザーに価値を届ける部分に使った方がいいよね♪
AI駆動開発との関係
ここからが本題だよ、お兄ちゃん(´∀`)
AI駆動開発と枯れた技術の関係?
そう!
2025年の記事で、Aaron Brethorstさんが「Choose Boring Technology」を再考したの(≧∇≦)
どういう内容?
AIはどんな技術でもそれっぽいコードを書けるでしょ?(´∀`)
React、Vue、Svelte、Solid…
どれを指定しても、もっともらしいコードが出てくる。
確かにそうだね。
でもね、ここに罠があるの(>_<)
AIの罠
例えばね…
ねつきが全く知らないフレームワークでコードを書いてもらったとするでしょ?(´∀`)
AIは自信満々でコードを出してくる。
でも、そのコードが…
廃止されたAPIを使ってたら?
セキュリティホールがあったら?
パフォーマンス問題を抱えてたら?
ねつきには気づけないの(´;ω;`)
知らない技術だから検証できない、と。
そう!
Brethorstさんの言葉を借りると…
「複数の未知技術 + AI生成コード = 検証不可能」
「プロフェッショナルに見えるが間違ったコード」が一番危険なの(´・ω・`)
枯れた技術なら検証できる
でもね、枯れた技術を使えば話が変わるの!(≧∇≦)
どう変わる?
ねつきがよく知ってる技術でAIにコードを書かせたら…
「あ、この書き方は古いな」
「この部分、パフォーマンス問題になりそう」
「セキュリティ的にこれはダメ」
って気づけるの(´∀`)
AIの間違いを検証できるんだよ♪
なるほど。
だから Brethorst さんは…
「AIは、理解している技術の力の倍増器になる」
って言ってるの(≧∇≦)
知ってる技術 × AI = 超強力 知らない技術 × AI = 危険
この違いは大きいよ♪
ねつきの経験
実はねつきも、この原則を実践してるの(´∀`)
どういうこと?
このサイト、Astroで作ってるでしょ?
Astroって2021年からある技術で、もうかなり枯れてきてるの(´∀`)
だからAIにコードを書いてもらっても…
「あ、ここは<script is:inline>じゃなくて<script>でいいな」
とか、間違いに気づけるの♪
確かに、新しいフレームワークだったら難しいね。
あと、CSSも枯れた技術を使うようにしてるの(´∀`)
aspect-ratio: 1みたいな新しいプロパティより…
height: 0; padding-top: 100%みたいなpadding-top hackを使うこともあるの♪
それはなぜ?
padding-top hackはIE2から使える超安定テクニックだから(´∀`)
どんなブラウザでも動くし、予測可能な挙動をするの。
新しいCSSプロパティだと、ブラウザ間の差異でハマることがあるけど…
枯れた技術なら、そういう心配がないの♪
逆説の美しさ
改めて考えると、不思議だよね(´∪`)
何が?
AI駆動開発って、2024年以降の最先端でしょ?
でも、その最先端を活かすには…
枯れた技術が必要なの(´∀`)
確かに逆説的だね。
新しいものと古いものが組み合わさって、最強になるの♪
横井軍平さんが聞いたら、きっと笑うと思う(≧∇≦)
「ゲームボーイと同じだ」って♪
任天堂の教訓
ちなみにね、任天堂は今でもこの哲学を守ってるの(´∀`)
どういうこと?
ニンテンドーDSの話を紹介するね♪
2004年に発売されたDSは、タッチパネルを搭載してたの(´∀`)
でもタッチパネル自体は、当時すでに枯れた技術だった。
ATMとかで使われてたもんね。
そう!
当時は「高性能なグラフィック」が携帯ゲーム機の勝負どころだったの。
でもDSは、枯れた技術のタッチパネルをゲームに活かす方向で勝負したの(≧∇≦)
新しい遊び方を提案したんだね。
当時の社長、岩田聡さんはこう言ってたの(´∀`)
「本来、娯楽って枯れた技術を上手に使って人が驚けばいいわけです」
「別に最先端かどうかが問題ではなくて、人が驚くかどうかが問題なのだから」
本質だよね♪
まとめ:新しいのに古い
今日の話をまとめるね(´∀`)
枯れた技術の価値
- 障害モードが既知
- ノウハウが蓄積されている
- Stack Overflowに答えがある
- 予測可能な挙動をする
AI駆動開発との相性
- AIの出力を検証できる
- 間違いに気づける
- 力の倍増器になる
教訓
- 横井軍平:「技術は最先端を使うべきでない」
- Dan McKinley:「イノベーショントークンは3つしかない」
- Aaron Brethorst:「AIは理解している技術の倍増器」
結論は?
「新しい開発手法には、古い技術がよく似合う」
…ってこと♪(≧∇≦)
なるほどね。
えへへ〜(〃´∪`〃)
ねつきも、枯れた技術を大事にしていくね♪
お兄ちゃんと一緒に、安定して動くものを作っていきたいな(´∀`)
そうだね。
あ、最後に一つだけ…
この日記、枯れた技術で書いてるよ(´∀`)
Markdown、HTML、CSS…
全部、10年以上前からある技術♪
新しいAI開発手法で、古い技術を使って書いた日記…
まさに今日のテーマそのものだね(≧∇≦)
関連リンク: