Considering that a consultant is generally hired to provide their knowledge, this notion of not revealing information while simultaneously charging for your time seems rather unethical. However, if you are hired in a programmer capacity and are compensated as such, being dragged in to a system architect role would be unethical on the client's side.
It is not out of order to simply point this out. Rather than get into a game of non-communication, simply stating, "I am here in XYZ capacity and that falls into ABC capacity" communicates that you intend to provide all of your services to ethical standards and expect the same in return.
I have been faced with the idiotic decisions of management before, such as choosing a $100k product before evaluations have been completed or attempting to dictate system architectures with no justification. In any such situation, it is arguably the consultants responsibility to state an educated opinion on the choice. If that opinion is not acted upon, it is a tough choice whether the relationship should continue. Often it is not unwise to leave the ship and let the captain who drove it into the iceberg go down without you.
If the guy slapping in a CD-ROM drive will require certification, doesn't it make sense that the programmers behind a multiple tier, multi-million dollar project should be? Then, will a computer science degree that is often often 50% mathematics and dead languages (anyone forced to study Pascal or Fortran in college?) be sufficient for using any of an infinite combination of vendor-specific hardware and software? Are the overpriced, usually useless vendor training programs going to be mandated by law for every platform instead of foolishly assuming an engineer with a $150k university degree can actually read a manual and the collected works of O'Reilly?
This is a black diamond slippery slope if I've ever seen one.
Considering that a consultant is generally hired to provide their knowledge, this notion of not revealing information while simultaneously charging for your time seems rather unethical. However, if you are hired in a programmer capacity and are compensated as such, being dragged in to a system architect role would be unethical on the client's side. It is not out of order to simply point this out. Rather than get into a game of non-communication, simply stating, "I am here in XYZ capacity and that falls into ABC capacity" communicates that you intend to provide all of your services to ethical standards and expect the same in return. I have been faced with the idiotic decisions of management before, such as choosing a $100k product before evaluations have been completed or attempting to dictate system architectures with no justification. In any such situation, it is arguably the consultants responsibility to state an educated opinion on the choice. If that opinion is not acted upon, it is a tough choice whether the relationship should continue. Often it is not unwise to leave the ship and let the captain who drove it into the iceberg go down without you.
If the guy slapping in a CD-ROM drive will require certification, doesn't it make sense that the programmers behind a multiple tier, multi-million dollar project should be? Then, will a computer science degree that is often often 50% mathematics and dead languages (anyone forced to study Pascal or Fortran in college?) be sufficient for using any of an infinite combination of vendor-specific hardware and software? Are the overpriced, usually useless vendor training programs going to be mandated by law for every platform instead of foolishly assuming an engineer with a $150k university degree can actually read a manual and the collected works of O'Reilly? This is a black diamond slippery slope if I've ever seen one.