Yet Another Web Application Mess...

G

gerrards8

Giovanni said:
I was refering to the examples coming after the original post.
I agree it is professional to immediately identify and suggest to
the customers from doing a wrong decision BUT something
very different is the customer even being aware of the issue
and asking especifically for it? will you say no?

e.g.

Lets extend a bit the case quoted by you. The customer says yes
he agrees a Swing Application will do better the job but still he insists
he wants the thin client web application and he will be paying you
half million USD? Are You going to say no? ok if you just won
the lottery and develop software for fun, then you don't even
have customers ...

Regards,
Giovanni

Prostitution is indeed practiced in evey field, software development is
no exception. However, once you violate your professional standards, you
are no longer qualified (not technically, but ethically). In other
fields, such as medical, legal or civil engineering, you'd loose your
license, I'm sure you'd find a surgeon who would amputate someone's
perfectly healthy legs if she/he's offering a half million USD and a
written statement relieving the surgen from all liabilities. However,
that surgeon would become a real estate investor the next morning! :)
Yet, the client also has the option of going offshore and get the
amputation done for 10% of the price :-D
 
G

Giovanni Azua

Prostitution is indeed practiced in evey field, software development is no
exception. However, once you violate your professional standards, you are
no longer qualified (not technically, but ethically). In other
If the example I gave above means prostitution to you, then
you are really sick ... there is a very fundamental difference:

- There is no lie nor scam to the customer, no fake orgasm :)
since it was stated at the very beginning that this was not the
most appropriate solution.
- Assuming the application content is ethically appropriate, you
are not doing any non-ethical work, just a web application.
fields, such as medical, legal or civil engineering, you'd loose your
license, I'm sure you'd find a surgeon who would amputate someone's
perfectly healthy legs if she/he's offering a half million USD and a
written statement relieving the surgen from all liabilities.
This is a completely non-sense comparison example :p

Regards,
Giovanni
 
O

Oliver Wong

jan V said:
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.

Maybe you could give me your definition of unprofessional (or
equivalently, your definition of professional), as I don't see how what you
call my "excuses" as being unprofessional.

Let's say you're a chef, and your customer asks you to make an omelette,
and then asks you to put some ketchup on the omelette, and let's say that in
your opinion, omelettes shouldn't have ketchup on them. Are you doing to
refuse to put ketchup on the omelette because doing so is beneath your
standards, or are you going to do it because that's what the customer asked
you to do?

I would think that the chef who refuses to put ketchup on the omelette
is far more unprofessional than the one who does. The refusing chef has some
sort of diva complex, thinking himself to be far more important than he
really is.
Recently I attended an interview where the senior software manager
admitted
that 70% of all their projects end up producing "shelfware"; software that
sits on a shelf, collecting dust. I thought this guy was the pits for
being
pivotally involved with such a long-term instutionalization of waste. It
is
a disgrace. The company offered me the job, I declined to become part of
their nonsense outfit. Any self-respecting professional would do the same.

I don't think the statement "Any self-respecting professional would do
the same." is universally true. As a counter example, I consider myself to
be a self-respecting professional, and I would not have done the same as
you.
The mercenary attitude is despisable in all walks of life. It's
mercenaries
like you who help build systems which cost taxpayers phenomenal amounts of
money (remember the Y2K scandal), and which cause phenomenal amounts of
frustration, disruption, and downright damage.... and all because of the
age-old argument "I've got a family to feed, you know.". I've got no doubt
you could still *feed* your family by raising your ethical professional
standards and *not* be part of the problem.

