Paresh Solanki wrote: Maybe if you only have one client for that product, but if you have another client who wants a very similar product with the extra features, you have just sold your product for minimal extra work. Also your original client may see (and want) the extra features once he sees them in action. I don't want to rain on your parade, but it is highly unethical to build in features that the paying client requests you not to do, especially if the intention is to sell these features to other customers. I know this is sort of off topic, but contract service work needs to exactly follow the customer's wishes. Now - if they decide in the future to add these features - it is your right to remind them how easier this would have been to do in the beginning (and charge them extensively for it). Now - as a direct employee, I've constantly advocated future-proofing designs and features. This however, is because it is my duty to do what is best for my development organization and for the stockholders, as well as delivering what the user's ask for. In this case, I consider it more ethical to NOT follow the specifications because I am free to use my judgement to do what is best for all involved. Outsourced work does not have this luxury. Dale Thompson