MichaelFeathers describes a Seam as a place where you can alter behavior in your program without editing in that place in his book WorkingEffectivelyWithLegacyCode.
An excerpt of the full description is published at http://www.phptr.com/articles/article.asp?p=359417&seqNum=2&rl=1. --BrianTakita
As with stone-cutting, you discover seams in your LegacyCode as you try to extract smaller gems to UnitTest from the BigBallOfMud of your LegacyCode (to extend a metaphor).
There are several ways to implement a seam: