AIはメンターを代替しないが、唯一利用可能なメンターかもしれない
著者は、職場で効果的なメンターシップが得られない状況で、AIを「相談相手」として活用し、ソフトウェア開発での行き詰まりを克服した経験を語ります。ClaudeなどのAIと対話することで、複数の設計オプション、コードレビュー、ガイダンスを得て、自主的に情報に基づいた意思決定ができるようになりました。
ソフトウェア開発の現場で、著者は社内ツールを開発する際にしばしば孤立を感じていました。チームの雰囲気は良好ですが、同僚たちはこれらの「脇道」プロジェクトに熱意を示さず、深い指導や建設的なフィードバックを提供してくれません。このような状況は、設計方針や実装パターン、コードの保守性に関する技術的な意思決定において「ライターズブロック」を引き起こしていました。同僚から得られるフィードバックは批判的で、「このプロジェクトは重要じゃないから好きにやっていいよ」とか「複雑そうだね」といったもので、改善のための具体的なアドバイスはほとんどありませんでした。
しかし、著者はAIツール(特にClaude)を効果的な代替メンターとして活用できることを発見しました。AIとの対話は、単に答えを求めるのではなく、問題を一緒に考える「相談相手」としての役割を果たします。AIは一つの「正しい」答えではなく、複数の選択肢を提示するため、著者はそれぞれのトレードオフを検討し、自身の状況に最適なものを選ぶことができました。例えば、グラフデータベースAPIの構築では、AIが三つの設計案(map[string]any、リフレクションを使うany、ToProperties()インターフェース)を提案しました。AIはリフレクションを推奨しましたが、著者はmap[string]anyを選び、インターフェース層をスキップするという独自の判断を下しました。
AIのもう一つの利点は、具体的でテスト可能なコードスニペットを提供し、その情報の出所(構文ルールか実際のライブラリか)を正直に認める点です。これにより、著者は経験不足に起因する盲目的な信頼を避けられました。例えば、Cypherプロパティ文字列を構築する際、AIは完全なbuildPropsString関数を提供し、ユーザー入力のサニタイズ、シングルクォートのエスケープ、ネストされたオブジェクトの処理などの注意点を指摘しました。著者はこの情報がApach AGEドライバではなくCypher構文ルールに基づいていることを確認し、標準ライブラリの関数を見逃していないことを知りました。
AIは人間のメンターが持つ経験や直感を完全に代替することはできませんが、他の指導リソースが不足している場合には貴重なリソースとなります。著者は、AIを自動的なソリューション生成ツールではなく、思考を補助するパートナーとして活用する重要性を強調しています。積極的に質問し、提案に異議を唱え、検証することで、技術的な障害を克服するだけでなく、自信と独立した問題解決能力を徐々に構築することができたのです。また、AIのコードレビューには一貫性の問題があり、同じコードに対して矛盾するアドバイスをすることがあるため、通常は一度だけレビューを依頼し、自身でコメントを追加して将来の保守性を確保しています。AIは完全なメンターにはなり得ませんが、少なくともいつでも利用可能な相談相手を提供してくれるのです。