二重基準:人間がバグだらけのeコマースサイトを(絶えず)リリースすると、私たちはそれを「アジャイル開発」や「ユーザーからのフィードバックに基づく反復」と呼びます。一方、AIがそれを行うと、私たちはそれを技術の壊滅的な失敗… 続きを読む »

ダイクストラのテストの限界:「プログラムテストはバグの存在を示すのに非常に効果的だが、バグが存在しないことを示すのには決して効果的ではない。」現実世界のソフトウェアでは徹底的なテストは不可能である。 中

ライスの定理(1953)は、プログラムの非自明な意味的性質は決定不可能であることを証明しています。プログラムが正しいかバグがないかを判定できる一般的なアルゴリズムは存在しません。これは現在のツールの限界ではなく、数学的に… 続きを読む »

フレッド・ブルックスの「銀の弾丸はない」(1986年)は、今もなお基礎的な考え方です。ブルックスは、ソフトウェアに内在する4つの難点、すなわち複雑性、適合性、変更可能性、そして不可視性を挙げました。そして、「もしこれが真… 続きを読む »

Javaの標準ライブラリのバイナリサーチアルゴリズムには、20年間も検出されなかったバグがありました。広く使用されている20行のコードがバグフリーになるまでに20年もかかるのであれば、どんなコードにも完璧さを期待できるで… 続きを読む »

不完全さの受容:業界全体で、開発者はバグのないコードは不可能であると公然と認めています。Stack Exchangeの議論では、「バグゼロのプログラミングなど存在しない」といった意見が一致しています。 中

永久ベータ版: Gmail は 5 年間 (2004 ~ 2009 年) にわたって「ベータ版」で実行され、1 億人を超えるユーザーを獲得しました。 Google の企業理念は「早期リリース、頻繁な反復」になりました。 … 続きを読む »

技術的負債の標準化: Ward Cunningham は 1992 年に「技術的負債」という言葉を作り出し、不完全なコードの受け入れを制度化する比喩を生み出しました。技術的負債は標準化しすぎたため、それを防ぐのではなく管… 続きを読む »

「速く動いて、物事を壊せ」:マーク・ザッカーバーグが2012年に掲げたモットーは、教訓的な教訓ではなく、業界の知恵として称賛されるようになりました。「何も壊さないのであれば、おそらく十分に速く動いていないということだ」と… 続きを読む »

CrowdStrike(2024年):欠陥のあるソフトウェアアップデートにより、世界中で850万台のWindowsデバイスがクラッシュしました。フォーチュン500企業だけでも54億ドルの損失を被りました。 中