why program to interface is better design?

T

Thomas G. Marshall

Donald Roby coughed up:
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.

Succeeds /when/? Word perfect /did/ dominate at one point. So did
"visicalc". In fact, so did "quicken". Things are fluid. This
sub-argument has to end because it has nothing to do with why time-to-market
can be so important in the first place, which was a fundamental component to
my argument.


--
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.
 
R

Roedy Green

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. ;)

Perhaps my house metaphor is off, but quick and dirty nearly always
takes longer to finish, than doing things properly.

Doing things right the first time in almost always fastest to finish,
even if crappy can show SOMETHING sooner.

There was some famous guy who said major projects should be rewritten
from scratch three times, each time learning from the previous one.
 
T

Thomas G. Marshall

Roedy Green coughed up:
On Mon, 03 Oct 2005 03:03:57 GMT, "Thomas G. Marshall"



Perhaps my house metaphor is off, but quick and dirty nearly always
takes longer to finish, than doing things properly.

Doing things right the first time in almost always fastest to finish,
even if crappy can show SOMETHING sooner.

There was some famous guy who said major projects should be rewritten
from scratch three times, each time learning from the previous one.

Well, again, you're confusing overall quality with time to completion. And
to boot, you've mixed in maintainability into this elsethread. Writing code
very quickly is just that: writing it quickly. You don't /try/ to write
crap, and no one /asks/ you to write crap. Crap is a distinct possibility,
but if it works "well enough" in the short term, it will have satisfied the
requirements. So in other words, "doing it quickly" is always faster than
"doing it slowly", by definition. You're confusing the qualifiers.


--
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.
 
R

raxitsheth

Replying to jrefac
=====================


Hi...use of interface is best in following case.

"For Client Service is important But not Server( which provide
Service)"

Interface is mapped to Service...
Implementation is mpped to Servers....

When in systems you want same Services provided by several different
entities(Servers) use of Interface would SAVE your time/Resources to
change the Servers...
(change of Server's Effect would not propogate to Entire System ...)

Because with interface you are ABSTRACTING Servers...and you can change
servers by maintaining Contract of Service (i.e. Interface)....


Regards
Raxit Sheth
 
R

raxitsheth

Replying to jrefac
=====================


Hi...use of interface is best in following case.

"For Client Service is important But not Server( which provide
Service)"

Interface is mapped to Service...
Implementation is mpped to Servers....

When in systems you want same Services provided by several different
entities(Servers) use of Interface would SAVE your time/Resources to
change the Servers...
(change of Server's Effect would not propogate to Entire System ...)

Because with interface you are ABSTRACTING Servers...and you can change
servers by maintaining Contract of Service (i.e. Interface)....


Regards
Raxit Sheth
 
Z

Zorro

The same applies to architects and boat builders. You have a
professional duty not to build something dangerous even if your idiot
customer asks you to.

Problem is, if you say "but we need time for testing, and it costs this
much" then the guy goes to someone else. Nevermind that someone else
can't do the job properly, and that it'll actually cost MORE than you
said you would charge, but the other guy ends up with the money.

This is a true story. I lost a job for refusing to do what would damage
the company. I cannot expose the details of the work. I went through a
lot of hardship, but as I heard, the loss on company was larger. Still,
they thought their programmers could not do it. I will only mention
that my boss was an average IT, with no software development
experience. Yet, he reprted to the CEO!

I never changed, and I have had a very rough life. Those who messed
things up, including the contractor, got pretty good checks.
Interestingly, it was that memory that resulted in my latest blogger on
outsourcing.

Regards,
(e-mail address removed)
http://www.zhmicro.com
http://distributed-software.blogspot.com
http://groups-beta.google.com/group/computerlangZ?lnk=la&hl=en
 
A

Andrea Desole

Thomas said:
{shrug} Presumably the same person who made it will be /paid/ to fix it.

Maybe I should start contracting :)
To my experience it's just the first nice guy who can do the job,
usually with little time. And if it's terribly hacked to make it work,
it doesn't matter, it just has to work. As usual.
 
C

Cristiano Sadun

In my impression, not much the first as the second or third - the one
that first avoids the toothing pains which are most visible to the
final customer.
 
M

Monique Y. Mudama

Succeeds /when/? Word perfect /did/ dominate at one point. So did
"visicalc". In fact, so did "quicken". Things are fluid. This
sub-argument has to end because it has nothing to do with why
time-to-market can be so important in the first place, which was a
fundamental component to my argument.

