I saw this post when I originally read the thread Loyalty, Personal gain or Professional Integrity and wasn't happy with it. I wanted to continue the discussion, but start a different thread. It goes without saying, but I'll say it anyway, that this is a discussion on the merits of a position, and is not meant to offend fellow Monk valdez.
I disagree with the thesis that if you sell a service, you cannot be objective. While it is not possible to know everything, it is possible to know enough about a range of topics to be able to pick a suitable technology for a particular client.
Here's an example I came across recently: I was talking to a broker who was interested in setting up a hockey pool web site for some friends. He was familiar with MySQL and had access to a server but wasn't that much of a programmer. He described the site layout to me a little, and I concluded with "If I were doing it I'd use Perl, but it sounds like it is simple enough for you to use PHP".
He had heard of Perl and was scared. I explained in lofty tones :) that, yes, Perl could be a difficult language, but for this particular application PHP would be more suitable since the site design was fairly simple and that the application was web-based.
I could have sold him on the merits of Perl and urged him to try the language, but in this case, it just didn't make sense.
I think you have to be objective if you are going to sell your services -- if you always prescribe one solution, no matter what the problem, you're going to get a reputation for that. Not every problem is a nail.--t. alex
but my friends call me T.