スパゲティプログラム
スパゲティプログラムは保守や機能追加を妨げるので、できることなら修正することが望ましい。しかし実務で使われているシステムは「スパゲティプログラムを修正した場合のメリットとデメリット」「修正せず、そのまま放置する場合のメリットとデメリット」を天秤にかけて、「とりあえずうまく動作しているプログラムは、滅多なことでは修正しない」ということが広く行われている。
各種の汎用オペレーティングシステム、ソフトウェア開発ツール、金融機関の基幹システム、産業用機械の制御ソフトウェア、業務用アプリケーションなど、実務で日々使用されているシステムでは安定性が非常に重要であり、不用意にコードを修正してうっかりシステムの安定性を損ねるとシステムに依存した業務が停止してしまい、ユーザーに多大な迷惑をかけるだけでなく、不具合によって発生した金銭的な損失に対して補償しなければならなかったり、果てはユーザーを失なったりする事態に陥るからである。
日々多くの文字を読み多くの体験をしつづけている普通の人ならば、特にコードをしばしば書く人ならば、数ヶ月の間に大量のコードを読み書きすることになり、「数ヶ月前、数年前の自分」が書いたコードやそれを書いた時の理屈は、大量の記憶の中に埋もれてしまっており、すぐには思い出せず、「まるで他人が書いたコードのよう」で理解しがたいのである。だからプログラム(コード)というものは、チームで共同作業で書く場合でも、個人が個人的趣味で書く場合でも、誰が読んでも直感的に理解しやすいように、整然と、原則上から下へと素直に順番に実行されるように書くべきだとされている。またしっかりブロック化し、変数のスコープ(有効範囲)を常に意識し、たとえどんなに巨大なプログラムのどの行でも、もし変数の役割がやや不明な行があれば、せめてそのブロックの冒頭に戻れば変数の宣言も明確に書かれていて(さらにもし宣言だけでは変数の役割・機能が曖昧なら、その役割もコメント文などで明記されていて)、誰でも理解しやすいように(未来の「他人のような自分」でも理解できるように)、コードの中を何度も上下(右往左往)しなくても容易に変数の役割・機能も理解できるようにコードは書くべきだとされている。
そういった、現代では当たり前になっている手法を実践できていないような、低品質なプログラムがスパゲティプログラムである。