ディスカッション (11件)
結局のところ、競争優位性の源泉(いわゆる「堀」)となるのは、常にドメイン知識だ。どれだけ高度な技術を習得していても、そのビジネスや業界が抱える課題を深く理解していなければ、本当の意味で価値のあるプロダクトを生み出すことは難しい。
ドメイン知識だけじゃないよ。昔から難しいのはマーケティング、流通、リスクへの許容度、モチベーション、やり抜く力、そして忍耐力なんだ。これといった「堀」がなくても作るのが簡単で、なおかつ何億円も稼ぐビジネスはいくらでもある。ケバブ屋、水筒、理髪店、引越し業者とかね。
最近体験したすごくいい例があるよ。釣り船に乗ったとき、自分が開発している無料アプリ(https://oceanconnect.ca )が仕事に役立つかもしれないと思って船長に見せてみたんだ。俺は海で働く人がどうやって海洋データを使ってるのか全然知らないし、何を知りたがっているのか、なぜそれが必要なのかもよく分かってなかった。だから、データの使い方やどう活用できるかについて、彼から怒涛のように質問と情報が飛んできたときは圧倒されたよ。でも、その視点を知れたのは最高にクールで刺激的だった。モデルというのは、それが抽象化しているシステムそのものとは別物だってことを改めて思い知らされたね。それを作るための知識と、それを使うための知識は、ほぼ無関係なんだ。船長は海上でどう気象データを使うかについて、信じられないほどの知識を持っていた。ある意味、デジタルデータとしてどう表現されるかは理解していなくても、彼の方がデータについて詳しいし、もし彼がプログラミングできたら、彼らのような人たちにとってずっと便利なアプリを作れるはずだ。彼らのような現場のプロこそ、もし自分のアイデアを画面に落とし込めるなら、LLMを使ってすごいことができるんじゃないかって思った。資金ができたら、いつか現場の声を毎日聞いて製品を磨き上げたいね。ドメイン知識っていうのは極めて専門性が高いもので、数十年の経験がある人じゃないと絶対にわからないようなことがたくさんあるんだ。
この記事で言われているソフトウェアジェネラリストだって、ドメイン知識を持ってるよ。ソフトウェアというドメインのね。今どき優秀なジェネラリストエンジニアなら、AIから逃げるために適当なドメインに飛び移ったりはしない。ソフトウェアこそが彼らのドメインなんだ。それが拡大し、変化していく中で、そこに留まり続けるのさ。
友達に電気エンジニアがいて、最近FIDEのチェスレーティングが2000を超えたんだ。30年やってて高校からチェス部だったようなやつさ。大学でマイクロコントローラーを扱うときに少しプログラミングも学んでる。俺はインフラや管理系の何でも屋で、コンピュータサイエンスの学位もあって30年の趣味プログラマーだけど、Lichessのレーティングは調子が良くても1000くらい。試しにチェスボット対決(AIを使って何でもありのオープンな環境)をやったら俺が完勝したけど、リアルなボードでの勝負なら20年で2回しか勝ったことがない。彼はリアルならランダムな対戦相手の99%に勝つけど、俺はせいぜい20%くらいだろう。何を言いたいのかよくわからないけど、もしかしてドメイン知識がすべてじゃない時代になったのか?それともドメインそのものがシフトしたのか?
最近「バイブコーディング(感覚的なコーディング)」で大部分が作られたアプリをレビューしたんだけど、持ち主は「ほぼ完成でリリース間近だからちょっと見てほしい」って言ってた。中身を見たらデータベース設計はめちゃくちゃ。動く機能もあれば動かないのもある。なぜ壊れているのかを説明したけど、元記事の通り、やっぱり彼はドメインの専門家なんだよね。俺自身、先月だけで数十億トークンは使ったし、ツールはすごい速さで進化してる。でも、ドメインの専門家にAIを渡せばソフトウェアエンジニアが不要になるってわけじゃない。専門家はAIを使ってソフトを作れるし、エンジニアはAIを使ってドメインを学ぶことができる。どちらも異なる専門性を持ち寄るのが大事なんだ。
みんなが「個人レベルでAIをどう活用するか誰もわかっていない」って認めるまで、あとどれくらい御託を並べなきゃいけないんだ?最初は「優秀な開発者になってAIの使い方を学べ」で、次は「アーキテクチャ設計能力だ」とか、その次は「センスが重要」だなんて言われて、今度は「ドメイン知識がすべて」ときた。AIが安定して予測可能に進化するか、停滞するようになるまでは、こういう議論はどれも無意味だし、大抵は的外れだろうね。
私はアナリストとして働いてるけど、グループの約2割は強力なエンジニアリングスキルを持ったアナリストで、残りは伝統的なアナリストやドメイン専門家なんだ。ここ1年で、非エンジニアのアナリストたちが開発の泥臭い部分をAIモデルに任せることで、社内ツールを開発する生産性が格段に上がったよ。それまでは、ほぼ全てがTableauで作られてたんだ。非エンジニアが動くツールを作るにはそれが一番手軽だったからね。つい先日も、あるアナリストがTableauのレポートをより柔軟なアプリに移植したツールを発表したよ。
エージェント型ツールは片方の道を崩壊させたが、もう片方はそうではない。エンジニアの強みだった『ドメインモデルを動くコードに変換する能力』は安価になった。だが、『何が正しい状態かを知っている』というドメイン専門家の強みは、まだ安くなっていない。まだね。 AIがもっと仮想的な人間のような存在になって、ドメイン専門家が現実の人を教えるのと同じようにAIを教育できるようになるまでは、今の議論は結論出ないよ。現時点では、エージェントコーディングは単純なアプリを作る時にエンジニアを不要にするだけ。アプリが複雑になれば、結局は専門家がエンジニアになるか、エンジニアを雇う必要がある。
結局、重要なのはコードじゃないんだ。VCやプライベートエクイティ向けに5年間ソフトを作ってきて、このブログ記事にはすごく共感する。コードを書くのは仕事の中で一番簡単な部分で、顧客が求めている金融工学や細かなニーズを理解するほうがずっと難しい。いつも冗談で「シニアレベルのファンド会計士を雇ってプログラミングを教える方がいい」と言ってるんだけど、そんな人材はどこにもいないのが問題なんだ。エンジニアにファンド会計の細かいニュアンスを理解させてソフトを作れるようにさせるのは、本当に至難の業だよ。
何千もの給与計算を調整した人の暗黙知を含むスキルファイルなんて存在しない。その人は、すぐに壊れないような堅牢な自動化を組むスキルはゼロだ。それに、AIエージェントが「いいですか、あなたの要件は矛盾しています。これとこれを考慮すると両立は不可能です」と指摘してくれるものにもまだ出会ったことがない。AIというおべっか使いは、ドメイン専門家を喜ばせようと必死になって、何でもイエスマンになるだけだ。前提条件を再評価させるより、専門家の言いなりになることばかり考えているよ。