One of the last chapters of The Pragmatic Programmer: From Journeyman to Master book that I finished reading today is titled "Great Expectations".
This chapter talks about communicating expectations to the users and suggests to gently exceed users' expectations in order to keep them happy using your software.
I must say that I agree with this book in many points except "The Extra Mile":
If you work closely with your users, sharing their expectations and communicating what you're doing, then there will be few surprises when the project gets delivered.
This is a BAD THING. Try to surprise your users. Not scare them, mind you, but delight them.
Did I miss something here? I understand that a good surprise may pay off, but who knows? It may not be so good after all. Only customers will tell if the "surprise feature" is good.
Maybe I'm too pragmatic (more pragmatic than the pragmatic programmer), but I would feel better to have a happy customer with less surprises. However, the marketing guys may have a different opinion...
What is your opinion? Do you give your users little surprises to delight them? If so, I'd like to hear from you.