ChatGPTに本気で向き合う

2024/11/03

先日飲み会で同僚が「ChatGPTと2時間本気で向き合った」と言っていた。ChatGPTの凄さはすでに体感している人も多いと思うが、本気で向き合うとはどういうことか。曰く、何かを調べるときに検索エンジンの代替として使うのではなく、難しい仕事をする壁打ち相手として深く話す使い方をすることを本気と呼んでいた。

技術的に複雑な設計、例えば権限管理について、自分で調べながら設計していくのは中々骨が折れる。権限の最適なあり方はサービスによっても異なり、どれが良いと一概に言うのは難しい。「権限管理」のキーワードでググって出てくるのは一般的な手法で、ロール制御には大きく二つのやり方があって〜といったエントリー的な内容が多い。

自分のサービスの情報を伝え、実現したい権限の仕組みを言語化して伝える。ChatGPTから返された回答に不服なら追加で考慮して欲しいポイントを書き、会話して深めていく。回答の精度が高まるようにいろんな前提情報を注ぎ足す。文脈が多いほど良い回答が得られるので、やがて自分の欲しかった情報に辿り着く。

思えばベテランの先輩に聞くときも同じことをしていた。何かの仕事に行き詰まったとき、実現したいこと、自分で考えたこと、試したこと、どのようにうまくいかなかったか、などを事前に整理して伝えて相談する。エラーメッセージなどがあればそれも添付する。そうして初めて問題解決に向けた議論を始められ、そこからは深堀りの質問の受け答えをしながら答えに辿り着く。今はもっと賢くなっているが、登場直後のChatGPTは四年生大学卒の新入社員だと思って接すると良いと言われていた。一般的な知識や教養はあるが、仕事の専門性はまだない状態。質問の文脈をできるだけ与える考え方はいまも有効だ。

先日のアップデートで、ChatGPTに検索モードが追加された。これは質問に対して情報をインターネットから検索し、それに基づいて答えてくれる機能。試してみるとZennやQiitaといった技術共有サービスから個人ブログまで様々なところから情報を集めてきて、それを元に回答してくれる。「淡路島の観光スポット」などを調べてもいろんなサイトのクチコミやランキングを総合したような結果を教えてくれる。これは新しいことを調べる時に人間がする行動とまったく同じ。情報ソースも明示してくれるようになり、内容が疑わしい場合は自分の眼で確かめられるようになったのも大きい。

プログラミングにおいて、AIを活用できるかは人間側の能力がキャップになるという説がある。コードの生成はAIが得意とするところだが、それが期待通りに動くものかは人間が判断する必要がある。部分的に修正を依頼したり、AIに伝わりやすいように言い換えたりする。そのためには人間側のスキルのキャパシティをあげておく必要がある。超人でなんでもできるパートナーが登場するというよりは、自分が3-4倍動けるようになるというのが感覚に近い。行動レベルはそのままで並列に実行できるようなイメージだ。AI活用のために自身のレベルアップが重要、そしてそのレベルアップのための勉強においても、ChatGPTは強力なパートナーになってくれる。


人にすぐ影響される

2024/11/02

人に影響されやすい。偉人の自伝を読むと翌日からそのように振る舞ったりするし、Appleの本を読めばシンプルで洗練されたデザインを作りたくなる。良いサービスに触れるとそれを応用できないか考える。身近な人でもそうで、近くで一緒に働く人の考え方や仕事の進め方を勝手に真似ていってしまう。

大学の頃に聞いた話では、身近な人の名前を10人あげていき、その人たちの年収を平均したものが自分の年収になるらしい。有名なコンサルの大前研一氏も自分を変えたければ環境(付き合う人)を変えろと言っている。普段の生活で触ったもの、見たもの、聞いたものが自分の思考になる。周囲に似る性質があるので自分がなりたい人たちの中に身を置け、というのは的を得た助言な気がする。私も気持ちのいい友人や知人と一緒にいる時間を最大化したいと思っている。大人になると用事なく人と会う機会も減り、放っておくと関係性は薄くなる。繋がりを保ちたい人には自分から声をかけるのは意識したい。