My understanding of mercenary is that it means to be solely motivated by
money (Dictionary.com agrees with me:
http://dictionary.reference.com/search?q=mercenary). The example I stated
where I said I wouldn't murder someone for money specifically shows that my
attitude is not mercenary in nature.

It's very easy to bash Y2K in hindsight. When programs with the Y2K bug
were written, it was around 20 or 30 years before the year 2000, and no
program had been older than 10 years old by then, the vast majority of them
being barely a year old. It seemed to be a statistical anomally that any
program would last for 30 years.

Furthermore, there was a major memory problem back then. A savings of 2
bytes was a big savings money wise.

When a customer asks you to write a calendar program for them, do you
ensure that it will display valid dates back until the known age of the
universe, and infinitely forward? Do you invest in several millions of
dollars to build some sort of hot-swappable RAM architecture so that when
you 2 GBs of RAM isn't enough to hold the date far enough into the future,
you can swap it in for 4 GBs of RAM without rebooting the system? Do you
then write a x86 emulator so that the user can also run his favorite Windows
applications on your new architecture? No, it simply doesn't make business
sense because the amount of money it'll cost to fix this problem now is too
large compared to how much it'll cost to fix it when the problem actually
arises.

I think you're of the mentality that software engineers are like
unapproachable wizards or oracles who live in their ivory towers to whom
even kings must bow down in order to consult with their sage advice. Then
when people like me come along who help out the local villagers with
whatever problems they have, without all the mysticism and the "You are not
noble enough to have earned my help" pretentiousness, you complain that I'm
lowering the standards of wizardry and giving wizards a bad name.

- Oliver
 
G

gerrards8

Giovanni said:
If the example I gave above means prostitution to you, then
you are really sick ... there is a very fundamental difference:

I'll have myself examined, thanks for the tip! :)

Never heard of "Professional Prostitution"? The term is widely used in
the medical and engineering practices. A quick google search on "what
is professional prostitution" will supply you with a bit more info such as :

#1: http://www.reporter-archive.mcgill.ca/Rep/r3206/macklem.html
#2: http://ngin.tripod.com/090202a.htm

Main symptom of professional prostitution:
"If professional values fail, professional prostitution results."

Fake orgasm or not, your half million USD example is indeed professional
prostitution.
 
G

Giovanni Azua

Main symptom of professional prostitution:
"If professional values fail, professional prostitution results."
Where is the violation of professional values?
Fake orgasm or not, your half million USD example is indeed professional
prostitution.
Why?

Regards,
Giovanni
 
M

Monique Y. Mudama

Maybe you could give me your definition of unprofessional (or
equivalently, your definition of professional), as I don't see
how what you call my "excuses" as being unprofessional.

Let's say you're a chef, and your customer asks you to make an
omelette, and then asks you to put some ketchup on the omelette,
and let's say that in your opinion, omelettes shouldn't have
ketchup on them. Are you doing to refuse to put ketchup on the
omelette because doing so is beneath your standards, or are you
going to do it because that's what the customer asked you to do?

I would think that the chef who refuses to put ketchup on the
omelette is far more unprofessional than the one who does. The
refusing chef has some sort of diva complex, thinking himself to
be far more important than he really is.

Absolutely agreed.

Apparently Jan has never heard the expression, "The customer is always
right."
 
M

Monique Y. Mudama

Prostitution is indeed practiced in evey field, software development
is no exception. However, once you violate your professional
standards, you are no longer qualified (not technically, but
ethically). In other fields, such as medical, legal or civil
engineering, you'd loose your license, I'm sure you'd find a
surgeon who would amputate someone's perfectly healthy legs if
she/he's offering a half million USD and a written statement
relieving the surgen from all liabilities. However, that surgeon
would become a real estate investor the next morning! :) Yet, the
client also has the option of going offshore and get the amputation
done for 10% of the price :-D

Give me a break.

If your problem domain is aerospace, flight, medical equipment, etc.
and your customer insists that you do something in a way that you know
will cause the system to fail, then yes, it is unprofessional to do it
that way.

If your problem domain is a tetris-style game, though, and your
customer asks you to make it an Applet when you think it would be
better implemented as a stand-alone app? Refusing to do this makes
you difficult, not professional.
 
G

Giovanni Azua

Monique Y. Mudama said:
Absolutely agreed.

Apparently Jan has never heard the expression, "The customer is always
right."
Same :p

Whether they are genius so their bosses tolerate their whole
bunch of arrogance and eccentricity or they are bastardly rich who
have never had to work for a living.

Regards,
Giovanni
 
G

gerrards8

Giovanni said:
Where is the violation of professional values?



Why?

Regards,
Giovanni

When you knowingly and willingly participated in building a solution
that is not in the best interest of your client, you have violated your
professional values, regardless of the client's approval. Your were
bought with the client's money, and that constitutes nothing less than
professional prostitution. The fact that you fail to see the similarity
to someone asking a surgeon to amputate his legs for no good reason does
not surprise me.
 
G

gerrards8

Monique said:
Give me a break.

If your problem domain is aerospace, flight, medical equipment, etc.
and your customer insists that you do something in a way that you know
will cause the system to fail, then yes, it is unprofessional to do it
that way.

If your problem domain is a tetris-style game, though, and your
customer asks you to make it an Applet when you think it would be
better implemented as a stand-alone app? Refusing to do this makes
you difficult, not professional.

The applet vs stand-alone example is somewhat weak, but your point is
well understood.

Suppose that instead of an Applet, the client wants it as an
HTML/JavaScript only webApp, that refreshes the page at least once every
second, downloading dynamically generated graphics from the server.
Where would do you draw the line that defines what redicoulous is? Say
now the client has put good $ on the table to get it done. Yes, it's
not rocket science, but it would clearly be unprofessional to accept.
 
M

Monique Y. Mudama

The applet vs stand-alone example is somewhat weak, but your point
is well understood.

Suppose that instead of an Applet, the client wants it as an
HTML/JavaScript only webApp, that refreshes the page at least once
every second, downloading dynamically generated graphics from the
server. Where would do you draw the line that defines what
redicoulous is? Say now the client has put good $ on the table to
get it done. Yes, it's not rocket science, but it would clearly be
unprofessional to accept.

I would do my damnedest to understand the problem they're trying to
solve and present to them a viable alternative.

If they still want to do it their way, and I believe that their way is
actually possible, then I wouldn't refuse. Refusing is basically saying
to the client that they're idiots who can't understand your
oh-so-complicated job. I don't think that's professional, either.
That being said, if you can communicate technical issues to
non-technical people effectively (which should be part of the job reqs
for anyone interacting with customers), it shouldn't get to this
point.
 
