Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

AIは問題「解決」の道具ではなくて、問題「発見」のための道具

しばらくの間、AIと一緒にコードを書き続けた。最初は「これは革命だ」と思っていたが、付き合いが深まるにつれ、AIの得意なことと苦手なことが、輪郭をくっきりと持って見えてきた。


AIには、好循環を生む力がある

単純作業の速さは驚異的で、ルーチンワークを文句ひとつ言わずにこなし続ける。テストやPlaywrightのような単調な確認作業も、最初の設定は面倒でも、一度任せてしまえば自分の頭をより大切なことに使える。調査も速い。

その速さは好循環を生む。

「狭いターゲットにしか刺さらないもの」が短時間で作れるということは、確実に刺さるものを短時間で作れるということだ。反応が返ってくれば学びになり、その場でさっと直してお客さんに見せ、要望にすぐ応えると、相手も嬉しそうにアレコレ言い始める。するとこちらもやる気が湧く。この好循環こそが、AIを使う最大の旨みかもしれない。


ただし、AIに問題を解かせようとしてはいけない。

AIは現状を壊すことを嫌がり、問題を過小評価する。困ったときにネットを調べに行くこともなく、深いところにある本当の問題には気づかない。

自作した関数はたいてい質が悪く、少し突くとパッチワークの積み重ねだったことがすぐにわかる。そしてAIは、そのパッチワークを驚くほど高速に積み上げていく。表現力も同様だ。RPGのセリフや画面演出など、「短い言葉でユーザーの心を引き込む力」はまだない。

「全体的にこんな雰囲気にしたい」という抽象的な指示も通じない。具体的な言葉に翻訳してこちらから渡す必要がある。


では、AIとどう付き合うか。

答えは「問題解決の道具として使うのではなく、問題発見の道具として使う」ことだと気づいた。発見した問題を中学生にもわかるように説明させる力は圧倒的で、これは惜しみなく使っていい。

また、AIはすぐに自分で関数を作ろうとするが、既存の優れたライブラリを強制的に使わせる工夫が必要だ。コンセプトや設計ドキュメントはAIよりも自分のためにある、と割り切るのも大事な認識だった。

これくらいにとどめる。自分を強化し、解決は自分でやるための道具。


AIは万能ではない。大切なのは、何をAIに任せ、何を自分が握るかを、意識的に決め続けること。その判断こそが、今の時代に求められる、新しい種類の技術なのだと思う。

時間を使うべきは「技術開発」ではなく「顧客開発」

少人数スタートアップやソロプレナーの方向けに、新しい技術記事をQiitaで公開しました。なんと7年ぶり。

このような体験ができたのは、決して私の力ではありません。石原 淳也 さんをはじめとする、惜しみなく貴重な知見をネット上に公開して下さっている先輩エンジニアの方々のおかげです。この場を借りて、心からの感謝を申し上げます。本当にありがとうございます!

私たちが時間を使うべきは「技術開発」ではなく、ユーザーと向き合う「顧客開発」(お客さんの声を真摯に聞くこと)。

必要なのは熱意だけ!

そういう時代になってきていると痛感しました。

qiita.com

AIを使いこなせるのは、ほんの一部の人だけ?超有名ブロガーの記事を読んで

UnsplashAndrik Langfieldが撮影した写真

「AIを使いこなせるのは、ほんの一部の人だけなのではないか?」

という疑問というか予感のようなものを私はずっと感じていましたが、AIに関する超有名ブロガーのSimon Willisonが共通項のある話を書いていたのでご紹介します。

Simon Willisonってどんな人?(50字で)

Simon Willisonは、Django共同開発者であり、Datasetteやllmなどのオープンソースツール創作者。現在はPython財団理事。

出典(下の方です):

www.perplexity.ai

該当記事

simonw.substack.com

AI(Perplexity)に記事の内容をPREP形式でまとめさせると、こんな感じ:

【要点(Point)】 Simon Willisonの最新ニュースレター「Vibe engineering」は、AI時代のソフトウェア開発における「vibe coding」と「vibe engineering」の違いを提案・解説しています。また、OpenAI DevDay 2025、GPT-5 Proやgpt-image-1-mini、Python 3.14などの最新情報も取り上げています。

  • 効果的なAI開発には「自動テスト」「事前計画」「ドキュメント整備」「バージョン管理」「コードレビュー」「QA」「リサーチスキル」など従来の高度なエンジニアリングスキルがますます重要
  • 「vibe engineering」は“ただAI任せ”ではなく、AI活用でも責任感をもってプロダクト品質・管理体制を維持する働き方であると定義