人を真似てしまうのは悪いことではない。「コピーキャット ― 模倣者こそがイノベーションを起こす」では優れたものの模倣の組み合わせがイノベーションだと定義している。世の中で流行っているもの、過去に流行ったものに対して別角度からアプローチする。例えばプリクラが人気だが、それをスマホで使えるようにするにはどうするか?切り口を変えると新しい体験が提供できる。

パーツは模倣でよいが、どのパーツを選択するかにはセンスが現れる。良いものを良い形で組み合わせる。このパズルの組み方がセンスで、作り手によって異なる部分。どれだけ良いものに触れてきたかの引き出しの数、どれだけのパターンを試したかの試行の数などによりセンスは深められる。AI時代ではひとつひとつのパーツを作るのは簡単になっていく。それをどう利用するかを考える部分に人間の知恵が出てくる。


自分の記憶を過信しない

2024/10/31

記憶力には自信がある方だが、過信しないようにしている。気になる記事、誰かへの連絡、やることリストはその場ですぐメモする。脳みそをできるだけ空けておく。

いろいな方法を試したが、シンプルに忘れたくないことを自分宛にメールを送り、メールボックスをメモリストとして使う方法に定着した。あとで読もうと思った記事があったら自分にメールする、何かアイデアを思いついたら自分にメールする、嬉しいことやモヤることがあったら自分にメールする。URLの保存やメモの保存などそれぞれに最適なツールはたくさんあるが、その切り替えにもコストがかかるので何も考えずいったんメールするのが自分には楽。

自分にメールを送る様式は一定の市民権があるようで、一番有名なものでCaptioというアプリがある。シンプルな使い勝手で数年愛用していたが、最近サービス終了してしまい今は「Note to Self Mail」というアプリに切り替えた。元々シンプルなのでほぼ同じ使い心地。ちなみにアプリとしてはかなり作りやすい部類なのでストア上にはたくさんのCaptio風アプリが並んでいる。XでCaptio終了を嘆く声がいくらかあるが、その人たちに自分の作ったCaptioクローンを返信して宣伝してたりするのも見かける。個人開発は作るの半分、必要な人に知ってもらうのが半分難しい。

誰かが本をオススメしていたらすぐにポチる。これは見聞きしたときが最大の熱量なので、メモして後から見返してもあまり買うタイミングを掴めない。先に買って手元に置いておいて、読めるときに読むようにしている。できれば本はAmazonではなく地域の本屋さんで買いたいと思っているが、ビジネス本や技術本は置いてないし重いものも多いのでAmazonでポチる。予約注文もできるし翌日すぐ届いたりするし、便利さに飲み込まれている。

仕事ではClickUpというタスク管理ツールを使っていて、仕事中のタスクはここに登録する。期限を入れたり詳細なリンクを入れたり、他のメンバーをアサインしたり。そうやって深く使おうとするとやはり専用のサービスの方が必要なものが揃っている。職業的に仕事でメールを使うことはほとんどないが、外のお客さんと連絡するときは1日2回メールボックスを確認していた。上からメールを順に見ていき、返信するかタスク化するかしてメールは削除する。確認のタイミングでは必ずメールボックスが空になる状態にする。前職の社長が言っていた方法で、この作法を聞いてから気に入ってなんとなく真似している。気になったことはその場で解決かすぐメモする。脳を占有するものをできるだけ減らすというのは、生活でも仕事でも大事にしている。


空中戦を避ける

2024/10/30

サービスを作るとき、その仕様について議論する。この機能はどうあるべきか、この画面には何が表示されるべきか。議論の内容が複雑になるときもあるが、その時に気をつけたいのが空中戦にならないことだ。

空中戦とは地に足がついてない様で、仮定の上に仮定を重ねたり、イメージだけでなんとなく話していたりする状況。こういうときは具体例を出したり、ホワイトボードに情報を書き出したりして一度全員の視線を同じ箇所に集めたい。私は本当に重要なことはシンプルに表現できると思っているので、会議の参加者の数人しか話についていけないような状況は不健康に感じる。最先端の話をしているようであって、実は誰にでもわかる言葉にできるほど解像度が高くないだけな気がする。

