DonXML Demsak left a comment in response to this post by brady gaster. It was so good I couldn’t leave it buried in the comments.
You are confusing 2 similar but definitely different jobs, the consultant versus the contract programmer. The consultant is paid to consult the client on how to best go about developing an app, work out something suitable to the client, and then do it. The contract programmer is told by the client how to best go about developing an app, and then do it according to the client's wishes. Consultants get paid more, but have a higher risk, and sometimes have to take one for the team (aka the person the hired you). A contract programmer doesn't get paid as much as a consultant, and isn't paid to think. Don't ever confuse one role for the other, it will only cause endless fustration for both parties (i.e. make sure your role is known ahead of time). Sometimes clients are paying for contract programming, when they really need a consultant, and that is when consulting gets a bad name. [DonXML Demsak]