If you decide Program to An Interface trumps YAGNI and decide to create a supertype where you don't envision anything other than one obvious implementation - is there a convention for naming the obvious concrete type?  E.g. this morning I wrote a a class called PlainOldConversionReport and I wonder if that name betrays ignorance of convention.  Would there a more normal name, in Object Oriented development generally or .Net or C# specifically, to give to a non specialized subtype of IConversionReport?  
Naming conventions for the only envisioned implementation of an interface
object oriented;naming;interfaces
If there is no obvious name for the specialization in the single implementation, my teams have always normally used Impl as a suffix. If there is an obvious name, I would stick with it even if it will be the only implementation.