I tend to follow the rule pretty strictly, even when it's just my own code.  I really like Properties in C# for that reason.  It makes it really easy to control what values it's given, but you can still use them as variables. Or make the set private and the get public, etc.