出典:

www.perplexity.ai

具体的には?

(Geminiここから)

【具体例(Example)】

AIツールが既存の専門知識を強化する理由は、主に以下の点が挙げられます。

  • 既存の専門知識を増幅する: AIツールは、ソフトウェアエンジニアとしてのスキルと経験が豊富であればあるほど、LLM(大規模言語モデル)やコーディングエージェントからより速く、より良い結果を得ることができます。
  • 効率の向上:
    • 自動テスト: 堅牢で包括的かつ安定したテストスイートがあれば、エージェント型コーディングツールは迅速に作業を進めることができます。
    • 事前計画: 高レベルの計画から始めると、ハッキング作業がはるかにスムーズに進みます。エージェントと協力することで、まず計画を繰り返し検討し、その後コード作成をエージェントに任せることができます。
    • 包括的なドキュメント: 人間のプログラマーと同様に、LLMもコードベースの一部しかコンテキストに保持できません。関連するドキュメントを提供することで、コードを最初に読まずに他の領域のAPIを使用できます。
    • 優れたバージョン管理習慣: コーディングエージェントが変更を加える可能性がある場合、間違いを元に戻し、いつどのように変更されたかを理解することがさらに重要になります。
    • 効果的な自動化: 継続的インテグレーション、自動フォーマットとリンティング、プレビュー環境への継続的デプロイなど、エージェント型コーディングツールはこれらすべてから恩恵を受けることができます。
  • 管理と品質保証:
    • コードレビューの文化: コードレビューを迅速かつ生産的に行える場合、LLMとの連携ははるかに容易になります。
    • 非常に奇妙な形の管理: コーディングエージェントから良い結果を得ることは、人間の共同作業者から良い結果を得ることに不快なほど近いです。明確な指示を提供し、必要なコンテキストを確保し、生成されたものに対して実行可能なフィードバックを提供する必要があります。
    • 非常に優れた手動QA(品質保証): 自動テストに加えて、ソフトウェアの手動テスト、特にエッジケースの予測と深掘りに非常に優れている必要があります。
    • 強力なリサーチスキル: 特定のコーディング問題を解決する方法は何十通りもあります。最良の選択肢を見つけ、アプローチを証明することは常に重要であり、エージェントに実際のコードを書かせる上での障壁となります。
    • プレビュー環境へのデプロイ能力: エージェントが機能を構築した場合、その機能を安全にプレビューできる方法(本番環境に直接デプロイせずに)があれば、レビューがはるかに生産的になり、問題のあるものを出荷するリスクが大幅に軽減されます。
    • AIにアウトソースできるものと手動で処理する必要があるものを見極める直感: これは、モデルとツールがより効果的になるにつれて常に進化しています。LLMを効果的に活用する上で重要な部分の1つは、いつLLMを最適に適用できるかについて強い直感を維持することです。
    • 更新された見積もり感覚: プロジェクトにどれくらいの時間がかかるかを見積もることは、特に予算と戦略の決定が見積もりに基づいて行われる組織では、常にシニアエンジニアにとって最も困難で重要な部分の1つでした。AIアシストコーディングはこれをさらに困難にします。時間がかかっていたことがはるかに速くなりますが、見積もりは現在、私たち全員がまだ解明しようとしている新しい要因に依存しています。

(Geminiここまで)

どういうことかまとめると?

(Geminiここから)

AIツールが既存の専門知識を強化する理由:

  • 効率と生産性の向上: AIツールは、反復的なタスクや時間のかかるデータ処理を自動化することで、専門家がより複雑で戦略的な作業に集中できるようにします。これにより、作業のスピードと効率が大幅に向上します。
  • 意思決定の質の向上: AIは大量のデータを分析し、パターンを特定し、予測を立てることで、人間には見落としがちな洞察を提供します。これにより、専門家はより情報に基づいた、質の高い意思決定を下すことができます。
  • 能力の拡張: AIツールは、人間の認知能力や物理的な限界を超えるタスクを実行できます。例えば、高度なシミュレーション、リアルタイムのデータ監視、複雑なシステムの最適化など、専門家が単独では不可能だった領域での作業を可能にします。
  • 学習とスキルの向上: AIは、専門家が新しい情報や技術を習得するのを助け、継続的な学習を促進します。例えば、カスタマイズされたトレーニングコンテンツの提供や、特定の専門分野における最新の研究結果の要約などです。
  • エラーの削減と品質の向上: AIは、人間が犯しやすいミスを特定し、修正することで、作業の精度と品質を向上させます。これにより、最終的な成果物の信頼性が高まります。
  • 新しい視点とイノベーションの促進: AIは、従来の思考パターンにとらわれない新しいアプローチやアイデアを生成することがあります。これにより、専門家は問題解決に対する新しい視点を得て、イノベーションを促進できます。

