A client is paying me to write a program for them. This program could be useful to many people though, so after they've paid me, I'm thinking of putting the program and source code online for free. But the client who paid me may think it's mean because they had to pay for the program, but everyone else gets it for free. Another idea is to wait a couple of years and then put it on the internet. What would be the best practice?