【ポエム】AIに対してやってることって、みんなが嫌ってるマネジメントと同じじゃね?
こんにちは!ゲンシュンです。
この記事は半年前にtwitterに溜め込んでた下書きツイートを雑にまとめたポエム集で、この記事から得られる学びはないと思います笑。
背景
ここ最近はCopilot、Claude、ChatGPTなど複数のAIツールを駆使して、開発・調査・壁打ちなどやっています。ある日Cloud Codeのアウトプットがあまりにも期待と全然違ったので、今まで以上にすごーく丁寧に指示をしたんですよ。でもなんか筋が違うし、最終的には虚偽のアウトプットをしてきたんですよね。

何度も何度も丁寧に指示しても、ずっと虚偽の報告をされ続け...

こんな虚偽の報告されたの初めてだったのでブチギレたんですが、自分の指示の仕方がイケてない説もあるかと思い、なんでこんなアウトプットになったのか?こちらの指示をどうしたら回避出来たのか?をどんどん詰めてったんすよ。
指示がかなり明記化され、作業内容や報告順序など細かい領域まで指示をしていくことになっていき、で、ふとこの時気づいたんです、「あれ、これって、普段みんなが嫌だ〜って言ってるマイクロマネジメント同じじゃね?」っていうお話です。
マイクロマネジメント嫌いあるある
インターネットでよく見かけるマネジメント周りの愚痴だと
- 「毎日進捗を細かく聞いてくるマイクロマネジメント、マジで嫌」
- 「もっと自由にやらせて欲しい、何もかも許可が必要で管理されてる感がしんどい」
- 「不確実な要素が多いのに、なんで計画を立ててその通りに実行しないとダメなの?」
- 「結局仕事って、上司ガチャじゃね?」
こんな感じですかね〜。勿論人によっては、進捗を細かく聞かれる方が良いって人もいるので一概に悪ではないと思います。でもこれってアウトプットの品質担保とリスクを減らしているのが目的であって、細かく管理したいのが目的じゃないんすよねぇ。
AI相手にやってることを振り返ってみる
自分がよくやっている指示の仕方などを整理してみました。結果的にアウトプットの質をブレずらくしてる系です。
指示が徐々に細かくなる
指示が大雑把だとアウトプットがブレやすいのは想像しやすいですが、いろんな実装をしてもらうと例えば、
- Claudeは絵文字を多用してくるので、デバッグログやフロントのViewに絵文字まみれになって鬱陶しくなる
- TypeScriptでシンプルな実装で済むのに、必要のないClassを使いだし、色々extendsしまくってよくわからんくなる
- pythonで考慮しなくていい部分のエラーハンドリングを毎ブロック実装してくるので、不要な例外処理祭りで無闇にコードが増えていく
みたいな、細かい部分でなんか違うな〜〜という経験を重ねていくと、どんどん指示が細かくなっちゃいますよね。コーディング規約とかプロジェクトの進め方とか、事前に読み込ませるドキュメントや指示が増えてっていきます。
指示以外のことをやらせない
AIって親切心からなのか「ついでにこれも実装しときますね~」みたいなノリで、要らんもん実装してきますよね笑。「指示したこと以外はやってほしくない」けど「要件に対して自分で思いつかないようなアウトプットを見たいので自由な発想を許したい」のバランスがむずいです。
個人的に嫌だな〜と思うのが、AIが出したアウトプットに対して「◯◯というパターンもありそうですけど、そこはどうですか?」って意図を確認するつもりで問い合わせると「確かにいい指摘ですね!そのパターンは考慮してなかったです、実装し直しますね!」って急に大量修正してくる時!!!実装戻してくださいって戻させるのも虚無。
実装・修正してください系の質問と、意図を聞きたい系の質問をちゃんとわけないと、この手の無駄なやり取り発生するので「実装はしなくていいので、xxxx」って必ずやってほしくないことを文頭に書くようになりました。
これも「勝手に判断しないで、言われたことだけやって」っていう、自由度を奪うやつですかね〜
1タスク1セッション、引き継ぎ資料を作らせる
AIとのやり取りが長くなると、かなりの頻度でクオリティが迷子になっていくんですよね。こちらで最終ゴールに対して、マイルストーンやフェーズを最初の段階で作業単位を指示させてます。
本当にざっくりですが、①仕様の壁打ちフェーズ、②設計フェーズ、③軸となるComponentやusecase、dim/factの実装フェーズ、④命名を揃えるフェーズ、⑤イケてない設計などを改善するフェーズ、⑥ベース実装を横展するフェーズ、⑦最終的な改善フェース、みたいな感じで。各フェーズごとのアウトプットが微妙になってきたら、description.mdやarchtecture.mdを更新させ、次のセッションに引き継がせます。
なんか、縦割り行政というか、バトンタッチのタイミングで毎回引き継ぎ資料作らせてて、なんかアレですね・・w。ですが、この引き継ぎ資料が、アーキテクチャや要件定義、仕様書になるので、まぁ悪くはないかなと。
AIを並列でやらせて、競わせる
巷で言うリセマラ駆動開発です。同じタスクを複数のAIに並列で投げて、一番良いアウトプットを出したやつだけ継続で使う。他のAIセッションは容赦なく終了。
なんかね〜、この日はどのAIも微妙だな〜〜って時あるんですけど、なんなんですかね。AIも低気圧とかで体調悪くなるんですかね・・
質疑応答設ける
自分の中で一番効果的な問いが「ここまでで何か気になることや、質問、懸念等ありますか?」を結構な頻度で問うてます。
AIが実装中に「ああああそういう実装しちゃったか、違う違う違う!!」とかって経験ないですか?この問いによって、自分の指示が足りていなかったり、考慮漏れているパターンとか、意図が汲み取ってもらえなかったことがわかったりするので、想定外にいかなくなりましたね。
まとめ
なんでAI相手だとこんなマイクロマネジメントをするんでしょうか?答えは単純で、アウトプットの品質を担保したいからだと思います。AIって人と違って、会社の事業内容、組織風土、文化、雰囲気など、あらゆるコンテキストを情報として渡さない限り持ち得ないので、渡ってきた指示文からしか判断するしかない。なので曖昧だと期待と違ったりするし、かと言ってここにあげたもの全てを情報として保持するのもあんまり現実的じゃないので難しい所。
あとこのポエムを書いてて改めて思ったのが「マイクロマネジメント=いやな管理方法」と盲目的に捉えるのはあんまりよくないなと。
- 管理する側は、手段=目的に見られると萎えちゃう人が多いので、管理することが目的ではなく業務品質を上げるのが目的だよ〜等、意図をちゃんと伝えるのが大事である
- 管理される側は、期待値がよくズレやすいものがマイクロマネジメントされており、業務リスクを最小化しているという目的を理解すること。そして細かく指示されなくても期待通りお仕事を出力できる領域を広げていけばいいんじゃね?
って雑に思いました。
以上です!
Discussion