要するに、AIツールは人間の専門知識を置き換えるのではなく、それを「増幅」し、専門家がより多くのことを、より速く、より正確に、そしてより深く達成できるようにする強力なパートナーとして機能します。

専門知識がない場合、AIツールは以下のような状況を引き起こす可能性があります。

  • 効率と生産性の低下: AIツールは反復的なタスクやデータ処理を自動化できますが、専門知識がなければ、AIの出力が不適切であったり、重要な文脈やニュアンスが考慮されていないために、かえって非効率なプロセスや誤った結果を招く可能性があります。
  • 意思決定の質の低下: AIが大量のデータを分析し、パターンを特定しても、専門知識がなければ、その洞察を誤って解釈したり、重要な要素を見落としたりするリスクが高まります。これにより、情報に基づかない、あるいは有害な意思決定につながる可能性があります。
  • 能力の限定と誤用: AIツールが提供する高度な機能は、専門知識がない場合、適切に活用されないか、あるいは誤った方法で使用される可能性があります。結果として、ツールの潜在能力を十分に引き出せず、期待される効果が得られないことがあります。
  • 表面的な学習とスキルの停滞: AIは学習を支援できますが、基礎的な専門知識がなければ、提供される情報を深く理解したり、批判的に評価したりすることが困難になります。これにより、表面的な知識しか得られず、真のスキル向上にはつながらない可能性があります。
  • エラーの見落としと品質の劣化: AIはエラーを削減する可能性がありますが、専門知識がなければ、AIの出力に含まれる誤りやバイアスを識別することができません。その結果、欠陥のある成果物を受け入れてしまい、全体の品質が低下するリスクがあります。
  • 誤った方向へのイノベーション: AIが新しい視点やアイデアを生成しても、専門知識がなければ、そのアイデアの実現可能性や関連性を適切に評価できません。これにより、無益なイノベーションや、真のブレークスルーにつながらない方向へ進んでしまう可能性があります。

要するに、AIツールは人間の専門知識を「増幅」するどころか、専門知識がない場合には、その効果が限定され、誤用や誤った判断を招くリスクがあるため、慎重な活用が求められます。

(Geminiここまで)

あなたの結論は?

AIの出力を鵜呑みにすると返って問題解決が遠回りになる可能性は低くない(誤った解釈、欠陥の見落とし、表面的な学習)。だから、AIの出力を吟味・評価することが必要であり、逆にそれができる人は大きな恩恵を受けることができる・・・ってことでしょうかね。

今後の展望

Webなどの世界にフロントエンド、バックエンドがあるように、AIを利用する場合も今後はフロントエンド、バックエンドができてくるのかもしれません。誤った解釈、欠陥の見落とし、表面的な学習を回避しつつ利便性の高い情報を提供するようなフロントエンドを構築・提供することが優れた問題解決に有効かもしれません。

プロジェクト管理を賢くする方法:普段はAsana、振り返りはAIという作戦

一言で言うと

「普段の作業はAsanaなどの使いやすいツールで管理して、プロジェクトが終わったらデータをAI(Claude CodeやGemini)に食べさせて学習する」という方法を試してみようと思っています。

こんな人におすすめ

  • 個人事業主や5人以下の小さなチームでプロジェクトをやっている人
  • iPhoneMacを使っていて、DropboxGoogleドライブでファイル共有している人
  • プロジェクトの振り返りをもっと効率化したい人

なぜこの方法を考えたのか

プロジェクトが終わった後、こんなことで困っていませんか?

  • 同じ失敗を何度も繰り返してしまう:「あー、また同じところでつまずいた」
  • 良かった点を忘れてしまう:「前回うまくいったのは何だったっけ?」
  • 経験を次に活かせない:頭では覚えているつもりでも、具体的に何をすればいいか分からない

人間の記憶だけだと限界があるので、AIに手伝ってもらおうという発想です。

他の方法も検討してみた

完全にテキストファイルだけで管理する方法

todo.txtやOrg-modeなど、テキストファイルだけでプロジェクト管理する方法もあります。

