AIの使い道

2026年3月時点でどんな感じでAIを活用しているかを残しておこう。 変化の大きい領域なので後からふりかえると楽しいかもしれない。 コーディング 特にこだわりを持たずClaude Code、Codex、GitHub Copilot CLI を使っている。 どれも有料あるいはそれ相当のプランで利用している。 それぞれ小さな違いはあれどどれを使っても満足できる品質のコードが出てくる。 Allow/deny-tools、MCP、カスタムスラッシュコマンドをいくつか設定している程度でカスタムは少なめだと思う。 自分がコードを書くときはプランモードで計画を作ることから始める。不明点があれば最近はコーディングエージェント側から質問(選択肢 + 自由入力のハイブリッド)してくれるのでそれに答えながらまとまった文書に仕上げていく。この段階で最終的なアウトプットまで確定させておく。例えば Pull Request が欲しいならその指示を含めておくし、プロジェクト管理ツールのステータス・コメントを更新するならその指示を含めるようにする。テストについては、期待するスコープ・カバレッジを伝え、ローカルのテストとCIが成功するまで継続的にウォッチ・修正するよう指示する。そこまでできればあとは YOLO モード (all-allowとかautopilotとかとも呼ぶ)で一気に完遂させる。 サブエージェントとかAgent Teamとかそういう事は考えていない。 タスクの進め方についてはコーディングエージェントに任せて、人間は仕様の策定に集中する。ここまでで動くところまでは持っていけることが多い。 そこから先、PRの提出先によっては体裁を整えることにそれなりの時間を使っている気がする。例えば、コミット粒度やメッセージが適切かとか、これまでのコードの書きっぷりと差がないかとか外堀の部分。場合によってはコーディングエージェントの出力を横に置いてもう一度書き直していることもある。書いたのがAIであってもAuthor はこれまで通り自分だという感覚。ここが変わってない。 コードレビュー 溜まったReview Requestsに対して一括でレビューするようなカスタムスラッシュコマンドを作っている。 毎日一回程度実行して参考情報として使っている。 あくまでも参考情報をもらうだけで、Approve/Rejectの判断は人間がやっている。 馴染みのあるコードについては引き続き自分でレビューしている。 馴染みがないものや大規模なものは一発コーディングエージェントに投げてみて、質問を繰り返して理解を深めてから中身に入る。 実はここはあまりコーディングエージェントの恩恵を得られていないところでもある。 コードレビューをしている時には、純粋にコードの良し悪しだけを見ているのではなく、 他の変更と衝突しないだろうかとか、 安全にデプロイできるだろうかとか、 関連するユーザやチームのワークロードに影響はないだろうかとか、 適切な人がレビュアーに入っているだろうかとか、 どこまでの完成度を求めるべきだろうかとか、 いろんなことを考えていてそれを手放しにコーディングエージェントに任せる事はできていない。 長期の信頼によって成立しているところがあり、それができていないAIにはまだ完全にお願いするということはできず人間のApprove 作業が残っていてスケールできていない。 判断基準の言語化さえ出来ればおのずとツールは揃うことになるし、段々と人の手を離れていくのかな。 ドキュメント 人間がめんどくさいと感じる領域でありつつ、コーディングエージェントに向いている領域なので効果的に使えている。ここの負荷はだいぶ下がった気がする。コードとドキュメントそれぞれの全体を広く見回した上での一貫性のある編集はAIの得意分野だと思う。 デプロイメントのリスクが小さくリカバリーも容易いので向いている。 トラブルシューティング エラーメッセージと関連するリポジトリを渡して原因を特定するような小さなものは非常にフィットする。ただ「なんかたまに失敗するなあ」みたいなところを出発点にして、仮説と調査を繰り返すみたいなことはまだできていない。これは性質的に割り込みタスクであるし緊急性が高いことが多く精神的にも肉体的にもあらゆる面で人間の負荷が高い。AI導入の価値が大きい領域だと思う。十分な量のReadonly なツール群と安全な小さなWrite系ツール群がありかつ自律性の高いエージェントを作れば、AIは体力が無限にあるのでうまくフィットしそうな気がする。 定常的な作業 AIの導入を進めるというよりも、日々AIを使いながら自動化を進めていくのが良いと思っている。例えば、AIに日々の作業の手順書を書かせるのではなく、手順書が不要になるような自動化のためにAIの力を借りるという感じ。 文書作成 ここはAIがハマるかと思いきやそうでもない。 自分が普段使う資料は議論を促すようなものや誰かと方向性を合わせるために使うものが多く、AIに書かせたとしても文書を読んだ後のディスカッションに耐えないのでそのままでは使えない。資料があってそれを互いに読んでラフな理解があった前提で、そこからの会話が本番という感じなので自分の言葉が入っている必要がある。 おわりに 便利ツールの一つとして使い倒そうと考えている。仕事を奪われるとかそういうのはあまり感じることがない。 人間の代わりになるとも思わない。 遥かに人間を超越した知識や推論ができるけど長期的なプランを持っていない受け身なロボットが出てきたという感じ。今日時点だと人間が手綱を握るフェーズなのかな。 AIと人間の間には(人間同士にあるような)学習のフィードバックがないので、チームで動いた時に人間側が受け取ると期待される知識・経験が不足してしまう。 AIと一緒に何かを検討したり作ったりしたとしても、(ツールとしてAIを活用しているだけなので)個人開発の域を出ない気がしている。 あれ難しかったよね、実はあそこは… みたいなカジュアルな振り返りの会話が大事なんだろうね。 それが1エンジニアとして長期的にやっていくのに必要なものなんだろうと思う。 数年後はどうなってるだろうか楽しみ。 おしまい。

