島までは遠い 〜サークルアラウンド株式会社代表佐藤のブログ〜

佐藤正志@サークルアラウンド株式会社のことが少しわかる場所。プログラマーを育てるトレーナーとして、現役のソフトウェア技術者として、経営者の端くれとして、想うことをつづる。

AI時代は「向かうべき理想」を提示できれば、実現力がなくても理想の成果になるのがすごい

ふと今思ったことですが、過去の開発では「本当はxxするのが理想なんだけど、あれやこれやで時間がないから妥協したあれでとりあえず進める」という心理がよく発生していて、その取捨選択の妙とか、見切りタイミングとかが開発者としての能力の1つだったはず。

なんだけども、今はAIの実装力が高いことが手伝って「理想はこれです。頑張って」とやるとかなり進めてくれるし、人間(私)のように弱音を吐かずにゴールに突き進んでくれる。これはすごいことだと思っていて、今まで何かのせいにしてやり切れなかった仕事がシッカリと終えた状態でリリースできる。

納得したコードをリリースできる可能性が上がるのは、ストレスが低くなって嬉しいな。また、今まで「脳内にはすごいものがあるのに、実現力が低かった人」が活躍できる場を持ったようにも感じる。最終的に自分の脳内に持っているものが大事なんだけども。純粋なそこの勝負になってきたのかもしれない。

連休だったのだが

  • https://github.com/ms2sato/agent-console のバージョンアップに勤しんでしまった。どうしてもやりたかった機能を入れることもできてあと1、2歩進められるとまた開発効率を1ステップ上げられそうな予感がする。細かいバグはなんかあるんだが、そっちもやりつつ機能も増やしたい。
  • codex の使い方、完全に設計やコードのことだけやらせて、外部のコマンドを叩いたりgitを使わせたりしないほうがやりやすいとわかった。なので claude と協調してやらせている。そしてそうなると、Agent間のやり取りを標準化して提供したくなり、CI等の結果を受信するところやSlackへのPOSTなどとはまた別のワークフロー的な動作が欲しくなってきた。次はここをやりこんでみたい。
  • 早めに顧客に見せたいあの機能、まだもうちょっとかかりそうだけど、今夜あたりから調整できたらいいなぁ(いいなぁ)。
  • 運動できた。最初の2日間は寒さも手伝って家を出ずにいてしまったが、最終日はちゃんと表に出たので偉いと思っておく。

Agent Console の経過

github.com

自分専用の複数AIタスク管理ツール。大体ローカルでやりたいことは実現できてきた。

  1. git Worktree を透過的に使える仕組み(新規ブランチとともに作る消す、自動でテンプレから必要ファイル作成)
  2. 一つのWorktreeにAIとシェルとDiffがまとまっている仕組み。AIと人間が協調しやすい。
  3. 待ちタスクや進行中タスクがわかりやすい。
  4. いい感じに永続化して、開いたり閉じたりしたら元の状態に戻る
  5. Worktree作る時に、最初のプロンプトから勝手にブランチ作ってくれる(地味に嬉しい)

まだたまにVSCode開きたくなるけど、それは少しずつ高めてもいい。

そして今朝から手をつけているのが外部連携。SlackにPOSTとかはよくやっている人がいると思うが、こちらはサーバーなのでCIの結果やIssue/PRの作成/クローズ/新コメントをWebhookで受け取る仕組みをやる。これがあると開発の進捗が全然変わると思う。

これまでは完全にローカルで動くサービスにしていたけれど、Webhookの受けだけを外部に公開するような形が理想(Cloudflare Tunnelやngrokを使う感じ)。

AI 時代がいいのは、こういうサイドプロジェクトがすごくやりやすくなったことだ。常に裏でなんらかのタスクをAIにやらせている感じ。ただ、たまに夜中ずっと作業させているような話を見るが、結局AI側からの質問があったり動作させるコマンドの確認が出たりすることがあるし、タスクは関連するから一気にできない気がしていてあんまり夜中にタスク回し切ってもらう感じにならない。どういう工夫がいるんだろう。新規システムでコード品質考えずに全部作り切らせるならできそうだけど、それやるとその後苦労して修正タスクが延々発生するから嫌なんだよなぁ。

AIに教えたいことの一つに、適度な共通化や、堅牢性を高めるための設計があるけれど、これって文章化が難しい。

あと、もうプロンプト的な最適化とかスペック駆動とかはあまりAIにとっての障壁じゃなくなってきていて、どちらかというと外部との連携やインフラ、CI などが絡むところが面倒なんだけど、この感覚は少数派なのかなぁ。私は外とシームレスに繋いでAIに自然にフィードバックすることが今一番大事に思えている。

年初1on1

毎年年明けには全メンバーと1対1で話す時間を作っています。期初が5月なのでちょうど半年位の振り返りや今後の展望などが聞けます。

 

今日はスケジュールの都合で全員分1日で終わらせたので、大変疲れました。

 

それぞれの課題感や考えていることがわかって、大変有意義でした。全体のレベルアップの兆しはあるし、この次につながる種まきにはなっていると感じます。

おためし

大抵の日は一仕事終えてから外でもう一度ご飯を食べた後に仕事をするんだが、今日はさすがに疲れてしまって何もできなかった。

この文章は音声入力を使って書いているんだけれど、あまりに精度が良くてとても驚いている。

 

と声をかけると改行するの面白いね。この辺どうやって認識してるのか謎だね。

 

AIにブログを書かせてどうのこうのって話はあるけれど、自分だとダラダラこうやって話をしてブログを仕上げるのを悪くないな。

「脳が余る」という感覚

AIさんを2つくらいで回していると、作業的には進んでいると思いつつも「脳が余る」という感覚になることがある。 作業を振ってやってもらっている間、考えることがなくなってしまうのだ。他に一つくらい時間を費やせる仕事がある方が、こういうやり方は合っている。

基本的に複数の仕事が進行するのが当たり前なので、相手が人間かAIかの違いしかない。AIの方がまだ手間がかかることはあるが、最近は前に比べてどうしようもない大失敗は減ったので気楽になった。

そういう時、文章を書くような仕事はありがたい。中途で手を止めても戻りやすいのだ。手順が重要な作業をやるとどこまでやったか、何をチェックしたかを忘れてしまい失敗することが多い。

だいたい私の場合

  • 2AI + 文書整理や書く仕事
  • 3AI で 1つ重要であとはサブ的に回す
  • 4AI 以上は何か差し迫っている

この時「長時間任せたい仕事」については事前に設計書を十分に練り込んで、放っておいてもテストが通って完成するレベルに落とし込んで数時間放置してしまう(権限を許可するために見るくらい)。

自分主導でできるプロジェクトに関しては IssueにわざわざせずにとっととAIに書かせてPRすることが多い。

年明け

古い友人とフグ食べて、実家に帰ったくらい。

そしてどうしてもやり切りたいあるシステムのためにAIさんに頑張ってもらうが、あと2日で終わる気がしない。AIさんあんなに頑張ってるのに。

 

やはりWebpackやcjsを引きずっているシステムをモダンに合わせるのは簡単じゃぁなかった。やることがどんどん増えてしまって終わらない地獄。

 

今年もよろしくお願いします。