I do think a Software Engineer has a fiduciary duty to advise his client on proper systems architecture( hardware, software(language, performance, skill sets, etc), cost associated with entire process ). I also think it a wise business decision to drop projects that a suitable compromise cannot be reached or change the contract to state the concerns and place legal responsibility on the client.
This is the classic example of why licensing of Software Engineers is such a hot topic! Software development is an abstract process even when proper methods are used . I think a cost comparison, assuming C++ development, of using NT + *nix vs. developing for the final target platform *nix would convince the customer to simply develop for *nix.
I do think a Software Engineer has a fiduciary duty to advise his client on proper systems architecture( hardware, software(language, performance, skill sets, etc), cost associated with entire process ). I also think it a wise business decision to drop projects that a suitable compromise cannot be reached or change the contract to state the concerns and place legal responsibility on the client.
This is the classic example of why licensing of Software Engineers is such a hot topic! Software development is an abstract process even when proper methods are used . I think a cost comparison, assuming C++ development, of using NT + *nix vs. developing for the final target platform *nix would convince the customer to simply develop for *nix.