I think this last point is very unfair. I need my paycheck to support
my family and pay my rent. When my manager comes to me with a project that
doesn't make sense, I do very politely tell him that the architecture
doesn't make sense and I recommend certain changes. Sometimes he accepts
these changes and all is well. Other times, he doesn't (usually because
the clients themselves want it that specific way). In that case, I just go
ahead and do it exactly the way they want.
Exactly my point. You are part of the problem. You exhibit the cowardly
behaviour I outlined. Your excuses ("if the client wants something a certain
way..") are completely unprofessional. In part because it gives our
profession a bad name.[/QUOTE]
Nonesense.
The customer gets to call the shots, as they are paying us for our
services. We can wheedle, convince, harangue, but if we do not
convince, then we probably should implement the software the way the
person paying the bills wants. If it is utterly stupid, well, then
implement it in a way that is easy to change. Unless there is real risk
of physical harm, doing anything else is stealing.
Software is rarely life and death.
My wife worked for a city. They had firefighters and paramedics, and
software supporting them _did_ save lives. That software was pretty
carefully checked, because screwing it up could kill someone.
Software that let people type letters, send email, etc., was likely not
as important. It should work, but if it does not, the cost is not
death, and thus failure to test it as thoroughly does not indicate
malfeasance.
So, if someone asks for something dumb that might get someone killed,
then implementing dumb is immoral. If all they are wasting is money,
and it is their money to spend, then I am not sure immoral is the right
term.
As far as this cowardly behavior screed of yours, you might want to tone
it down. Once you get shrill, people stop listening and stop caring.
I remember when a Linux hothead managed to convince the entire IT staff
at one company I was with that Linux is only for young radicals who
hated Microsoft. He used words like 'cowardly', 'unprofessional', and,
in his case, 'evil'. This was not convincing to the IT staff.
Words like 'not cost effective', 'poorly tested', and 'expensive to
relicense each year' about MSSQL then fell on deaf ears for a long time
to come.
All because one twerp decided to say 'I cannot respect anyone who runs
windows, or maintains it. They are stupid, greedy, or both.' Not a
great way to convince a primarily Windows IT shop to look into an open
source alternative.
The same group was willing to look at the MacOS, because I did not tell
them they were fools. I did tell them it let me get more done because
of the underlying Unix layer.
Besides, often clients insist on a dumb idea for a reason. If they will
not or cannot tell me that reason, I may implement what they ask for, so
that its flaws can be exposed. After all, blowing a month on a several
year project to prove that a bad design is bad may be the only way to
convince people, and it may be the only way to get them to tell me why
they wanted the bad design in the first place.
Scott