
はてなキーワード:ペアプロとは
コンニチハ、オイソギデスカ
非常に良くない生成AIビックウェーブが来ちゃったんで憂鬱な皆さんこんにちは。
生産性が上がるとか効率が良くなるとか宮仕え(みやづかえ)だと、福音どころか地獄ですよね。
ぼちぼち日経新聞がAIエージェント導入で他社に差をつけようみたいな記事を書く頃だと思うので、備えましょう。
まずいつも通り前提からな。
ここまでは前提な。
DeNAがさ、既存事業3000人の従業員を半分で回すようにするって目標立てたじゃん。つまり、1500人の業務負荷は倍になるのよね。
倍になったら普通は回らないところ、生成AI使えば倍でも回るでしょ?って言われてるわけだよね。
アレが非難されずに、素晴らしいとか、(諦め半分で)まあそうなるよねって言われてるのが全てなんだけどさ、シンドイよね。
生成AIで業務効率化されてハッピー、毎日定時で何なら毎週金曜日はカジュアルフライデーで飲みながら仕事だ〜、とはならないんだよ株式会社は特に。
経歴詐称して潜り込むってウッソだろというホワイトなみなさんは、パワポ作るとかペアプロするとか輪読会するとか適宜置き換えてください。
新規にプロジェクトに入った時に、なんか資料もねえし、コードをぼちぼち読みながら、急ぎでもクリティカルでも無い部分を書いてレビューしてもらって修正してマージして、
みたいな作業が消えます。この辺もう既に出来るから生成AIで。
というか、すでにこのへん置き換えて楽してるやついるだろ。そうそこのお前。
今までも、華麗なる経歴とやらの人物が作り上げていったコードを保守運営する時に相当キッツイことになってた人は多いでしょう。
ほら、新規事業でも何でも、とりあえず動いて売り上げ立てた人が偉いのはその通りなんだけど、それを直すのは大変なのよね。実運用の時には大抵転職してて居ないし。
でもさ、まあ言うても立ち上げの時期に技術的負債とか考える余裕もなく速度重視でゴリゴリ作った人の立場になってみると、まあ仕方がなかっただろうな、と感情移入もできる。
これが、スーツが「動くものは作っておいたから簡単だよね?」とかAIの作ったクソコードの山をギークに渡すようになるんだぜ。腹立つことにハンパに動くやつを。
今までも「AWSでポチポチしたらすぐでしょ?」とか言うクソスーツは居たけど、実際に手を動かしてモノ作ってくるスーツは概ねまともだっただろ?
金払えば使えるようになったから。身も蓋もないけど。
あえて言えば、簡単にお試しできるようになった、と言うところが本質的な部分です。
以前からChatGPT4とかAmazon BedRockとか使ってた人ならわかると思うんだけど、別に今までもできたんだよね。
ただ、全自動で回せるパッケージングとしての品質がそれなりに高いので、お試しのハードルがぐっと下がった。
これ、APIと簡単なスクリプトで以前から自動化できてたんだよね。(やってたやつは俺以外にも割といると思う)
決まったフォーマットで出力してもらって、そっから切り出して実行して、出たエラーをもう一回入れて修正して、動くようになったら止める。
出来上がったコードとそれまでの途中経過を全部まとめて入れて、最初から出来上がったコードにするためのプロンプト考えてってところまでをワンショット。
あとは、出てきたコードとプロンプトを眺めて良さそうなら採用する。この繰り返しでめっちゃ楽出来てた。(壊れたらDocker建て直せば良いし)
これを、そう言うスクリプト書いて整備して良い感じにGitで管理してたお手製のツールを大手が良い感じに作り上げてきちゃった感じ。あーあ。
特に速度は分かりやすく効率に影響するので、自営業とかプレイングマネージャとかは、今導入しても元がとれるだろうね。
じゃあ、なんでCline(とそれに類似するツール群)に全部賭けない方が良いかというと、まだ過渡期の技術だから。
ツールのオペレーションに全振りして、大手が改良版出しちゃってオペレーターとしての職が無くなった経験、あるでしょ?
今Clineで不満に感じてることとか、プロンプト調整しなきゃなあみたいなところ、全部自動化できるでしょ。
一年保たないと思うよ。
そりゃあ人間雇ったら高えのはわかるけど、単一障害点は怖いぜ。
みんな、生成AIのAPIが逆鞘だろうことはわかってるよね?急に明日から10倍に値上げされて耐えられますか?
今、OpenAPIのたけえのだってたかだか3万ぽっちだけど、あれに毎月30万円だせって言われて耐えられる?90万なら?SLAも怪しいのに?
そう言う時、「じゃあやめて人間雇えば良いじゃん」って言った時に、話聞いてくれる相手がいて欲しいよね?不義理しないでおこう。
同じように、新人はちゃんと育てるべきなんだけど、多分聞いちゃくれないから、そう言うところはドンヅマったら転職しよう。
(経営側にいる人間は、安易にAIエージェント+中堅に頼った場合、中堅がその会社の急所になるのは抑えておこうね。引き抜かれて崩壊する組織は脆弱だよ)
IBMが訴えられてるよね。アレ、AIエージェントあったら回避できてた?
俺は無理だと思う。
試験導入しますね、と言ってガンガン使ってコストをあげましょう。予算が尽きるまで使えば概ねそこまでです。
また、AIエージェントを導入しつつ、動作を確認したり、自社のどこに活用できるのか見ておくのはとても役に立ちます。
具体的に言うと、ググったコマンドを片っ端から試すような新人が入ってくると思ってください。
その新人は、概ね1000行以下のコードなら即レスしてきます。変えるなと言った箇所もたまに結果を出すために変えたりします。
そして、その新人相手の知見はおそらくそんなに長くは持ちません。何故なら我々が不満に思う箇所は改善されてお出しされるからです。
そのため、Cline(やそれに類似するツール)の知見を貯めよう!なるほどこんなプロンプトを与えてやれば良いのか!みたいな試行錯誤はやめた方が無難です。
今後も解決されないであろう部分を切り分けるのに留めましょう。
超具体的に言うと、AWSのコマンドを片っ端から試されたりすると、すげえ課金されるやつ、あるよね。でもそれちゃんとポリシーで制限できるよね。
人間相手に常識で縛ってたことを、ポリシーで縛るようにちゃんとしておこうね、ミスったコードで高速にIaCお試しされるとすげえことになるよ。
(なりました)
仕様検討にはo1 pro modeが(推論が強いから)、コーディングはClaude 3.5 Sonnetが(コーディングに万能に強いから)、コードのデバッグはo3-mini-highが(コードの解析に強いから)という時代から、Claude 3.7 SonnetのAPIセットしたClineで全部お任せして試行錯誤した方が結果的に効率が良くなってます。
今はPythonやTypeScriptのように、基本的に大量にコードが存在して生成AIを開発する側が良く使うコードの性能が高くなっています。
(ただ、相当にマイナーな言語であっても、別に学習に支障があるとは思えません。おそらく単に優先順位の問題です)
「AIコーディングについてのレポートをあげて、稟議を通すための理由もつけておくように」みたいな指示は、ChatGPTのDeepResarchに振って、上がってきたレポートをそれっぽく書いておけば良いです。
なお、ChatGPT4.5があんまり性能が出てないと聞いてがっかりしている人に朗報ですが、4oから4.5に変わったことで、相当に性能は上がっています。
具体的に言うと、「クソみたいな上司からムカつく指示が来てどうにも収まらないんだけど、以下の内容を相手が納得するように書き直してくれない?」みたいなのに、すごい親身になってそれっぽい感じに書き直してくれます。人間力は多分俺より上です。
https://qiita.com/N700A/items/4470513322ab764d4a22
という可能性。
「自分の発言は的外れのことが多く、相手の発言が正解という機会が多くなりました。」ということを本人が認識しているということは、同僚はより「こいつ的外れだな」と思ってることが多いということ。本人同様に同僚もストレスを抱えていたと思う。
退職に追い込まれた可能性を感じてないというのも問題で、本人はペアプロという手法に課題感を感じている。チーム内のメンバーは常に互いに評価されることがスコープに入ってない。
増田、40代男性、現在非上場だけど大手企業でエンジニアやってる。
何回か転職してたり他社との話で狭い世界だけどエンジニアが居着く会社の条件が自分なりに固まった
とにかく見下す人多い。あと努力教で効率厨。フリーランスや部署の奥地で最低限の人間とのみ触れ合わせるようにすれば良い。
初回だけ打合せに一緒に出て以降は自走させる人。管理職に多め。ペアプロとか関係なく2人以上のチームでの心理的安心は大きい。成果も失敗も割ろう
これは会社レベルだが、いつでも成果出せるエンジニアなんて僅かなのに3を中心に良い悪いを評価するのは無慈悲。当たり前のように下は上は結果出してないくせにと思う。上のショボい成果を時勢のせいにしたら末期
スタートアップは金が全て。金出さないくせに結果出せとか言う会社は即人消えます。オフショアも今は無理
営業上がりとか最悪。こいつら黙らせる同等かそれ以上の管理職居なかったら大体失敗するし気付いたら会社にカスしかいなくなる
資格取得とか異業種交流とかそんなのの補助よりこの辺整備すると良いぞ。もちろん給与は大前提
Permalink |記事への反応(19) | 08:48
20年ぐらいプログラミングやってるっていう40代の人とペアプロしてるんだけど
変数はほとんどがグローバル的な扱いで独自の命名規則で宣言しるし
その命名規則も全然守られてないしスペルミスも多くて読んでてイライラしてくる
根本的な作り方が無茶苦茶でちゃんと動いてるのかバグがあるのかも分からん状態
PR出てくる度に打ち合わせして、そもそものデータ構造とか機能分割について指摘してるんだけど
この前ふと
「そういやJavaで書いたことありますか?Javaだとこんな感じですよね」
って話したらJava知らんと言われた
で、聞いてみたらオブジェクト指向言語で書いたことないし勉強したことも無いとのこと
JavaなりC++なりオブジェクト指向言語で書ける必要は無いけれど
少なくともデータの堅牢性とか再利用性とかの考え方は知っといて欲しい
低レベルなんだよ。ハッキリ言って。
どうせ枯れた技術ばっか使ってんだろ?
非常に集中力を使う厳密さが必要な作業に関して実行役と、同じ作業を俯瞰して全体を見渡したり逆に本筋以外の細部をチェックする役のペアだから、あまり家事に置き換えられない。
しいて言うなら二人とも作ったことのない新しいレシピに取り組むとき、一人が調理を担当して、もう一人がレシピ本を見ながら次の手順を示したり、料理酒とみりんを間違えていないかチェックするような役割分担だ。
うまくやればノウハウの伝授という副作用もあったりするがそれは本質ではなく、スキル差はない方が望ましい。
大体モラハラ気質のベテランプログラマーと低スキルの新人プログラマーのペアプロが成立するわけないだろ。いや新人プログラマーというよりベテラン営業マンに繁忙期だからとプログラム書かせるようなもんか。
だから学ぶしかないんだよプロジェクトマネージメントを。お互い素人なりに少しずつ学んで取り入れていくんだよ。
https://blog.tinect.jp/?p=81116
要は家庭運営は「プロジェクト」であるのだから適切なプロジェクト運営を行う必要がある、という趣旨で内容については概ね同意ではあるのだが、これを実践しようとするには大きな問題がある。
普通の人は「プロジェクトマネージメント」なんてできないのだ。
私はいろいろな会社の小さめのプロジェクトに参加して開発を請け負うエンジニアなのだが、まともなプロジェクト責任者に当たるのは20%もない。
ここでいう「まともな」というのは、
という、プロジェクトマネージメントを行うにあたっての最低限のスキルがある人である。
もちろん優秀な人が集まる大企業であれば多くの人が簡単にこなせるだろうが、私が参加するような中小企業にいるような人たちには難しいのだ。
つまり、「夫婦の人生というプロジェクト」において、プロジェクトマネージメント的な方法を用いて適切な運営を行おうとしても、なかなかに難しい話なのである。
そして更に大きな問題が1つある。
誰かが明確なプロジェクトの責任者であるなら、モチベの管理はその人の責任ですけれど、家庭運営というプロジェクトで「主従」があるべきではない
これはその通りなのだが、人生というプロジェクトにおいて最も大変と言える子育ての初期はそうもいかない。
相対的に妻が家庭運営にかけられる時間が多く、それにより知識の差もできてしまい、結果として妻側がマネージャー、夫側が指示を受ける側、という立場にならざるを得ないのだ。
そして妻側にプロジェクトマネージメントの経験がない場合に、プロジェクトが崩壊へと向かってしまう。
初産の年齢でなんらかのプロジェクトのマネージメント経験がある女性がどれだけいるかを考えれば、多くの家庭が機能不全に陥ってしまうのは想像に難くないだろう。
まずは、妻の方がマネージャーとならざるを得ない状況が大きな問題なのであるから、夫も妻と同等かそれ以上の時間を家庭運営に割けるように、育休を妻と同期間かそれ以上の期間取得すれば良いのだ。
これはとても簡単な話だ。
次に、それができたとしても若い夫婦にはそもそもプロジェクト運営は困難だ。
それを解決するにはエンジニアリングの世界からヒントを持ってこよう。
ソフトウェアエンジニアの世界には「ペアプログラミング」というものがある。
ソフトウェア開発をペアになって行うのだ。一人がコードを書き、一人がナビゲーターとしてサポートする。
一見すると一人しかコードを書いていないため作業が遅くなるように思われるが、二人がそれぞれコードを書くよりも開発が早く進む場合が多い。
これはペアで作業を行うことで、ミスを発見しやすくなる、知識を共有する時間が不要となる、チームワークが向上する、といったメリットがあるからだ。
家庭運営でも同じことをすれば良い。
まずは全ての作業を一緒にやるのだ。
分担するのは全体感の把握と個別作業の理解が十分にできてからで良い。
ネットの書き込みを見ると「夫はこの程度のこともちゃんとできない」という愚痴をよく見る。
「こんなこともわからないのか」と責めるようなマネージメントのアンチパターンではすぐに無能な夫が出来上がってしまうので、そうではなくて「一緒にやろう」と声をかけて、何度か作業を見てもらって、その後実際にやってもらって、それで何回かすれば期待する作業をやってもらえるようになるだろう。
逆に、「何か手伝うとすぐに怒る妻」には「ちゃんとやりたいからまずやり方を見せて」「今度は俺がやるから見てて」というコミュニケーションをすれば良い。
日本の多くの家庭は話し合いの場を持つということすら苦手だと思うので、この「一緒にやってみてそれから分担を考える」というプロセスは導入しやすい。
これから子供が生まれる家庭で、夫婦共にプロジェクトマネージメントのプロフェッショナルでない場合は、「育休を取る」「家事はペアプロ」この2つだけはぜひ覚えておいてほしい。
Permalink |記事への反応(11) | 13:47
>評価基準が変わり、開発効率が変わり、単価が変わっていくんだろうか。
実際にChatGPTとペアプロしてみると,現在〜近未来において上記は間違いなく変わるだろうなという感触を得られると思う。
とくに単価については、この手のAIアプリケーションが十分こなれた世界ならば、開発作業自体が軽微な作業化するので内製するかビジネス層が自分でアプリケーション作ろうとすると思うし、単価という概念自体なくなるのかもしれない。
まあ生成したアプリケーションに関して結果責任・説明責任が残るので人間は最後まで必要になるだろうけども開発を委託する必然性は弱まると思う。
もちろん自然言語やデータモデルを使って正しく要件定義するのはとても難しい作業なので頭の悪いプロダクトマネージャーはそこでつまづくだろうけど、そうしたPMは市場から淘汰されるだろうし正しくPMな人が出てくることも予測される。
まあ要件定義自体を生成されたアプリケーションを使ってデバッグして手直しして開発工程をもういちサイクルまわすのがたいした問題じゃなくなる世界なので、このような世界では要件定義の難しさもたかがしれているとも言える。
技術的特異点なんて絵空事と思ってたけど、過渡期な文章生成言語モデルっていう技術ですらこのインパクトなのでこっからの数年、こうしたテクノロジが精錬されて我々の価値観や生活が変わるのが楽しみでならない。
「httpリクエストを50回実行するシェルスクリプトワンライナーをサンプルを表示してほしい。またリクエスト後にhttpレスポンスコードをチェックし500番台だったら実行停止してエラーメッセージを表示するようにしてください。」
ChatGPTにたいして上記の命令からはじめて、10分くらいの作業時間で動作テストしつつ自然言語のチャットのやりとりでバグを取りつつ非同期実行などの追加仕様を加えてGo言語にリプレイスして出来上がったコードがこれです。
自分でコードはほとんど書いてませんが数行程度の手直しはしました。
注:このコードは結局500番台で全Goルーチン生成抑止/実行停止するわけではないので非同期実行化した際の仕様バグがまだ混入してますが、まあとりあえず動作はします。またGoルーチンを無作為に大量生成してしまうのでこれを抑止するような機能もあった方が良いでしょう。このレベルの仕様バグを解消するには非同期実行時の正しい動作を定義した上であらためて作業した方が手っ取り早そうですがこの文書の目的から外れる作業だし、めんどくさいので放置することにしました。コマンドライン引数周りの細かなバグについても同様です。
【所感】
ChatGPTは平気で嘘つくし、ドメインナレッジにまだ乏しいし、この例だと例えばsyncパッケージ使わない的な単純なバグも平気でしこんでくるのでまだ信用できないやつですが、嘘やバグを見抜ける程度の普通の技術者が監督するなら現時点の水準でも作業量を大幅に削減できるしオーバーテクノロジー感があります。特に小さくて雑なアプリケーションを書いて手法を実証するようなプロトタイピングフェーズなら現時点の技術水準でも大いに役立つでしょう。
我々ITエンジニアは今後10年くらいのスパンで言うならば課題設定能力、ドメインナレッジの注入、コードレビューの力量とQAの力量、そして役立つアプリケーションが本当に役立つかを実証する能力(ビジネス的?)が問われるようになってくのでしょう。そして最終的には目的の設定と評価のフィードバックループを回し続ける現在のプロダクトマネージャーのようなスキルセットに移行する事になるのでしょう。