Maximizing profit almost by definition means not maximizing customer and employee satisfaction. If you did everything I say you should do when you're coding as if each little hint was manna from heaven, you'd not only be a little wacky in the head but you'd also have only really dealt with one part of your business -- product and process quality. As I've said a number of times before, Microsoft seems to be a company with tons of great ideas run through a profit maximization machine, but that's not completely true. They get -- and keep -- some of the best and the brightest in the world (which I obviously am not, if only b/c I just used the overworked phrase "best and brightest").

One way of ensuring, as an officer of a company, that your customer is happy is by giving them a fair price, which might be less than you theorhetically can charge. One way of ensuring, as an officer of a company, that you'll retain your employees is by treating them fairly, which might mean working them less [hard] than you theorhetically could and paying them more than you theorhetically have to.

But when I get to the "why", it's not nearly so clean cut as when I spout off about programming best practices. Morality? Who knows. But I would encourage business owners with the ability to to make a healthy profit while not obsessing about making maximum profit.

End of random morality play.