Re: OOP/OOD Philosophy



On 7 Jul 2005 08:32:57 -0700, "krasicki" <Krasicki@xxxxxxxxx> wrote:

>I will infer that you're saying that More planning anfd preparation
>time might have comprehensively accumulated and accounted for these
>missing design considerations. In other words a hieavier weight
>methodology could have avoided the headaches - all things being equal.

I think you are making a good point here. There are some decisions
that are so expensive to get wrong, that you'd better get them right
the first time. That is certainly true, even in software where things
are generally very malleable.

For example, if customer X wants the system done in .NET, and the
contractor writes the whole system in Java, then even if the program
behaves perfectly, it was a very expensive error.

Now, I think the analogy with buildings is flawed. There are many
aspects to buildings that simply have to be done right the first time.
The foundation has to be laid correctly. The pylons and footings have
to be properly positioned, etc.. Otherwise the expense of correction
may exceed practical limits. Let's call such aspects "$ aspects".
There are far fewer $ aspects in software. There are *some* to be
sure, but not nearly as many.

So, yes, we need to make sure that we do not get very far on a project
without making sure that all the $ aspects are resolved. That does
not mean, however, that we must ensure every aspect is resolved early.
Indeed, the fact that software is very malleable changes the economy
such that it is *better* if we defer decisions (except about the $
aspects) as long as possible.

-----
Robert C. Martin (Uncle Bob) | email: unclebob@xxxxxxxxxxxxxxxx
Object Mentor Inc. | blog: www.butunclebob.com
The Agile Transition Experts | web: www.objectmentor.com
800-338-6716


"The aim of science is not to open the door to infinite wisdom,
but to set a limit to infinite error."
-- Bertolt Brecht, Life of Galileo
.