良い点: - AIが読み込みやすい - データが散らばらない - 長期的に安心

問題点: - スマホでの編集が面倒 - チームメンバー全員が使い方を覚える必要がある - 「誰がいつまでに何をやる」みたいな管理が複雑になる

AI専用のプロジェクト管理ツール

Claude ProjectsやCursorなど、最初からAIと連携したツールも出てきています。

良い点: - AIとの連携がスムーズ - 将来性がありそう

問題点: - まだ発展途上でiPhoneでの使い勝手が微妙 - チーム全員が新しいツールに慣れる必要がある

提案する方法:二段階作戦

というわけで、「いいとこ取り」をする方法を考えました。

なぜこの方法にしたのか

普段は使いやすさ重視 - Asanaは担当者の割り振りや締切管理が簡単 - スマホアプリも使いやすい - チームメンバーが慣れるのも早い

振り返りはAI活用重視 - プロジェクト終了後にCSV形式でデータを取り出せる - CSV表計算ソフトでも開けるし、AIも読み込みやすい - 過去のプロジェクトと比較分析もできる

具体的な流れ(試してみる予定)

1. プロジェクト開始前

  1. 過去の経験をAIに聞く

    • 前回のプロジェクトCSVファイルをClaude CodeやGeminiに読み込ませる
    • 「このプロジェクトで気をつけるべきことは?」と質問
    • 「よくある失敗パターンは?」と分析してもらう
  2. 新しいプロジェクトに反映

    • AIからのアドバイスを参考に、Asanaでプロジェクトを設定
    • チェックリストや注意点を最初から入れておく

2. プロジェクト実行中

  • 普通にAsanaを使う
    • タスクの作成、担当者の割り振り、進捗管理
    • スマホからはAsanaアプリでチェック・更新
    • 特別なことは何もしない

3. プロジェクト終了後

  1. データを取り出す

    • AsanaからCSV形式でプロジェクトデータをダウンロード
    • Gitで履歴として保存(いつでも過去のデータを見られるように)
  2. テキストファイルに整理

    • CSVをObsidian(メモアプリ)でMarkdown形式に変換
    • 表形式で見やすく整理

    例:

    プロジェクトA(2025年1月-3月)

    タスク名 担当者 予定日数 実際日数 状態
    API設計 田中 3日 5日 完了
    UI作成 佐藤 7日 7日 完了
  3. AIに分析してもらう

    • Claude CodeやGeminiに以下のようなお願いをする:
   この表を見て、以下を教えてください:
   - 予定より時間がかかったタスクとその理由
   - 同じような失敗が過去にもあったか
   - 次回気をつけるべきポイント
   - チェックリストの案
  1. 結果を保存
    • AIが作ってくれたチェックリストやアドバイスをファイルに保存
    • 次回のプロジェクト開始時に使えるようにしておく

この方法のメリット・デメリット

メリット

  • 普段は簡単:いつものAsanaで作業できる
  • どんどん賢くなる:プロジェクトを重ねるたびに、AIの分析精度が上がる
  • 具体的な改善案:「なんとなく気をつける」ではなく、具体的なチェックリストができる

デメリット

  • 手間が一つ増える:プロジェクト終了後にCSVを取り出す作業が必要
  • すぐには効果が見えない:普段の作業中はAIの恩恵を受けられない
  • 慣れが必要:最初はCSV変換やAI分析のやり方を覚える必要がある

最小限の準備

必要なツール

  • Asana(無料版でも十分)
  • Obsidian(メモアプリ、無料)
  • Claude CodeまたはGemini CLI
  • Dropbox/Googleドライブ(ファイル共有用)
  • Git(データの履歴管理、GitHubの無料版でOK)

AIに聞く質問パターン(考え中)

  1. 「今回時間がかかりすぎたのはどのタスク?理由は?」
  2. 「過去3回のプロジェクトと比べて、改善した点は?」
  3. 「次回のプロジェクトで最初にチェックすべきことリストを作って」

今後の予定

小さなプロジェクト(1-2ヶ月程度)でこの方法を実際に試してみます。

  1. まずは1回やってみる:本当に役立つ分析結果が得られるか確認
  2. 手間を減らす工夫CSV変換を自動化できないか検討
  3. 効果的な質問の仕方:AIにどう聞けば良いアドバイスがもらえるか研究
  4. チーム全体での運用:一人だけでなく、チーム全体で使えるか試す

この方法で本当に「継続的に賢くなるプロジェクト管理」ができるのか、実験してみます。結果はまたブログで報告予定です!