チームに新しいメンバーが入るとチームが活性化するが、これは各個人が持っている暗黙知が言語化される機会が強制的に作り出されるのが大きい。なんとなくやっていたことの手順や目的を明確化する。他メンバーにとってはもちろん、自分自身にとっても良い振り返りになる。新メンバーからの質問はチームを強化するが、新メンバーからすると自分だけ分かってないような気がして気が引けて聞きづらいときもある。そんな時もやはり、「誰でもわかる地に足ついた話」を目指していることを伝えておけると幾らかは言いやすくなる。経験上、一人が話についていけてない時は大抵他の数人も分かってなかったり、理解しているつもりで少しずつズレてたりする。

暗黙知を言語化する方法は口承でもドキュメント化でもなんでも良いが、ソフトウェア開発でいうとコード上で表現することもできる。技術構成をコードで示したり、コーディングルールを設定ファイルに記述する。チームのルールから踏み外した場合はエディタ上でフィードバックされたり、あるいは勝手に自動修正される。ドキュメントは作って終わりではなく運用が必要で、更新を忘れると実際のソースコードと状態が乖離してしまう。その点ソースコードで表現しておけばズレようがないので管理を一元化できる。

前職ではペアプロという手法を導入しており、これは二人で一つのコードを交代しながら書いていくというもの。それだけでもすでにユニークだが、さらに毎日ペアを変えるペアローテーションという仕組みがあった。機能開発を誰かが担当するのではなく、その担当者がクルクル変わる。そうすることで毎日仕様や構成を言語化する必要がある。ドキュメントは陳腐化しやすいので、そうではなく細かく常に情報を同期しようというやり方で、わりとうまく回っていた。最適な手段は人や場所によって異なると思うが、地に足のついた議論は意識しておきたい。


共感と距離感

2024/10/30

誰かの話を聞いているとき、できるだけそれに共感するような姿勢になる。自分の知識を探ったり、過去の経験と照らし合わせてみたり。「自分だったらどう思うか」「自分だったらどう行動するか」を考えながら、相槌を打ったり質問をしたりする。人の話をちゃんと聞く、という意味でこれは悪いことではないが、この共感の姿勢には限界がある。人によって価値観は様々であり、どうしてもイメージしきれない話もあるからだ。

例えば戦争に行った人の話に自分が本当の意味で共感することはできない。その話題を抽象化して、自分の中の似た経験を引っ張り出してくることはできるが、それは相手の話を矮小化してしまって逆に失礼な気もする。こんな時できるのはただ聞くことで、自分は関係なく相手がその事象についてどう思っているのか、どこに悩みがあるのかを質問する形で会話することしかできない。共感と距離感のバランスを上達したい。

そんなことを思っていると「共感と距離感の練習」という本を本屋で見つけた。まさしく読みたかったタイトルで即購入したが、そのものズバリの回答が書かれているわけではなかった。著者の小沼さんが日常で感じた心情の変化を綴るエッセイで、その中で他者に寄り添ったり自分の感覚を大事にしたりする。その揺れ動きを積み重ねることが練習になる。「ここは共感、ここは距離感」といった明確な線引きはなく、常に考えていくことでしか上達の道はないのかもしれない。

仕事でユーザーインタビューをする機会があったが、インタビューの作法として「相手になりきる」というのがある。Webサービスの使い方について順に聞くのではなく、相手の仕事について教えてもらい、その中で自社のサービスがどう登場するのかをヒアリングする。それを脳内で追体験していくと細かい不明点が出てくる。その作業は週に何回やるかとか、困ったら誰に相談するかとか。そういうポイントをさらに聞く。それを繰り返していくと相手の仕事への解像度があがっていく。誰もが何かの専門家で、その人の仕事はその人自身が一番よく知っている。それを教えてもらう感覚で質問を繰り返す。

このインタビューも「共感」だが、最初に書いた共感とは少し違う。英語の似た言葉として「シンパシー」と「エンパシー」があり、どちらも日本語では共感と訳される。シンパシーは自分と同じ経験や立場の人に自分を重ねること。エンパシーは相手に憑依して相手視点だとどう見えるか考えること。似てるようでかなり違う。相手の話をしっかり聞きつつ、自分の経験に照らし合わせすぎないこと。自分がやりたいのはエンパシー力を高めることかもしれない。