AIエージェントに頼りすぎて自分の頭を使えなくなってきている
AIエージェントに指示を出してソースコードを書いてもらい、それがちゃんと期待通り動いているか確認までしてもらう。これは未来の予想ではなく現時点で十分実用的になっている。自分はCursorというAIエディタを使っているが、遅かれ早かれ似たようなサービスが各分野に登場する。マーケのAI、セールスのAI、デザインのAI。実装する速度は本当に10倍早くなるのでアイデアに溢れる人には良い時代かもしれない。思い浮かべたもの、自分が欲しいものを簡単に作れるようになる。プログラミング自体が好きだった人には物足りない時代かもしれない。チャットでAIに指示を出すだけというのは、これまでのソフトウェアエンジニアの体験とあまりに違う。
さて、現時点ではまだまだ人もコードを書く状況だが、開発していてエラーになったらAIに聞くようにしている。エラーの理由、どう修正すれば良いかの方針決め。ほとんどの場合はすぐに解決できるが、週末コードを書いていると穴にハマり、まったく前進できなくなってしまった。やりたいことをAIに伝えても修正できない。AIはネットを調べて無理やり修正しようとするが、それも間違っていて、なんとか動かそうと別の策を試して、それも違っていて…という感じ。結局2時間ほど試行錯誤したが解決できなかった。
今時点ではこういうことは普通にある。怖いのはAIの能力不足ではなく自分の方で、エラーになるのに何度も似たような指示を出してうまく行かないか見守るようになってしまった。以前であれば自分で解決するしかないので原因を分析して、考えられるパターンを出して、ひとつずつ試すことをしていたはず。複雑なプロジェクトで起きるエラーは理由が分かりにくい。シンプルな別プロジェクトを作り、そこで問題がありそうな処理をひとつずつ移植して動くかを確かめ、原因を追求するのがよくある手順だったはずだ。
しかし今では、この別プロジェクトを作って試す工程が面倒くさく感じてしまう。AIへの聞き方を変えたり情報を追加で与えたらすぐ出来そうだな、という目先の誘惑に抗えない。トータルでは実装の速度はかなりあがってるのだが、自分の頭でいうと深い思考ができなくなってるかもな、と実感する機会となった。
ちなみにこのエラーは翌日に解決した。シンプルな別プロジェクトで試したら30分くらいで解決した。AIが解決できなかったのはこのエラーについての情報がインターネット上にあまりないことが影響してそうだ。AIの性能はどんどん上がっているが、人間が質の高い指示を出せるかどうかも生み出されるものに影響する。
本当に興味のある本しか読めない
友人が勧めてくれた本を読んでいるが、なかなかページが進まない。最近あまり読めてなかったので読書体力が落ちたかな?などと思っていて、今日ふと別の積読本に手を出すとスラスラ読めた。けっこう太めの本だがもう半分くらい読んでいる。この違いは何かというと、その本のテーマに自分が本当に興味を持っているかどうかだと思う。
小説よりはエッセイや実用書をよく読んでいるが、読書しててアガるのは「この感情や状況をよくぞ言語化してくれた」という瞬間。そのためにはまず自分で試し、うまくいかないながらも試行錯誤しておく必要がある。そうして自分のなかで曖昧な部分ができていき、それが見事に言語化されたときに感動する。自分が門外漢だったり、ちょっと興味がある程度ではあまり深い読書体験にならない(自分は)。
世の中広くて知らないことばかりである。そして新しいことを知るのは面白い。好奇心のままに色々手を出して関心のエリアを広げ、困ったり迷ったら本から先人の知恵を分けてもらう流れが定着すれば人生で良いサイクルが回り始める。積読は恐れなくていい。いつかその本を読むタイミングが来るので、そのときに味わって読めば良い。逆に読みかけの本も、自分に合わないと思えばすぐにやめて違う本を読み出してよい。ブックカバーをつけて大事に読んでもいいしペンを持って書き込みながら読んでもよい。読書は自由で、自分のためになればどんな形でも許される。
ナンバーワン以外は覚えてもらえない、という言説
ナンバーワン以外は覚えてもらえないという話がある。日本で一番高い山は富士山、では二番目に高い山は?と聞かれると分からない。一位は覚えてもらいやすく、商品を選ぶときに最初に思い出されると選ばれやすく有利であるというもの。ただ競争の激しい分野で一位になるのは難しい。そこで、自分たちが一位になれる分野を作る。コーヒーでは無理でもデカフェ専門のコーヒーショップなら一位になれるかもしれない。カメラアプリでは無理でも女子向けのデコれるカメラアプリならナンバーワンになれるかもしれない。こんな感じで分野を細分化し、自分で有利なフィールドを作り出す。
こういった類の話はかなり昔から言われているが、最近はこの細分化がより細かくなっている気がする。月9のドラマをみんなで見るのではなく、YouTubeで好きなチャンネルを各々が見る。興味や嗜好の細分化により、人の好きなものはどんどん多様になっている(元々多様だったのが可視化された、が近いかもしれない)。特定領域ではナンバーワンになりやすくなっているが、細かすぎると母数が少なすぎて事業として成立しないのでバランスが難しい。ニッチではあるけどある程度それに興味を持つ人がいるポイントを狙う。そしてナンバーワンになれるだけの価値あるものを作ることが最初に必要となる。
大学の就活時代、どこかの会社の人が冒頭の富士山の例を使っていた。会場の学生に対して「じゃあ二番目に高い山を分かる人はいる?」と聞いたところ、最前列の学生がまっすぐ手を挙げて「北岳です」と言った。彼は山岳部だったらしい。その会社の方は予定通りに進められず戸惑っており、その様子がなんだか面白くて印象に残っている。その分野が好きな人であれば、一番目以外も覚えている。
AIを使った開発が楽しすぎる
生成AIの登場でソフトウェア開発は進化したが、最近さらにもう一段階あがったのを感じている。
まずモデルの賢さがあがり、何かを依頼して変になることがかなり減った。もちろんすべてオールOKというわけではないが、そもそも人間相手でもコミュニケーションに完璧はなく、勘違いやすれ違いは常にある。それを考えるとまぁこれは難しいし間違えるのも分かるな、と納得できるくらいには賢くなった。さらにAIエージェント(自律的に考えて手を動かしてくれる)の改善も進み、タスクを依頼したら設計・実装・動作確認まで一気通貫でやってくれるので上手くいったときの効果がデカい。GitHub Copilotというコード入力アシストが出たときに革命が起こったと感じたが、それくらい日常生活に与えるインパクトが大きい。
ここ数日の個人開発ではやってることはほぼAIとのチャットで、指示出して作ってもらったものを確認をする時間の方が長いと思う。もう少し進化したらスマホで指示して、あとはコーヒーでも飲んでたら成果物ができる世界になる。自動洗濯乾燥機を買ったとき、洗う・洗い終わりを待つ・干す・取り込むの4つの工程がひとつに集約されたことに感動したが、それが仕事にも訪れた感じ。あんまり書いているとプロ驚き屋のようになってしまうが、節目に立ち会えているという感覚を覚えたのでここに書いておきたい。
タスクを細かく分割する
調べ物でもプログラミングでも巨大なタスクに一気に立ち向かうのは分が悪い。いきなり着手せずに小さなステップに分け、ひとつずつクリアしていく。複雑な問題を単純な問題の組み合わせに分解する。実際最近の賢いAIモデルはこうやって動くようになっている。人間から与えられた指示をステップに分け、その各ステップのひとつずつをこなしていく。
前職で一時期一緒に働いていた先輩が、新メンバーの面倒を見るというのは餌を食べられるサイズに千切って渡してあげることだ、と言っていた。個人的には好きな表現ではないが、AIではなく人に依頼するときも同じような力学がある。そして適切な分解は全体像を把握できてないと難しいのでシニアレベルの仕事になる。仕事の流れを整えたり、どこから手をつけたらよいかわからないものを具体的なタスクに落とし込むところにセンスが光る。
こんなことを考えていたら、先日読んだ漫画「ワールドトリガー」の最新刊にほぼ同じ内容のことが書かれていた。ステップを刻むこと、自分の力量にあわせて課題を設定すること。別の実践書「ゾーンに入る」によると、人間は向き合っている課題の大きさがちょうど良いときに最高の集中力を発揮できるらしい。ちょうど良い大きさとは頑張ればギリ超えられる壁のこと。良いタスク分解ができれば集中力があがり、それを乗り越えて自信もつき、ポジティブなサイクルが回り始める。壁に直面したときはそれが自分に適切な高さの壁なのかを自問したい。