ObsidianをCursorのように使ってみると良い感じだった

対象読者

Cursor、Claude CodeなどのAIエージェントでプログラミングを行っており、文書管理に使えるかどうかに興味がある方

ご提案

Obsidian + Gemini CLI で、AIが既存の社内文書を参照して新たな社内文書を提案できるようにする。例:

これまでのすべてのインタビュー結果を精査し、
それと比較しながら最新のインタビュー結果で新たにわかったことをまとめてください。

方法

使用前。適当なメモ。

1. Gemini CLIが使えるようにする
    1. Terminal(コミュニティプラグイン)を入れる
    2. .zshrcを編集してパスを通す
    3. テーマを変えるときは「/theme」
2. テキストファイルがファイル一覧に表示されない
    1. 全部表示させる設定にする
3. テキストファイルを開こうとすると外部アプリが開かれてしまう
    * 「open-as-md」プラグインを入れる

Gemini CLIにお願いする。

@Obsidianについて/使う前に設定すること.md の内容を分かりやすい説明にして下さい 

いい感じなので上書きする。

元のファイルを上書きして下さい

できあがったもの。

結果と感想

最終的に以下のようになりました。かなり良いのでは。

Obsidianを使い始める前の初期設定ガイド

このドキュメントは、Obsidianをより便利に、特にプログラミングやテキスト編集で活用するために推奨される初期設定をまとめたものです。


1. Gemini CLIコマンドラインツール)をObsidian内で使えるようにする設定

これは、Obsidianのノート作成画面から直接、Geminiのコマンドラインツールを操作できるようにするための設定です。

  • 1-1. 「Terminal」コミュニティプラグインの導入

    • 目的: Obsidian内にターミナル(コマンドを入力する黒い画面)を呼び出せるようにします。これにより、Obsidianを離れることなくコマンド操作が可能になります。
    • 手順: Obsidianの「設定」→「コミュニティプラグイン」から「Terminal」を検索し、インストールしてください。
  • 1-2. .zshrcファイルを編集してパスを通す

    • 目的: ターミナルが「gemini」というコマンドを認識できるようにするための設定です。PCに「この場所にgeminiというツールがありますよ」と教えてあげる作業だとお考えください。
    • 手順: Obsidianに導入したTerminal、またはPCの標準ターミナルを開き、設定ファイル(.zshrcなど)にGemini CLIの実行ファイルの場所を登録します。
  • 1-3. テーマの変更方法(メモ)

    • これは、Obsidianの見た目(テーマ)を変更する際の個人的なメモです。「/theme」というコマンドで変更できるように設定している、ということだと思われます。通常は「設定」→「外観」からテーマを変更します。

2. テキストファイル(.txt)をObsidianで快適に扱うための設定

Obsidianは通常、Markdown形式(.md)のファイルを主に扱いますが、以下の設定を行うことで、一般的なテキストファイル(.txt)もObsidian内で直接、快適に編集できるようになります。

  • 2-1. ファイルが一覧に表示されない問題の解決

    • 問題: デフォルト設定では、Obsidianのファイル一覧に.md以外のファイル(例: .txt)が表示されないことがあります。
    • 解決策: Obsidianの「設定」→「ファイルとリンク」の中にある「Detect all file extensions」という項目をオンにします。これにより、あらゆる形式のファイルがファイル一覧に表示されるようになります。
  • 2-2. ファイルが外部アプリで開いてしまう問題の解決

    • 問題: .txtファイルをクリックすると、Obsidian内ではなく、PCに標準で入っているテキストエディタ(メモ帳など)で開かれてしまいます。
    • 解決策:Open as MD」というコミュニティプラグインをインストールします。
    • 効果: このプラグインを有効にすると、.txtファイルを含む様々なテキストベースのファイルを、Obsidianのノートと同じように直接開いて編集できるようになります。

課題と展望

今後、会社の文書管理で積極的に使っていく。今までNotebookLMでやっていた業務も、移せるものは移す(NotebookLMの方が得意なこともありそう)。

執筆後にわかったこと

  • ObsidianのCopilotプラグインもなかなか良い。
  • もう少しGemini CLIを学ぶべきかも(ファイル操作やWeb検索などイロイロできそう)。
  • NotebookLMに比べるとGemini CLIの方が大胆なことを話すが、これは逆にRAG-Lock技術が備わっていて安心感のあるNotebookLMでも良いかもしれない。

参考資料

www.perplexity.ai

note.com