Lists Home |
Date Index |
1/10/2002 10:01:11 AM, Al Snell <firstname.lastname@example.org> wrote:
>On Wed, 9 Jan 2002, Tim Bray wrote:
>> My instinct has always been to build systems in the simplest
>> possible way (which XML message passing usually is) as fast
>> as possible and then once you have something working, as a side
>> effect you'll have an understanding of the problem you're
>> actually trying to solve. Sort of the Extreme Programming approach.
>This is perhaps a fundamental divide in computing :-)
>I think it's a personal thing. The way my mind works, I'm much happier
>visualising an entire system in my head and putting a lot of effort into
>intial design than 'try it and see'.
Yup, this is a pretty fundamental divide, but I think it's more than a
"personal thing" There was a thread (well, Leigh Dodds and I corresponded
a bit) at http://lists.xml.org/archives/xml-dev/200112/msg00778.html and
http://lists.xml.org/archives/xml-dev/200201/msg00006.html trying to define
decision criteria for when a "strong" (up-front design, strongly typed, tightly
coupled) or "loose" (build it simple and let it evolve, untyped, loosely coupled)
approach makes the most sense. For example, even if your are much happier
in general visualising a system and doing lots of initial design, you will probably
be more effective doing it the "try it simple and see" way if you are stuck on
a project with rapidly changing requirements, diverse data sources, and
no authority to make people "do the right thing." Conversely, even someone
with the instinct to build it the simplest possible way is likely to be more effective
doing up-front design when working on a project with contractually defined
requirements, fixed schemas for data sources, and a strong
"engineering" corporate culture.
I don't think Extreme Programming was mentioned in the previous thread,
so here'a another node for the decision tree:
If you work in a shop committed to some up-front design methodology -> strong
If you work in a shop where Extreme Programming is practiced -> loose
And BTW, "->" means "tends to favor" rather than "logically implies".