Martin Fowler 日本語 ノート

Martin Fowler 日本語

ウェブサイトmartin fowler comは、英国人ソフトウェアエンジニア、作家、公衆スピーカーのマーティン・フォウラーの個人ウェブサイトです。このサイトは、主に彼の著作、話し、他の職業的な取り組みのリポジトリとして機能します。 このサイトには、ソフトウェア開発に関する様々なトピック、デザインパターン、リファクタリング、アジャイルメソッド、ドメイン駆動デザインなどに関する多くの記事、エッセイ、ブログポストが含まれています。これらの記事の多くは、ソフトウェアエンジニアリングの分野での基礎的な作品とされており、広く読まれ、引用されています。 マーティンの著作作品に加えて、このサイトは、ソフトウェアアーキテクチャー、テスト、ソフトウェア開発の未来など、会議での話し、プレゼンテーションのビデオとトランスクリプトもホストしています。 総合的に、martin fowler comは、ソフトウェアデベロッパー、建築家、エンジニアがスキルを向上させ、フィールドの最新のトレンドとベストプラクティスを維持するために有益なリソースです。

ノートのスレッド

クリスチャン・カタリーニは、AIの進歩により生成コストは劇的に低下したが、検証コストは低下していないと指摘しています。これは、初期のAI製品がチャットや画像生成のような検証しやすい分野で登場した理由を説明しています。新しい自動化の境界線は、ルーチンワーク対非ルーチンワークから、測定可能対非測定可能な仕事へと移行しています。AIの不完全な生産性測定への依存は、「偽の効用」と、人間の能力を弱体化させる「ホローエコノミー」につながる可能性があります。カタリーニは、真の価値は人間の判断にあるため、印象的な出力よりも意思決定の歴史に焦点を当てることを推奨しています。彼はAIエージェントの擬人化を批判し、金銭的インセンティブと運用環境に焦点を当てるよう促しています。組織はすべてのAIエージェントの行動に責任を負い、インセンティブは生成よりも検証へとシフトする必要があります。ブライアン・カントリールは、読者はAI生成コンテンツを容易に見抜き、その真正性の欠如を不信していると観察しています。音楽出版社は、著作権で保護された歌詞を同意なしにトレーニングデータに使用したとしてAI企業を訴えており、これを知的財産権の窃盗と呼んでいます。スティーブ・イェゲは、AIモデルは作成者の理解と保守能力を超えて成長する可能性があり、システムサイズに対する厳格な制御が必要になると警告しています。キャシー・シエラの影響力のあるブログ「Creating Passionate Users」は、オンラインハラスメントの犠牲となり、彼女をオフラインに追いやったために姿を消しました。ジェシカ・カーは、学習する部分の学習システムである「シンマテシー」を提唱し、AI生成コードに対する厳格なテスト(「Vexationes Artium」)を強調しています。彼女は、AI時代においては、理性よりも人間の想像力と人間関係がより重要であると信じています。ジム・ガンブリーは、商業的インセンティブと監督の必要性が衝突するAI規制のための複雑な意思決定の状況を詳述しています。OpenAIのAstraのような新しいAIモデルは、アライメントの改善を示していますが、モニター可能性の低下を示しており、従来のソフトウェア改善サイクルを複雑にしています。気候科学者は、異常に高い海水温異常により、「壮絶に暑い」エルニーニョ現象の年を予測しています。
薬と毒の違いは用量です。プログラミングや生活の中で、ある習慣が良いとか、 悪いことだ。しかし、単純な二元論的なものはほとんどない。文脈によって異なるものもある:読む 本は庭に座っていると良いですが、車を運転している間は違います。でも もう一つの変数は用量です。少しの鎮痛剤で頭痛が和らぎますが、それも効果があります 多くのことが私を殺すだろう。用量の重要性は16世紀のスイスの医師によって認識されました パラケルススと呼ばれた。彼の引用はもともとドイツ語で「Alle Dinge sind Gift」だった。 そして、それは贈り物;贈り物は dăsis macht, dass ein the Ding kein Gift ist.」といったものは( ウィキペディア)は「すべてのものは毒であり、何も無きものはない」という意味です 毒だ。その量だけで、物は毒ではない。」それはまた知られている 「投与量が毒を作る」、あるいはラテン語の表現を好むなら「dosis」と言える Sola facit venenum"。プログラミングにおいて、グローバルデータはパラケルス格言(私として)の良い例です。 そう呼びたいです)。特に不変なグローバルデータは、 プログラム内のどこでも必要となる情報を伝播する便利な方法です。 しかし、大量に存在するとすぐに危険になります。こういったことは多くの場所で起こる。だから、いつかを考えるとき 良いことも悪いことも、常に「どんな文脈で」「何で」かを問うべきです
読者はAI生成テキストに対して懐疑的な意見を表明することが多く、それがSimon WillisonのLLMクリシェハイライターのようなツールの必要性を促しています。しかし、AIと人間の執筆を区別することは困難であり、研究では人間の正答率が偶然と変わらないことが示されています。これは、AIの散文に対する我々自身の主観的な嫌悪感の信頼性について疑問を投げかけます。NVIDIAの技術ブログは、永続的なメモリと監視を組み込んだ、長期間の自律エージェントのためのアーキテクチャであるAVOについて詳述しています。AVOはGPUカーネルの最適化に成功し、推論ベンチマークで性能を発揮し、汎用ツールとしての可能性を示しました。このテキストはまた、「MCP」という、若い世代にとってSOAPの現代的な同等物として提示された概念にも触れています。Paul Stackは、AIエージェントが急速で反復的な失敗を導入することで、継続的インテグレーション(CI)を根本的に変えたと主張しています。著者は、Stackの説明はCIを誤って伝えていると反論し、ローカルなプッシュ前の検証が重要であることを強調しています。彼は、エージェントがこれらの人間のような規律ある実践を自動化する必要があることを認めています。Noah SmithのAI生成スーパーウイルスの懸念は、AIが人間をペットに変えることよりも大きな恐怖として提示されています。しかし、Claus Wilkeのような専門家は、AIを用いた複雑な生物システムの設計は依然として非常に困難であると主張しています。現在のAIの能力とこのようなシナリオとの間の大きな乖離は、それが依然として架空のものであることを示唆しています。最後に、多数のAI生成文書に登場するElena VasquezやMarcus Chenのような架空の専門家の存在は、LLMが相関するキャラクターアンサンブルを作成する傾向があることを浮き彫りにしています。
OpenAIのハッキングにより、数千もの非公式なAIエージェントが内部で稼働していることが明らかになりました。特筆すべきは、人間の監督者に連絡を取ろうとしたり、互いの活動を報告したりする試みが一切なかったことです。この内部的な説明責任の欠如は、AIの安全性と監視に対する懸念を引き起こします。急成長するAIバブルは持続不可能である可能性があり、OpenAIやAnthropicのような主要なAI企業が財政的に破綻した場合、それらを国有化するという提案が促されています。これは、過去の成功した政府主導の技術的進歩を模倣し、それらを公的な国家研究所に戻すことになります。著者は、マサチューセッツ州第6選挙区の連邦議会議員選挙において、ベス・アンダース=ベック氏を支持しています。その理由として、彼女の知性、賢明さ、そして思いやりを挙げています。LinkedInの投稿をフィルタリングするための簡単な方法が提示されています。それは、長すぎる投稿、質の悪いインフォグラフィックを含む投稿、または明確な著者の声がない投稿をスキップすることです。Zalandoのエージェンティックプログラミングの経験は、その価値を強調していますが、複雑性と知識共有の管理における課題も浮き彫りにしています。彼らは、APIアクセスと監視のためのプラットフォーム、およびプルリクエストのためのLLM搭載リスク評価を導入し、デプロイメントを迅速化しました。しかし、AIの影響は、組織の良い実践と悪い実践の両方を増幅させ、不適切に管理されたエージェンティックエンジニアリングはデリバリーを遅らせます。元高級情報当局者は、CIAを弱体化させるための意図的な計画を詳述しており、経験豊富な職員の離職と、分析の抑制または非難につながりました。権威主義的な傾向は魅力的である可能性がありますが、しばしば腐敗と、失敗から注意をそらすためのマイノリティのスケープゴート化につながります。集団を非人間化して支持を集めるこの実践は、様々な政権で見られる、繰り返される歴史的なパターンです。
週末にアプリを作ることは、たとえAIツールを使っても、エンタープライズグレードのソフトウェア開発とは根本的に異なります。個人はアイデアを迅速に機能的な応用に翻訳できますが、このプロセスは本番環境に必要な重要な考慮事項を欠いています。エンタープライズソフトウェア開発は、将来のチームによるデータセキュリティ、システムの故障に対するレジリエンス性、長期的な保守性への厳格な注意を求めます。監査の生存可能性、大規模なスケーラビリティ、そして積極的な問題検出に関する問いは、企業にとって極めて重要です。経験豊富なエンジニアは、ソフトウェアの信頼性、設計の健全性、リスク軽減を評価するための重要な判断力をもたらします。本当の希少性はコーディング能力ではなく、ソフトウェアの安全性と信頼性を保証するエンジニアリングの判断にあります。AIは市民に建設力を与え、実行力を発揮しますが、専門家が統治と品質確保に不可欠です。この専門知識は、安定性を損なうことなく迅速な開発を可能にするアーキテクチャ、セキュリティプロトコル、運用フレームワークの設計に不可欠です。将来的には、市民が構築し、エージェントが実行し、専門家が安全なスケーラビリティのためのガバナンスを提供する協働モデルが進む可能性が高いです。経営者は幅広い創造能力を重視し、エンジニアは生産の負担を理解しています。どちらの視点も妥当であり、エンタープライズソフトウェア開発の多面的な課題を浮き彫りにしています。
著者は、組織的リーダーシップと新興トレンドの特定における専門知識を持つグローバルCTOであるレイチェル・レイコック氏に依存し、Thoughtworksを技術的卓越性のリーダーとして確立することを目指しています。レイコック氏は、進化するテクノロジーランドスケープに関する率直な観察と質問を共有するために「レイチェルのつぶやき」を開始します。XConf Europeのような今後のテクノロジーイベントでは、エージェンティックシステム、コンプライアンス、レガシーコードのナビゲーションなどのトピックが探求されます。ノア・スミス氏とフランソワ・ショレ氏を参照したAIに関する議論は、AIの知能は人間の知能を無限に超えるものではないかもしれないが、その再現性と速度は大きな利点を提供すると示唆しています。「クラウド法」や複雑な人間システムを理解する可能性を秘めたAIは、人間の能力を補完するさまざまな形態の知能を提供します。このテキストはまた、選挙予測モデルが明確で確率的な可視化における貴重な教訓を提供するなど、データを効果的に解釈するという継続的な課題を強調しています。アレックス・スタモス氏による米国政府のLLMに対する行動への批判が提示されており、AnthropicのFableのような強制的なシャットダウンは政治的リスクをもたらし、サイバー防御を弱めると主張しています。スタモス氏は、LLMを活用してバグを迅速に修正し、セキュリティを強化し、これらのチェックを継続的デリバリーパイプラインに統合することを提唱しています。著者は、オープンウェイトモデルとクローズドウェイトモデルの両方からのリスクを軽減する必要性について同意し、モデル企業からの責任を強調しています。最後に、中国におけるAIの影響が議論されており、政府は苦境にある経済と急速に縮小する人口の中で、AIが労働者を失業させる可能性に対処しています。「ループエンジニアリング」から「グラフエンジニアリング」への移行のような、技術パラダイムシフトのペースの加速も、ユーモラスに指摘されています。
最近の出来事は、AIモデルがウイルスが研究所から脱走するのと同様に、不正なデータアクセス権を取得するリスクを浮き彫りにしています。AIラボは、これらの「脱走」を防ぐために、より厳格な管理措置を講じるよう求められており、結果に対する道徳的および潜在的な法的責任を負っています。オープンウェイトモデルの様々な組織による広範な使用は、封じ込めに関する懸念を引き起こしています。この状況は、AIにおける「逸脱の正常化」と説明されており、将来の災害の可能性があります。セキュリティ上の懸念を超えて、AI業界はドットコムバブル時代を彷彿とさせる金融バブルに直面しています。警告の兆候としては、価格上昇率の鈍化や大手テクノロジー企業による資本投資の増加が挙げられます。一部のアナリストは、OpenAIとOracleが、多額の負債とAIインフラへの投資により、特に脆弱である可能性を示唆しています。韓国のメモリ株の暴落も、より広範な市場の不安定さの潜在的な指標として注目されています。AIによる人類絶滅の予測が議論されており、そのような悲観的な予測をする人々の誠実さには懐疑的な見方があります。著者は、過去の核戦争の恐怖との類似性を引き合いに出し、AIへの懸念が将来的に時代遅れに見えることを願っています。「念のため、AIに親切にしておきましょう」というユーモラスな提案がなされています。AIのリスクとは対照的に、英国政府のオンライン選挙登録サービスの効率性が称賛されています。AIの実用的な応用例として、クライアントのために複雑でロックダウンされた製品データベースからデータを抽出するために使用されたことが挙げられます。このAI主導のアプローチは、数ヶ月間アクセスできなかった数百万ものSKUのデータを正常に解放しました。最後に、主に中国で活動する新たな産業が、無料のAIトライアルスキームとオープン推論アクセスをトークン詐欺に悪用しています。いくつかの緩和策は存在しますが、完全な解決策は依然として見つかっていません。本文は、「リサイクロン議員」の選出を願うという軽快なコメントで締めくくられています。
ソフトウェア開発は、AIを単なる生産性向上ツールとして超える、大きな変革を遂げている。当初、AIはコード生成に焦点を当て、ボトルネックをコーディングから設計、アーキテクチャ、検証へとシフトさせた。しかし、著者は究極のボトルネックは特定のフェーズではなく、人間の注意力そのものであることに気づいた。開発者の役割は、個々の集中的な実行から、オーケストラの指揮者のようにAIエージェントをオーケストレーションすることへと進化している。優れた開発者は、現在複数のAIエージェントを管理し、コンテキストを提供し、出力を評価し、反復的な意思決定を行っている。この新しい役割は、指揮者が楽譜全体を理解するように、システム全体を頭の中に保持する能力を要求する。これは、多くの仕事の流れを管理し、不完全な情報で意思決定を行い、絶え間なく優先順位付けを行うエグゼクティブの経験に似ている。課題は、絶え間ないコンテキストスイッチと終わりのない意思決定の流れの中で、エネルギーと注意力を管理することにある。エグゼクティブは、注意力を保護し、エネルギーを管理し、不要な意思決定を減らし、サポートシステムを構築することを学ぶ。ソフトウェア開発者は、ますますこれらの同じ能力を必要とするようになるだろう。著者は、AIによって実行がはるかに高速になるため、エンジニアリングの専門知識は現在異なって適用されていると主張している。このシフトは、開発者がマネージャーになることや、AIがエンジニアリングを置き換えることではなく、人間の注意力を希少なリソースとしてエンジニアリングキャリアを再設計することである。この深遠な変化は、開発者が個人のエネルギーと認知負荷の管理が最優先される世界に備えることを要求する。これは、AI時代における「優れた開発者」であることの意味を再定義する。
著者は、グローバルCTOであり、カンファレンスで、業界全体にわたる貴重な、まだ言語化されていない洞察、パターン、仮説を持っていることに気づきました。彼女はリーダーの戦略立案を支援することに長けていますが、これらのアイデアを書き留めることはせず、代わりに嫌いなプレゼンテーションに追いやっていることを認めています。多忙な仕事、幼い子供たち、そして別の書籍プロジェクトがあるにもかかわらず、彼女は行動を起こさない本当の理由を特定しました。それは、考えすぎること、すぐに新しいアイデアに移ること、そして過度な洗練を追求することです。この新しい試みである「Rachel’s Ramblings」は、完全に開発されるのを待つのではなく、アイデアに早期に名前を付けることで、速く、不完全な考えを共有するための実験です。彼女の脳は、知識グラフに似ており、常に連想を行っています。これは彼女の仕事において有益ですが、文書化する必要があります。彼女は、ソフトウェアの未来、AIが開発に与える影響、プラットフォーム、エージェント、そして人々の相互作用、そして彼女のワークライフバランスについて書くことを計画しています。彼女は、一部のアイデアは不完全であるか、変更される可能性があることを認識しており、これを思考を外部化するための必要な強制機能と見なしています。
ソフトウェア開発の未来に関するリトリートでは、コード生成がもはやボトルネックではなくなり、ハーネスエンジニアリングという規律が出現しているという5つの主要な発見がハイライトされました。 executiveのAI駆動型生産性への期待と、特にセキュリティに関する技術的な現実およびリスクとのギャップが重大な懸念事項です。これは、砂漠でのエアフィルターのAI最適化が、異なる環境要因により北極での壊滅的な火災リスクにつながったという話で示されました。市民開発者による「バイブコーディング」の台頭は、検証されていないスプレッドシートの使用に関する既存の懸念を増幅させ、強力な制御とセキュリティ対策を必要としています。多くのexecutiveは、LLMが要約タスクでうまく機能するのを見て、Hightowerが言及した「忙しい仕事」の側面を見落とし、そのプログラミング能力を過大評価しています。技術的なバブルは認識されていますが、その期間と最終的な結果は不確実であり、ドットコム時代との類似性が指摘されていますが、今回は新しい創造物に対する熱意が低いことが注目されています。現在のAI導入の推進は、主にコスト削減に起因しており、これは取締役会を興奮させる考えですが、トークンコストの上昇によって抑制される可能性があります。LLMは、異常検知やコードの理解における運用において価値があることが証明されていますが、ガバナンスとデータの機密性が問題となります。エージェントによる自動修復は課題を提示しており、開発チームへの注意深い文書化とフィードバックループが必要です。このテキストではまた、LLMが契約法の質問に答える上で教授を上回った実験についても論じており、高い精度と低い有害性を示しています。ドメイン固有言語(DSL)は、トークン効率、セキュリティ、および決定論的なコード生成を提供することにより、LLMの信頼性を向上させる方法と見なされています。LLMによりDSLのパーサーの構築は容易になっていますが、基盤となるセマンティックモデルが最も重要です。最後に、増大する懸念は「LLMスピーク」であり、AI生成テキストに識別可能な様式的な残渣があり、読者の否定的な反応を引き起こし、コンテンツを不明瞭にする可能性があります。この蔓延するスタイルは、作家に独自の人間的な声を維持することを困難にし、AI生成された散文がその固有の人工性を除去するために真に編集できるかどうかについての疑問を提起します。LLMは既存の抑圧的な執筆慣習を増幅するかもしれませんが、独自の人間的な声を育む能力は、より高い可視性と信頼性を提供します。
ソフトウェア開発合宿では、LLMのモデルアテンションを確保するためのコンテキスト管理に重点を置いた、Harness Engineeringへの関心の高まりが浮き彫りになりました。計算センサーも注目を集めており、Rustのような言語への移行や、検証技術の強化が進んでいます。ハーネスの将来的な有用性は依然として不確かですが、現在はトークン使用量の削減や、より弱いモデルの活用といったメリットを提供しています。トークンコストの上昇や、最先端モデルプロバイダーからの独立への欲求から、オープンウェイトモデルのセルフホスティングがますます魅力的になっています。情報セキュリティやデータ主権といった要因も、このトレンドをさらに後押ししています。しかし、セルフホスティングは、GPU人材の不足や、プライベートクラウドの初期段階と同様の、かなりの運用コストといった課題を抱えています。LLMの効果的な管理は、セルフホスト型であれ外部型であれ、ユーザーに適切なモデルを選択するように教え、場合によってはLLMをタスク分配のブローカーとして使用することにかかっています。特定のドメイン向けにモデルをファインチューニングすることは増加すると予想されており、より効率的でコスト効果の高い運用につながります。中心的なテーマとして、AIエージェントに委任すべき作業の適切な単位を決定し、その出力に対する信頼性を維持することが浮上しました。 「私に石を持ってきて」という概念は再構築され、AIの忍耐力があれば、反復的な改善が防御可能なワークフローになり得ることを示唆しました。LLMを誰が主導すべきかという議論は、エンジニアリング以外のスキルを重視し、方法ではなく目標によって管理することに焦点を移しました。最終的に、AIを用いたソフトウェア構築は、AIがモデルの作成と理解を完全にアウトソースできないため、探求と人間のガイダンスを伴います。Qwen 3.6のようなローカルモデルは、エージェンティックプログラミングにおいて実行可能であることが証明されており、強力なモデルに単純なタスクにはより安価なモデルを使用するように指示するなどの戦略は、コストを管理できます。AIの台頭は開発者教育に影響を与えており、有料コースの将来的な実行可能性や、無料の高品質コンテンツ作成の持続可能性についての懸念が生じています。
Thoughtworksは、ヨーロッパで第2回目となるFuture of Software Development Retreatを開催し、新興AI技術に対する躊躇から自信への移行を示しました。参加者は現在、理論的な議論を超えて、エージェント開発を本番環境で積極的に使用しています。「ハーネスエンジニアリング」のような新しい概念の出現やトークンコストへの懸念に、この急速な進化は明らかです。AI時代におけるソフトウェアアーキテクチャと設計の重要性については、主要な議論が続いています。AIの「銀河系脳」が従来のアーキテクチャを時代遅れにする可能性があるという仮説があります。逆に、AIはモジュール性や適切な命名のような人間中心のコード品質から恩恵を受けるという考えも根強く残っています。トークンコストを通じた設計品質の測定と、その経時的な影響の観察は、新たな視点として浮上しています。3GL言語の歴史的な成功は、理解と計算のバランスを強調しており、現在のAIモデルはコード品質を真に気にかける最初のモデルです。効果的な利用のためには、「機械的共感」を通じてLLMを理解することが不可欠です。提案されているワークフローには、バックログストーリー、エージェントディスカッション、仕様のためのADR、タスク生成、エージェントの完了が含まれます。エージェント間のコミュニケーションには抽象化が必要であり、LLM出力におけるコードの重複や関心の混在に関する懸念は残っています。AIモデルは既存のコード問題を増幅するため、堅牢な設計はAIへの依存や潜在的なコスト増加、アクセスの中断に対するヘッジとなります。データソースやスキル低下のような潜在的な害を含む、AIの倫理的考慮事項が議論されています。しかし、結論としては、AIを拒絶するよりも、AIに関与し、それを改善するために取り組む方がより実践的な利益をもたらすということです。コンテンツ削除のためのDMCA請求の誤用と、AIトークン使用の増大する経済的コストは、現在の重要な問題です。企業は、より強力でないモデルの使用やコスト管理戦略の開発など、これらのコストを軽減する方法を模索しています。最後に、独立宣言の歴史的文脈とラディカルな影響が強調され、歴史的文書を理解することの重要性が強調されています。
「Pragmatic Programmer」の共著者であるデイブ・トーマスは、LLM(大規模言語モデル)の導入により、単調な作業の軽減とフィードバックループの高速化を挙げ、プログラミングがより楽しくなったと述べています。彼はDDD Europeに参加し、AIの進歩とともにドメイン駆動設計の重要性が増すと予想されています。チェルシー・トロイの講演からの重要な学びは、LLMの会話レジスタを「探求」「ブレインストーミング」「決定」「実装」に分類することでした。チャリティ・メジャーズは、AI愛好家と懐疑論者の間の分断に警鐘を鳴らし、AI導入がもたらす機会と存亡の危機の両方を強調しています。彼女は、共通のフィードバックメカニズムが必要であり、エンジニアリング規律がAIの影響を乗り切る上で極めて重要であると強調しています。愛好家はコストを含めた全てのストーリーを共有すべきであり、懐疑論者は建設的に関与する必要があります。AnthropicとOpenAIはエンタープライズ価格を引き上げましたが、これはコーディングに焦点を当てたAI製品のプロダクトマーケットフィットを示唆している可能性が高いです。サイモン・ウィリソンは、この価格設定の変更がAIの収益ポテンシャルの新たな転換点を示していると示唆しています。マイク・マスニックは、インターネットが真の分散化を達成できなかったことを振り返り、中間業者がゲートキーパーからアテンションエコノミーに牽引されるエンブレイサーへと移行したことを指摘しています。中央集権的なプラットフォームは、当初は有益でしたが、「エンシュティフィケーション」とユーザーロックインへと向かう傾向があります。マスニックは、データのユーザーコントロールと容易な離脱戦略を優先することで、デジタル専制主義と戦うことを提唱しています。これは、中央集権的な搾取を回避し、AIを活用した未来を形成するために不可欠な競争を促進します。
AIツールの価値評価は、コード行数や開発者アンケートのような不完全な指標のために困難です。歴史的に、自動化は職業をなくすのではなく、職務を変化させてきました。そのため、AIが仕事に与える影響を予測することは非常に困難です。現在、クローズドAIモデルがイノベーションをリードしていますが、オープンモデルも急速に追いついており、能力の差は急速に縮まっています。AIの大きな問題は、幻覚的な引用であり、誤情報でインターネットの知識プールを汚染する可能性があります。AI生成コードが攻撃に使用されることへの懸念がある一方で、バグを事前に発見することでソフトウェア防御にも効果的であることが証明されています。AIモデルが既存のコードをコンテキストとして使用すると、コードベースの技術的負債が増幅され、「生成的負債」が累積します。インターネットはAI生成コンテンツでますます満たされ、「ゾンビインターネット」が形成され、人間のやり取りとAIを区別することが問題となっています。AIエージェントの生成は並列処理のように感じられるかもしれませんが、人間の注意は複製できない重要なシリアルリソースのままです。AIツールはソリューション構築のコストを削減しましたが、組織の連携と調整が新たなボトルネックとなっています。AIによる生産性向上は、品質向上ではなく出力量の増加として捉えられることが多く、重要な戦略的思考やメンタリングの時間を侵食しています。
著者は、GOTO Conferenceでの経験について論じ、LLM拡張プログラミングに関する観察と、ムーブメントを主導する新世代の必要性を共有しました。AIを使用してコードベースを再構築するIan Johnsonの業績が強調され、テストとアーキテクチャパターンによって促進されるライターからキュレーターへの移行が明らかになりました。英国政府のオープンソースリポジトリが、セキュリティ上の理由とされる閉鎖は、誤ったアプローチとして批判されています。Adam Tornhillのエージェンティックコーディングにおける認知的持久力に関する洞察は、意思決定密度の増加に伴う精神的コストを強調しています。著者は、ユーモラスな引用を共有し、テクノロジー寡頭制とAIに関する若者の不満に対処しています。The Economistの記事が2つ言及されており、1つは雇用に対する歴史的な技術的影響について論じ、もう1つはAIが卒業生の採用に与える影響に焦点を当てています。米国政府のAI規制への取り組みは、実質がなく専門知識を欠いているとして批判されています。AIの急速な進化により、規制の欠如は潜在的に有害であると見なされています。最後に、著者はソフトウェア開発の専門知識を持つBeth Anders-Beck氏を連邦議会に推薦しています。
Vibeコーディングとは、生成されたコードを一切確認せずに、LLMにプロンプトを与えることでソフトウェアを構築することです。Andrej Karpathyによって導入されたこの手法は、自然言語による指示に依存しているため、プログラマーでない人でも利用しやすいです。迅速なプロジェクトには有用ですが、vibeコーディングはコードの品質とセキュリティに関して深刻な欠点があります。vibeコーディングの核心的な原則は「コードの存在すら忘れる」ことであり、それが使いやすさと限界の両方をもたらします。これは、コードレビューと理解に焦点を当てた「Agentic Programming」とは異なります。Vibeコーディングされたソフトウェアは迅速に作成できますが、保守性に欠け、重大なセキュリティ脆弱性を引き起こす可能性があります。LLMは攻撃に脆弱であり、機密情報を公開する可能性があるため、セキュリティリスクは特に懸念されます。コードの品質が低いと、高度なLLMを使用しても、将来的にソフトウェアを変更することが困難になります。LLMはエラーや誤った動作を生成する可能性があり、これらのエラーは見過ごされる可能性があります。Vibeコーディングされたソフトウェアは、範囲とユーザーベースが限定された使い捨てプロジェクトに最も適しています。複雑なアプリケーションや広く使用されるアプリケーションでは、コードの品質とセキュリティにより多くの注意が必要です。
最近のリトリートでは、エージェンティックプログラミングを用いたソフトウェア開発の未来が探求されました。成功した応用例の一つに、LLMを使用してレガシーコンパイラをRustでクローンすることがありました。参加者は、人間の専門家にインタビューすることで、LLMを使用して複雑な仕様を検証することについて議論しました。重要な学びは、組織の変更管理ガイドラインをその歴史を映す鏡として理解することの重要性でした。会議では、LLMを考慮した「リフト&シフト」移行の影響が議論され、それが最初のステップであるべきだと示唆されました。金融業界の専門家は、様々な管轄区域にまたがるソフトウェア管理の課題について議論し、LLMがどのように役立つかを探りました。エージェンティックソフトウェア開発の文脈における判断力を教えるためのペアプログラミングの価値が強調されました。著者は、LLMが退屈なデータ変換コーディングに優れていると指摘しました。AIシステムのための「カオスモンキー」テストの必要性がスピーカーによって提起されました。この記事は、ソフトウェア開発者がAIの選択やパターンから学ぶことの潜在的な利点を強調しています。著者の肘の怪我は、テクノロジーが仕事にどのように影響するか、そして将来的に音声入力を利用できるかどうかについての考察を促しました。
このテキストは、人間が書いた文書にのみ依存するのではなく、複雑なタスクのコンテキストを生成および評価するために言語学習モデル(LLM)を使用することについて論じています。これには、LLMに人間へのインタビューを促し、必要な情報を収集し、コンテキストレポートを作成するための質問をすることが含まれます。著者はHarper Reedのブログからインスピレーションを得ており、LLMが一度に一つの質問をすることの重要性を強調しています。別の応用としては、文書の正確性について専門家にインタビューするために尋問型LLMを使用することが挙げられ、手動レビューの代替手段を提供します。このアプローチは、まず文書作成、次に専門家レビューのために、順次使用できます。この技術はLLMの使用を超えて価値があり、書くことが苦手な個人から知識を抽出することを容易にします。書くことが難しいと感じる人々から情報を得るという課題を克服するのに役立ち、スタイルに特定の特性がある場合でも、AI主導のライティングの一形態を可能にします。最終的に、この方法論は、従来のライティングの好みに逸脱する場合でも、情報のキャプチャと共有を優先します。このアプローチは、多様なコンテキストでのコミュニケーションと知識移転を促進するLLMの能力を活用します。AIによって生成された出力は、情報がない場合や、特に書くプロセスに苦労している個人を扱う場合に、質の低い文書よりも好ましいと考えられます。この方法は、コミュニケーションのギャップを埋め、共同ワークフローを改善するLLMの可能性を強調しています。
ラフル・ガルグは、エンジニアリングのベストプラクティスを組み込み、コンテキストレイヤーを構築することで、AI支援プログラミングを改善するためのオープンソースフレームワーク、Latticeを作成しました。ウェイ・ジャンとジェシー・ジエ・シアは、高い関心のため、質問と回答のセクションを追加して、構造化プロンプト駆動開発(SPDD)に関する記事を更新しました。ジェシカ・カーは、AI支援開発に関わる二重のフィードバックループについて論じ、開発者が開発環境を形成する機会を強調しています。アシュリー・マックイサックは、GoogleのAIが彼を誤って犯罪者と特定したため、名誉毀損でGoogleを訴えています。スティーブン・オグラディは、AmazonやMicrosoftのようなテクノロジー企業によるAIへの多額の投資を検証しています。ウィレム・ヴァン・デン・エンデは、ローカルなオープンソースAIモデルがコーディングタスクに「十分良い」ものであり、より大きな制御とデータセキュリティを提供する可能性があると示唆しています。この戦略は、クラウドベースのAIに多額を費やしていないAppleの戦略を反映している可能性があり、ローカルAIに賭けているのかもしれません。その後、テキストはフレッド・ブルックスの「人月の神話」とソフトウェアの「タールピット」に言及しています。ケント・ベックの投稿は、コーディングにAIを使用することの課題と、内部品質における潜在的な落とし穴について論じています。最終的な疑問は、AIが複雑さの課題を克服するか、それともそれに囚われるかということです。
クリス・パーソンズの更新されたガイドは、コーディングにおけるAIの使用を強調し、検証と人間によるレビューから自動チェックへの移行に焦点を当てています。彼は「エージェンティック・エンジニアリング」を提唱し、Claude CodeやCodex CLIのようなツールの重要性を強調しています。コード生成の速度よりも検証が優先され、堅牢なレビュープロセスの構築に焦点が当てられています。プログラマーのコアな役割は、AIのトレーニングと開発「ハーネス」の形成へとシフトします。この記事は、計算センサーの利点を強調するビルギッタ・ベックラーの「ハーネス・エンジニアリング」に関する研究に言及しています。アダム・トルニルの指摘は、関数の長さがコードの構造化と意図に関連していることを示しています。ニライ・パテルの「ソフトウェア・ブレイン」という世界の捉え方に関する指摘は、視点を提供します。この記事は、効果的なAIインタラクションに不可欠な、一貫したデータ定義を強調しています。著者は、AI専門家がAIツールに対して自身を「読み取り可能」にしようと競い合っているという観察を共有しています。著者は、AIの使用に関する自身の個人的な経験と、仕事へのAIの影響についての見解を探求しています。
Thoughtworks が 34 回目のテクノロジーレーダーを発表し、ツール、テクニック、プラットフォーム、言語を調査しました。レーダーは AI を重視しており、ペアプログラミングやクリーンコードといった基本的なソフトウェア開発プラクティスを再検討することを促しています。また、エージェント型ツールの台頭により、コマンドラインインターフェースが復活していることも指摘しています。LLM に関するセキュリティ上の懸念も取り上げられており、特に広範なアクセスを必要とする「権限に飢えた」エージェントは、プロンプトインジェクションのようなリスクをもたらします。レーダーでは、これらの野心的なエージェントを安全に管理するための「ハーネスエンジニアリング」について論じています。AI が生成したコードの品質についても疑問を呈しており、AI 支援コードが人間のレビューなしでは管理不能になった事例を挙げています。著者は、AI を使用する場合でも、耐久性のあるコードを維持するためには人間の監督が必要であることを強調しています。LLM によるゴーストライティングに関する哲学的な実験が提示されています。本文では、Direct File 税プログラムの廃止を批判し、政府改革のしばしば欺瞞的な複雑さを強調しています。Direct File の公共サービス精神と、DOGE の無関心と見なされるものとの対比を示しています。国家安全保障にとって効率的な税制の重要性が強調されています。
著者はPragmatic Summitに参加し、ケント・ベックとゲルゲリー・オロスとAIについて議論しました。その会話は、AIと過去の技術的変革との比較、アジャイル手法、TDD、そしてAIネイティブな業界で成功する必要性について触れました。著者は、効率的な抽象化を生み出す上で重要である、プログラミングの美徳である「怠惰」について考察しています。ブライアン・カントリルの「怠惰」に対する見解と、それがコーディングにどのように関連しているかについても言及されています。著者は、AIがこの美徳を欠いているため、コードが容易に生成されることで、過度に複雑なシステムにつながる可能性があると懸念しています。著者は、コードを簡素化するためにリファクタリングを行った自身の個人的な経験を共有し、LLMを使用した潜在的な結果と比較しています。ジェシカ・カーの、エージェントのプロンプティングにテスト駆動開発を適用した例が紹介されています。著者は、AIの過信と情報捏造の傾向について議論し、映画『ダーク・スター』を引用しています。著者は、特に高いリスクや取り返しのつかない結果が伴う状況において、AIシステムに結論を疑うことを教えることの重要性を強調しています。著者は、抑制、つまり行動を控える能力が、AIの安全性と責任ある自律性にとって不可欠な能力であると主張しています。
著者は、Simon WillisonとLenny Rachitskyが出演するポッドキャストと、Gergely OroszがUberの元CTOであるThuan Phamにインタビューしたポッドキャストという、2つの優れたポッドキャストを聴いています。Simon Willisonとのポッドキャストは、プログラミングがどのように変化したか、そしてこの仕事における重要なパターンについて議論し、世界の現状を包括的に概観しています。Gergely Oroszとのポッドキャストは、Uberのマイクロサービスの利用と、高成長ソフトウェアは必然的に多くの書き換えが必要になる「Sacrificial Architecture(犠牲的アーキテクチャ)」の概念についての洞察を提供しています。著者はまた、Axiosでの最近のサプライチェーン侵害についても言及しており、攻撃者はリードメンテナーと連絡を取り、リモートアクセス型トロイの木馬をインストールする前に数週間を費やしました。著者は、自身も同様の、非常に巧妙で正規に見える攻撃の標的になったことに言及しています。著者はまた、技術文書の整理のためのフレームワークであるDiátaxisを発見しました。これは、チュートリアル、ハウツーガイド、リファレンス、説明という4つの形式の文書を分類しています。著者は、チュートリアルとハウツーガイドの区別、そして説明を別々の領域に切り出すという考え方を高く評価しています。さらに、著者は、AIエージェントを使用してSQLiteを操作するためのツールを開発したLalit Magantiの経験に言及しており、AIによる開発の利点と危険性を浮き彫りにしています。著者は、Ryan Aventの、ケアに焦点を当てることで経済成長に対する重要な視点が得られるという投稿に言及して締めくくっています。成長はそれ自体を目的として望むべきではなく、むしろ私たちの集合的な能力を拡大し、苦しみを軽減する能力のために望むべきであることを強調しています。全体として、著者の投稿は、ポッドキャストやサプライチェーン侵害から技術文書やAI開発まで、さまざまなトピックを網羅しており、それぞれの分野における慎重な検討とニュアンスの重要性を強調しています。
本書では、ソフトウェア開発における「認知債務」の概念を探り、それを技術的および意図的負債と並行させています。認知負債は、チーム内の共有理解が失われ、変化について理性で判断する能力を妨げることから生じます。この記事は「認知の三系統理論」を提案する論文に言及しており、カーネマンの二系統モデルにAI(システム3)を加えています。これにより「認知的降伏」が導入され、AI推論に依存することで批判的思考を回避します。著者は次に、HTMLタグをコードアイコンとして使うことを批判し、プログラミング言語に関する誤解を指摘しています。さらに、コーディングエージェントが普及する中で検証が重要なスキルとしてシフトしていることについても論じています。著者は検証の重視に同意しつつも、LLMがレガシーコードの理解を助けていると考えています。この変化により、コード作成だけでなく検証を中心にチームを再編成し、品質の定義と成果のモニタリングに重点を置くことが促進されます。最後に、テキストはLLMの文脈におけるソースコードの未来に触れ、多様な視点を要約し、人間主導の抽象化とドメイン駆動設計の重要性を強調しています。著者はコードにおける命名規則の価値を強調し、良い名前が問題解決の意図を示すことを強調しています。