I miss the glory days of WordPerfect. Mmmmm reveal codes.
 
T

Thomas G. Marshall

Zorro coughed up:
This is a true story. I lost a job for refusing to do what would
damage the company. I cannot expose the details of the work. I went
through a lot of hardship, but as I heard, the loss on company was
larger. Still, they thought their programmers could not do it. I will
only mention that my boss was an average IT, with no software
development experience. Yet, he reprted to the CEO!

I never changed, and I have had a very rough life.

Standing on principal can often be very tough. I simply have examined what
I do as simply not worth such principal at all. To do so IMO is to
romanticize the industry, which is silly. Yet I greatly respect your
stance, in that I respect anyone who has guts to stand up, sometimes
entirely irrespective of their opinion.

Interestingly, I am the one who is known for "going to the mat" in arguments
over seeming minutiae. I internally demand perfection, but that's if it is
affordable. Other than that, it's all business calculus. Stop the
ridiculous romance, make your money, be the world's best designer but when
someone's paying you for it.



Those who messed
things up, including the contractor, got pretty good checks.
Interestingly, it was that memory that resulted in my latest blogger
on outsourcing.

Regards,
(e-mail address removed)
http://www.zhmicro.com
http://distributed-software.blogspot.com
http://groups-beta.google.com/group/computerlangZ?lnk=la&hl=en



--
Enough is enough. It is /not/ a requirement that someone must google
relentlessly for an answer before posting in usenet. Newsgroups are
for discussions. Discussions do /not/ necessitate prior research. If
you are bothered by someone asking a question without taking time to
look something up, simply do not respond.
 
T

Thomas G. Marshall

Monique Y. Mudama coughed up:
I miss the glory days of WordPerfect. Mmmmm reveal codes.

Oh Christ. That app was a mess. Reminded me of that silly "Gold" key on
VT-52's on WPS-8 word processing software on PDP-8's. Dating myself
terribly. But everything was a bizarre key combinations. Gold-this,
Gold-that. Perhaps only emacs was worse....


--
Enough is enough. It is /not/ a requirement that someone must google
relentlessly for an answer before posting in usenet. Newsgroups are
for discussions. Discussions do /not/ necessitate prior research. If
you are bothered by someone asking a question without taking time to
look something up, simply do not respond.
 
M

Monique Y. Mudama

Monique Y. Mudama coughed up:

Oh Christ. That app was a mess. Reminded me of that silly "Gold"
key on VT-52's on WPS-8 word processing software on PDP-8's. Dating
myself terribly. But everything was a bizarre key combinations.
Gold-this, Gold-that. Perhaps only emacs was worse....

No idea what you're talking about. But WP was extremely powerful.
That's worth a bit of extra memorization.

Granted, I'm a vim person, not an emacs person ... I'd rather use home
row keys than control ...
 
M

Monique Y. Mudama

["Followup-To:" header set to comp.lang.java.programmer.] On
2005-10-03, Thomas G. Marshall penned:
Interestingly, I am the one who is known for "going to the mat" in
arguments over seeming minutiae. I internally demand perfection,
but that's if it is affordable. Other than that, it's all business
calculus. Stop the ridiculous romance, make your money, be the
world's best designer but when someone's paying you for it.

When I see a design, maintenance, etc. concern, I do my level best to
bring it to the attention of my lead and make sure they understand the
problem. Once they understand it, it is their job to decide whether
it's a problem worth pursuing.

If I were in more of a leadership role, of course, I would be the one
making such decisions.
 
T

Thomas G. Marshall

Monique Y. Mudama coughed up:
Monique Y. Mudama coughed up:
....[rip]...
Oh Christ. That app was a mess. Reminded me of that silly "Gold"
key on VT-52's on WPS-8 word processing software on PDP-8's. Dating
myself terribly. But everything was a bizarre key combinations.
Gold-this, Gold-that. Perhaps only emacs was worse....

No idea what you're talking about. But WP was extremely powerful.
That's worth a bit of extra memorization.

Granted, I'm a vim person, not an emacs person ... I'd rather use home
row keys than control ...

Gotcha. When I ran a unix development department, vi was all I *could* use,
since I couldn't easily get anything else to run on the myriad of
pre-released hardware I had to port to. Used (use) VI for years. Use it
now, for when I cygwin-BASH {shudder} into a directory for bare-knuckles
editing/javac/java cycling.