O

Oliver Wong

When you knowingly and willingly participated in building a solution that
is not in the best interest of your client, you have violated your
professional values, regardless of the client's approval.

It is not up to the programmer to have the final say in what is in the
best interest of the client. If the programmer suspect that the solution may
not be optimal, she may explain why to the client, but it is the client
alone who has the responsibility of deciding what is best for the client.

- Oliver
 
M

Monique Y. Mudama

It is not up to the programmer to have the final say in what is
in the best interest of the client. If the programmer suspect
that the solution may not be optimal, she may explain why to the
client, but it is the client alone who has the responsibility of
deciding what is best for the client.

Agreed. Anything else is patronizing.
 
G

gerrards8

Oliver said:
It is not up to the programmer to have the final say in what is in the
best interest of the client. If the programmer suspect that the solution may
not be optimal, she may explain why to the client, but it is the client
alone who has the responsibility of deciding what is best for the client.

- Oliver

It's not an issue of responsibility, it's an issue of values and ethics.
When a programmer accepts a project knowing that it's a bad solution
for the client, then that's just a violation of professional values.
Not knowing what is good or bad solution for the client has a different
definition: incompetence.
 
O

Oliver Wong

Not knowing what is good or bad solution for the client has a different
definition: incompetence.

Not nescessarily. Sometimes the company I work with deals with very
secretive clients, or with the government. In situations like these, quite
often any questions about the environment that the product will run in are
met with "You shouldn't need to know that." In these cases, we don't know
for sure that the solution we're producing is the best (from a technical
perspective) one for the client's computing environment, but this has
nothing to do with incompetence.

I think you should make fewer generalizations. The way you phrase your
statements, you seem to be implying that they are universally true when that
is not the case.

- Oliver
 
J

jan V

Monique Y. Mudama said:
Agreed. Anything else is patronizing.

Next time you go to the doctor with a serious problem, please, please ask
him to prescribe something *you* think will solve your problem. Then when
your chosen medication lands you into much deeper shit, please go complain
to your doctor for prescribing you something that made matters worse.

Maybe (thought I doubt it), this thought experiment will make you see the
light.
 
M

malusman

If everyone followed this principle, there would be a lot of very
proud, yet very unemployed programmers.
 
M

Monique Y. Mudama

Next time you go to the doctor with a serious problem, please,
please ask him to prescribe something *you* think will solve your
problem. Then when your chosen medication lands you into much deeper
shit, please go complain to your doctor for prescribing you
something that made matters worse.

Maybe (thought I doubt it), this thought experiment will make you
see the light.

Your comparison of writing non-critical software to medicine is
insulting to doctors. They have to worry about people dying if they
make the wrong decision. That's completely different from the vast
majority of software projects. If a software project is critical,
then yes, refusing to do something that might cause the system to fail
is important. But for most projects, this simply isn't the case. The
worst that will happen is that customers will choose a different
product.

That being said, I do research my options and make suggestions to my
doctor. I have most certainly refused to take medicine and left a
practice before when I felt the doctor was trying to drug me without
actually paying attention to what was wrong. A different doctor
actually listened to me. The expert isn't always right.
 
G

Giovanni Azua

When you knowingly and willingly participated in building a solution that
is not in the best interest of your client, you have violated your
professional values, regardless of the client's approval.
In your general verdict, there is a soft condition "solution
that is not in the best interest of your client" technically speaking
this is not something you can always exactly pinpoint, maybe e.g.
hidden/unknown variables as it was mentioned before.

Lowering down the example I made before, lets say that there
is no such half a million USD to remove the touch of suspiciousness
and possible convenience. Lets now put the company or developer
offers its customer the Swing App but the customer ask explicitly
for the thin web application ...

How can You define the line of difference between what the
customer *wants* and what the customer *needs* ? Sometimes is
obvious but here not ... there are no death bodies, no crime, no
threat as consequence of the choice made and most importantly
the developer/company has not made "Professional Prostitution"
but just satisfied that customer demand and made the customer
happy e.g. perhaps because the customer wants to hire more
data entry people in the near future and is just trying to be cautious.

Does "happy customers are returning customers" ring a bell to you? :)

I admit at the beginning I was very defensive and exceptical
about your arguments but now I see you much more positively :)

Best Regards,
Giovanni
 
M

Monique Y. Mudama

How can You define the line of difference between what the customer
*wants* and what the customer *needs* ? Sometimes is obvious but
here not ... there are no death bodies, no crime, no threat as
consequence of the choice made and most importantly the
developer/company has not made "Professional Prostitution" but just
satisfied that customer demand and made the customer happy e.g.
perhaps because the customer wants to hire more data entry people in
the near future and is just trying to be cautious.

I don't see the negativity in this professional prostitution phrase,
anyway. Prostitutes are there to make their customers happy. It's
certainly been a viable profession far longer than software
development has.

Do you think a prostitute is going to say, "I know you say you want
this, but I don't think it's the best way to get you off, so I'm not
going to do it?" And why would saying that be a good thing?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,208
Latest member
RandallLay

Latest Threads

Top