ハードコーディング
ハードコーディングでは、入力データや期待する形式が変更されるたびに、プログラムのソースコードを変更する必要がある。エンドユーザーにとっては、プログラムの外部で何らかの方法で詳細を変更する方が便利である。ハードコーディングが必要な場合もしばしばあるが、通常はアンチパターンと見なされる。プログラマは、エンドユーザのために、動的なユーザインターフェイスではないにしても、ソースコードなしに変更が可能な機能を提供しなければならない。
「ハードコーディングされた」(hard-coded)という言葉は、当初はハード配線による回路のアナロジーとして使用されており、それに対するソフトウェアの使用による設計・実装の柔軟性を表現することを意図していた。
なお、実行時に拡張可能なコラボレーティブ開発環境(英語版)においては、ハードコーディングは、低レベルのタスクを担当しスクリプトを実行するシステムのコアエンジンを開発することを指す。それに対し、ソフトコーディングは、実行時にシステムによって解釈されるスクリプトを開発することを指す。この場合、この用語には軽蔑的な意味はなく、一般的な開発手法を指す。
C:¥Program Files¥Appname にインストールされていると想定してインストールパスをハードコーディングしたプログラムは、ディスクの空き容量や組織上の理由で別のドライブにインストールしようとした場合に、インストールに失敗するか、インストール後に実行に失敗する可能性がある。標準的なユーザーはデフォルトのドライブ・ディレクトリにインストールし、テストにはインストールディレクトリを変更したケースが含まれていない可能性があるため、テスト工程でこの問題が検出されないことがある。
初期のコンピュータのマイクロプロセッサには、メモリ内の固定アドレスで実行を開始するという同様の問題があった。