--
Puzzle: You are given a deck of cards all face down
except for 10 cards mixed in which are face up.
If you are in a pitch black room, how do you divide
the deck into two piles (may be uneven) that each
contain the same number of face-up cards?
Answer (rot13): Sebz naljurer va gur qrpx, qrny bhg
gra pneqf naq syvc gurz bire.
 
T

Tor Iver Wilhelmsen

Monique Y. Mudama said:
I miss the glory days of WordPerfect. Mmmmm reveal codes.

*Reveal* them? They should be in the document all the time. Wordstar
and TROFF for the win.
 
Z

Zorro

When I see a design, maintenance, etc. concern, I do my level best to
bring it to the attention of my lead and make sure they understand the
problem. Once they understand it, it is their job to decide whether
it's a problem worth pursuing.
If I were in more of a leadership role, of course, I would be the one
making such decisions.

What you are saying in correct. In fact, just about any meaningful
statement is correct in some context. Of course your statement is not
just a meaningful one, it is a proper procedure and under normal
circumstances, that is how one should proceed.

I do not know if this will benefit anyone, but with the hope that it
may result in positive and constructive reactions, I will give a little
more detail of the incident. The point is that, an engineer who knows
what he is doing, should not just do what he is told to.

I was maintaining a C++ library of over 120,000 lines, with a huge
number of classes. The CEO really wanted to replace our competitor's
library with ours for a customer. This is a reasonable suggestion. The
people who talked to him were my boss and the contractor. They told
him, no problem, in fact it is easy.

So, they come to me and tell me how to do it. The contractor wants me
to create a header file containing C macro defines. These defines will
replace every class, method etc of the competitor's library with ours,
in the customer's code.

They seemed to understand my academic explanation about the absurdity
of their suggestion. But my boss insisted that I do it anyway. Then, I
asked them, why do you think the customer would accept this for
probably millions of lines of their code, even if it works. The answer
was, that comes later.

Now, according to your statement, I should have done it anyway. I
explained it, they understood, and the conditions of your statement are
met. There was one problem. My boss could not go back to the CEO and
tell him that he had no clue what he was talking about, and the
contractor was already working on going to customer site to help them
with conversion.

I do not know how this will help. I certainly would not go to the CEO
and speak against my boss. Perhaps it will help the bosses reading this
to learn to talk to their engineer before making promises to their
superiors.

Regards,
Z.
 
M

Monique Y. Mudama

Now, according to your statement, I should have done it anyway. I
explained it, they understood, and the conditions of your statement
are met. There was one problem. My boss could not go back to the CEO
and tell him that he had no clue what he was talking about, and the
contractor was already working on going to customer site to help
them with conversion.

I do not know how this will help. I certainly would not go to the
CEO and speak against my boss. Perhaps it will help the bosses
reading this to learn to talk to their engineer before making
promises to their superiors.

It sounds like the real problem you had was a boss with no integrity.
Of course he could go back to the CEO and admit he was wrong. And in
a good company, being wrong occasionally doesn't get you fired.

I can't see quitting over a technical disagreement, but I can
definitely see quitting because your boss has no spine.
 
R

Roedy Green

Interestingly, I am the one who is known for "going to the mat" in arguments
over seeming minutiae.

I still sometimes wake up in as sweat thinking about a job I had circa
1993 in toxic company. Life is so short. You would not believe how
fast you get old.

I would suggest to anyone in such a situation, GET OUT. You are
needlessly torturing yourself.

There was a period in my life I had so little money I went without
food and heat I lived on pancakes.. In retrospect, that was much
easier to bear.
 
D

David Kerber

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

And a false one at that. I can't recall a single case where that has
happened, though there must be some. IME, it's usually the 2nd or 3rd
one to market who makes it big, because they learn from the mistakes of
#1, and #1 has let the potential audience know that there's something
out there which might be worth buying. Look at IBM with the PC, Henry
Ford with automobiles, Apple, etc.
 
M

Monique Y. Mudama

...


And a false one at that. I can't recall a single case where that
has happened, though there must be some. IME, it's usually the 2nd
or 3rd one to market who makes it big, because they learn from the
mistakes of #1, and #1 has let the potential audience know that
there's something out there which might be worth buying. Look at
IBM with the PC, Henry Ford with automobiles, Apple, etc.

Well, there's a very recent example for my company where a customer
chose another vendor for a product. Our people pointed out that the
competitor's product didn't work as advertised and didn't do what it
promised to do. Their response? "Yes, but theirs is available now."
Ours was still in development.

Certainly lack of a product results in lost business opportunities.
 

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,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top