Every once in a while I see situations which have fairly strait forward projections on software development (and in fact other customer oriented businesses). A week and a half ago I came to my bank to order a reissue of my MasterCard Standard which was about to expire. They said that for my being a good client they can offer increased credit line. I agreed. But this operation required me close my expiring card and open a new one. Not a big deal, almost the same process as with simple reissue. So I got back home waiting for my new card. The more so I wanted to buy some books from Amazon and pay for ACM membership.
Several days ago I came to my bank again to get my new credit card. And (what a surprise!) I got MasterCard Electronic which can not be used for online payments! I asked them: why?! They said because Electronic costs $2 whereas Standard cost $5. But it can not be used for online payments! Frankly, the only value of this card for me was that I can use it to pay online. And they knew it because I came to them some time ago to relax restrictions on Internet payments for this card. After all they could have called me to ask which card I wanted, but they did not. Bank will issue a new card of required class for $5, but I will get it a week later than I originally expected. And I’m frustrated about that.
Message here is that you should know what customer expects of you and you should match his expectations. If do not know – ask him, offer him choices, help him to choose, but never make groundless assumptions that will frustrate your customer.