3月 6, 2026

プログラマが知るべき97のこと 読書メモ

プログラマが知るべき97のこと をスキマ時間に読んでいた。気になったところをメモしておく。 技術的負債は、即座に次のイテレーションで返済する。そうでなければ利息が膨れ上がる。 ゼロから描き直したい衝動・誘惑に打ち勝たなければならない。できるだけ既存コードを生かす。 新たな変更を加える時には1箇所でも良いので改善する。 コードを書くことは設計をすること。機械的な作業ではなく、創造的なもの。 コードレビューの目的は誤りの修正だけでなく、コードの共有所有を確立すること。 コメントには読む人が価値があるものを書く。つまり、コードに書いていないことや、コードにかけないことが書かれるべき。 プロジェクトの初期からデプロイ作業を始める。 1万時間やればエキスパートに必ずなれる。ほぼ自分がなろうとするかという意思の問題。 Windows 2000には"TERRIBLE HORRIBLE NO GOOD VERY BAD" と書かれている。見られて恥ずかしいデータは使わないこと。 厄介なのは今はプログラマでなくても以前プログラミングを「ちょっとしたことがある」くらいの人。 SCM へのチェックイン後は開発者は傍観者になるべき 開発者は開発サーバより後の環境へはアクセスしない、QA・顧客は開発サーバへアクセスしない API自身だけじゃなく、APIを利用するコードのテストもする ハードワークは報われない。自分の働く時間や労力を減らすほどプロジェクトへの貢献が大きくなる。 知識と技術の研鑽を怠ってはならない。 バグレポートには、バグの再現方法、頻度、本来の仕様、実際の動作を書く。 パラダイムの異なる第二の言語を学ぶ。 データ構造、アルゴリズムの時間と空間の複雑性を知る。 見積もりを求められた時には、見積もり、ターゲット、コミットメントを区別する。 正しく使用する方がミスするよりも簡単。インターフェイスが良ければ、正しく使用できる。 メモリ共有の代わりに、メッセージパッシングを使う。 テスト担当者は敵ではなく友人。 環境に関する情報もバージョン管理する。 互いの理解には、定義の共有ではなく経験の共有が必要。 シングルトンパターンはテストや保守性の点で不利。 Ubuntuはズールー語で他者への思いやりという意味。 このコードは生涯、自分がサポートし続けると思って書く。 テストは見る人のために書く。 顧客には頻繁に疑問を投げかける。顧客から言われたことを自分の言葉で言い直すと良い。 議論の時は図や絵を利用することが大切。設計の早い段階でモックアップを作るのも良い。 ステートを取り扱う時はステートマシンを意識する。 コードネームをつける。身近でよく知っている名前が良い。チームの結束のための合言葉。 単純作業であってもルーチンワークを1日の最初に行う余地を残しておくと良い。 師匠となる人を見つけると良い。 快適な環境を追求する。 声の大きいユーザからの要望に忠実に答えると、バグの出やすいソフトウェアになってしまう。Feature Creepに陥る。 命名にこだわる。機能の設計の重要な一つ。

12月 25, 2024

自己分析ツール

一年前に受けたストレングスファインダーの結果を見つけた。いつか役に立つかもしれないのでここに残しておく。 さらに似たような 16personalities.com なるものを今日見つけたのでやってみた。 ストレングスファインダー 2021/1/18 に実施。2,000円程度の書籍を買う必要があり、テストには1時間弱かかる。 16personalities 2023/1/31 に実施。無料で15分程度でテストを受けることができる。 profile から結果に飛べる。 どうやら冒険家(Turbulent Adventurer, ISFP-T)に該当するようだ。

1月 31, 2023