why program to interface is better design?

L

Laurent Bossavit

Thomas,

[Case where the painter warns, "You're going to regret the quick job."]
Sure. And the customer says "ok". The painter's supposed to refuse to do
it? unless you romanticise this, there is no moral nor ethical issue here
at all.

In my view this is not about morals or ethics, as in "the contractor
Ought To refuse the job".

What I'm pointing out is that the contractor is *free* not to accept the
job, i.e. nothing immediately fatal will happen to him if he doesn't
take on the job. Are we agreed on that, or does that deserve more
discussion ?

It follows, if the contractor's choice is free, that he *prefers* to
work on a crap project (for the money, or out of sincere desire to help
the customer) than to do quality work. But then the contractor cannot
later invoke the excuse that "I had no choice about accepting the job".
He must take full responsibility for whatever negative outcomes he *or
the client* might suffer.

Now, I've also pointed out that in all cases I can remember, choosing to
do crap work turned out to hurt everyone. (Perhaps you have different
experiences, if so let's discuss a concrete case.)

So, I've decided to act in my best interest from now on and not turn out
anything less than the best I know. That's in the domains of software
and consulting - in other domains, where I have no professional status,
I behave differently.
Again: why? There is a waste deep moral implication in your words that you
do not elaborate on. This is a service. Go back to the painter. Why *not*
produce the product that the customer needs at the time?

Why not indeed. My point is that the customer never *needs* crap. He
needs work appropriate to his immediate and longer-term objectives, and
if you're able to deliver it, that's quality work.
Have you ever seen a customer in a startup situation that needs to get a
product that works to market as incredibly soon as possible? I have.

I've been in my share of startups. Do you recall any instance where crap
was produced to get something to market first, *and* the startup didn't
tank later ?

The most recent occasion this happened to me (five years ago), I told my
employer "You'll have something in a month. It'll be the best work I can
do. It may be fewer lines of code, or less functionality, than I could
do flat-out, but it'll work and it'll be maintainable, and we can build
additional features on top of that safely."

They took the deal, and they got the money that getting something out
the door quick was supposed to help them make. Everybody won, that first
round. Later on, things got dicey and ultimately the business tanked.
Just a story - but a true story.
Repeatedly. In this case, the emphasis is getting the damn thing out the
door. Often that bites the customer hard, but sometimes that only bites the
customer later. Sometimes getting the thing to market regardless of the
internal invisible quality of the code is the only way he can get his
company to the next stage!!!!

In many of these cases, you can still get away with getting quality code
to market fast. You may get less of it to market - but what counts is
not quantity, what counts is showing up. "Getting the company to the
next stage" often involves funding - it's the people with the funding
who're looking at you, not the market, and what they're looking for is
your capacity to deliver on your own promises. If you make no overblown
promises, *and* you have a credible business case, you'll get high marks
there. If your business case *depends* on making overblown promises you
have no business building a business.

Laurent
 
M

Monique Y. Mudama

["Followup-To:" header set to comp.lang.java.programmer.] On
2005-09-30, Thomas G. Marshall penned:
Have you ever seen a customer in a startup situation that needs to
get a product that works to market as incredibly soon as possible?
I have. Repeatedly. In this case, the emphasis is getting the damn
thing out the door. Often that bites the customer hard, but
sometimes that only bites the customer later. Sometimes getting the
thing to market regardless of the internal invisible quality of the
code is the only way he can get his company to the next stage!!!!

It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.
 
S

Stefan Ram

Monique Y. Mudama said:
It's almost a truism that the first product, not the best
product, is the one that succeeds in the market.

The first product? That's why we use Visicalc and
Wordstar so often nowadays?
 
R

Roedy Green

If someone wants a painter to paint their house, but only do a quick single
coat, because they cannot afford to scrape, prime and dual coat it, is the
painter supposed to say "no no, that is not up to what I'm normally able to
do" ?

It depends on whether you consider yourself a painter or an architect.
 
M

Monique Y. Mudama

The first product? That's why we use Visicalc and Wordstar so
often nowadays?

Did they make a lot of money before they faded into obscurity? More
than their competitors at the time?
 
S

Stefan Ram

Monique Y. Mudama said:
Did they make a lot of money before they faded into obscurity? More
than their competitors at the time?

I do not know how much money they made.

The claim I responded to was "product success", which is not
neccessarily the same as "money made", but open to definition.

Because there are also costs involved, selling many items of a
famous product, does not neccessarily mean to make a lot of
money. Then, the money made might not be evenly distributed
between all the product inventors and persons involved, so the
product might mean "money" only to some of them and "no money"
to others.
 
E

Eric Sosman

Monique Y. Mudama wrote On 09/30/05 15:13,:
["Followup-To:" header set to comp.lang.java.programmer.] On
2005-09-30, Thomas G. Marshall penned:
Have you ever seen a customer in a startup situation that needs to
get a product that works to market as incredibly soon as possible?
I have. Repeatedly. In this case, the emphasis is getting the damn
thing out the door. Often that bites the customer hard, but
sometimes that only bites the customer later. Sometimes getting the
thing to market regardless of the internal invisible quality of the
code is the only way he can get his company to the next stage!!!!

It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.

That's why Betamax won out over VHS, and why Internet
Explorer never made any headway against Netscape, and why
Google couldn't take market share from AltaVista.
 
O

Oliver Wong

Laurent Bossavit said:
I've been in my share of startups. Do you recall any instance where crap
was produced to get something to market first, *and* the startup didn't
tank later ?

[ Insert Microsoft Windows joke here. ]
They took the deal, and they got the money that getting something out
the door quick was supposed to help them make. Everybody won, that first
round. Later on, things got dicey and ultimately the business tanked.
Just a story - but a true story.

"The business tanking" and "everybody winning" are not mutually
exclusive. A bunch of shareholders get together, and put money in to fund a
business. The business produces a mediocre product, but is the first to
market, so people buy the product. The shareholders make a lot of money. A
dozen new companies pop up copying the product, but making it better. The
shareholders pull out of the business, keeping all the money they made. The
business tanks. Everybody wins.
In many of these cases, you can still get away with getting quality code
to market fast. You may get less of it to market - but what counts is
not quantity, what counts is showing up. "Getting the company to the
next stage" often involves funding - it's the people with the funding
who're looking at you, not the market, and what they're looking for is
your capacity to deliver on your own promises. If you make no overblown
promises, *and* you have a credible business case, you'll get high marks
there. If your business case *depends* on making overblown promises you
have no business building a business.

In my experience, the funding people are merely indirectly concerned
with you, the coder, and your business case. The more direct concern is
"We're putting money into this. How much money are we gonna get out of it?"
And that answer may very well depend on the market, and not on whether the
coder can deliver on his/her promises or not (assuming that promise is not,
of course "I'm going to make you all rich.")

- Oliver
 
T

Thomas G. Marshall

Monique Y. Mudama coughed up:
["Followup-To:" header set to comp.lang.java.programmer.] On
2005-09-30, Thomas G. Marshall penned:
Have you ever seen a customer in a startup situation that needs to
get a product that works to market as incredibly soon as possible?
I have. Repeatedly. In this case, the emphasis is getting the damn
thing out the door. Often that bites the customer hard, but
sometimes that only bites the customer later. Sometimes getting the
thing to market regardless of the internal invisible quality of the
code is the only way he can get his company to the next stage!!!!

It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.

Bingo. Of course this requires a time frame to be complete. Succeeds
within the first year, 2nd year, after 10 years of course. But in any case
it is still the case that delivery to the market (regardless of coding
quality) can so very often be what is paramount.
 
T

Thomas G. Marshall

Eric Sosman coughed up:
Monique Y. Mudama wrote On 09/30/05 15:13,:
["Followup-To:" header set to comp.lang.java.programmer.] On
2005-09-30, Thomas G. Marshall penned:
Have you ever seen a customer in a startup situation that needs to
get a product that works to market as incredibly soon as possible?
I have. Repeatedly. In this case, the emphasis is getting the damn
thing out the door. Often that bites the customer hard, but
sometimes that only bites the customer later. Sometimes getting the
thing to market regardless of the internal invisible quality of the
code is the only way he can get his company to the next stage!!!!

It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.

That's why Betamax won out over VHS, and why Internet
Explorer never made any headway against Netscape, and why
Google couldn't take market share from AltaVista.

LOL. Point. Which is why I responded (in comp.object) that there is a time
frame required for the statement to be complete.
 
U

Ulrich Hobelmann

Monique said:
It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.

Absolutely not. The mac lost to Windows 3.0 and later products. The
German D2 cellphone service (now Vodafone) AFAIK lost its huge market
lead to T-Mobile. I'm sure there are more examples. It's power that
pushes the market, not being the first.
 
T

Thomas G. Marshall

Ulrich Hobelmann coughed up:
Absolutely not. The mac lost to Windows 3.0 and later products. The
German D2 cellphone service (now Vodafone) AFAIK lost its huge market
lead to T-Mobile. I'm sure there are more examples. It's power that
pushes the market, not being the first.

Yes, yes. But this is all to the side of the real issue.

The issue as I presented has to do with time-to-market. Time-to-market can
often be the most important concern, whether you are the first videotape
machine, the 5th videotape machine or the last buggywhip.

There is almost always a "race" to market of some kind going on, most
particularly with startups, which live and die by the merest of
thresholds...
 
R

Roedy Green

There is almost always a "race" to market of some kind going on, most
particularly with startups, which live and die by the merest of
thresholds...

People seem to think that writing crappy code will get you finished
faster. I think that is rarely the case. The firmer your foundation,
the faster you can build the house.
 
A

Andrew Thompson

Roedy said:
People seem to think that writing crappy code will get you finished
faster. I think that is rarely the case. The firmer your foundation,
the faster you can build the house.

By pushing the 'beta' to market you (the deployer) can..
- Save money on testing by getting the end user to do the
bulk of it for you, and..
- Start making money on 'updates' sooner..

This seems to be the strategy of a particular OS
maker that is currently dominant in the market.
 
R

Roedy Green

By pushing the 'beta' to market you (the deployer) can..
- Save money on testing by getting the end user to do the
bulk of it for you, and..
- Start making money on 'updates' sooner..

Not doing your testing is a separate issue from writing crappy code.

By crappy I mainly mean "unmaintainable". By "unmaintainable' I mean
all the tricks people use to make code hard to change. See
http://mindprod.com/jgloss/unmain.html
 
T

Tor Iver Wilhelmsen

Monique Y. Mudama said:
Did they make a lot of money before they faded into obscurity? More
than their competitors at the time?

Yes, but then they would be the *first* to succeed in the market, not
the *only*. And it's a no-brainer that the first have a better success
than their non-existing (or niche market) competitors.
 
T

Tor Iver Wilhelmsen

Thomas G. Marshall said:
LOL. Point. Which is why I responded (in comp.object) that there is a time
frame required for the statement to be complete.

Yes but that's to trick with numbers. If you had a stock that rose
rapidly for five days before plummeting like a rock, if you restricted
your reporting to those five days you could claim that the stock had a
steady increase in value - but the whole story paints a different
picture.
 
D

Donald Roby

Monique said:
["Followup-To:" header set to comp.lang.java.programmer.] On
2005-09-30, Thomas G. Marshall penned:
Have you ever seen a customer in a startup situation that needs to
get a product that works to market as incredibly soon as possible?
I have. Repeatedly. In this case, the emphasis is getting the damn
thing out the door. Often that bites the customer hard, but
sometimes that only bites the customer later. Sometimes getting the
thing to market regardless of the internal invisible quality of the
code is the only way he can get his company to the next stage!!!!


It's almost a truism that the first product, not the best product, is
the one that succeeds in the market.

Why isn't Wordstar the predominant word processor? Or at least WordPerfect?

The product that succeeds is frequently neither best nor first.
 
T

Thomas G. Marshall

Tor Iver Wilhelmsen coughed up:
"Thomas G. Marshall"


Yes but that's to trick with numbers. If you had a stock that rose
rapidly for five days before plummeting like a rock, if you restricted
your reporting to those five days you could claim that the stock had a
steady increase in value - but the whole story paints a different
picture.

And there /is/ no "whole story" either. Until the company is out of
business.


--
Having a dog that is a purebred does not qualify it for breeding. Dogs
need to have several generations of clearances for various illnesses
before being bred. If you are breeding dogs without taking care as to
the genetic quality of the dog (again, being purebred is *not* enough),
you are what is known as a "backyard breeder" and are part of the
problem. Most of the congenital problems of present day dogs are
traceable directly to backyard breeding. Spay or neuter your pet
responsibly, and don't just think that you're somehow the exception and
can breed a dog without taking the care described.
 
T

Thomas G. Marshall

Roedy Green coughed up:
On Sat, 01 Oct 2005 03:17:25 GMT, "Thomas G. Marshall"



People seem to think that writing crappy code will get you finished
faster. I think that is rarely the case. The firmer your foundation,
the faster you can build the house.

Totally incorrect.

The firmer your foundation, the more *solidly* you can build your house.
You can build in no time if you don't do the extensive design. If you're
gonna try to argue against the time-to-market speedup, you're gonna have to
pick a metaphor that /doesn't/ make my argument for me. ;)



--
Having a dog that is a purebred does not qualify it for breeding. Dogs
need to have several generations of clearances for various illnesses
before being bred. If you are breeding dogs without taking care as to
the genetic quality of the dog (again, being purebred is *not* enough),
you are what is known as a "backyard breeder" and are part of the
problem. Most of the congenital problems of present day dogs are
traceable directly to backyard breeding. Spay or neuter your pet
responsibly, and don't just think that you're somehow the exception and
can breed a dog without taking the care described.
 

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,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top