Lists Home |
Date Index |
- To: "Rick Marshall" <email@example.com>
- Subject: What Is Extensibility? (WAS RE: [xml-dev] overheads of pipelines)
- From: "Bullard, Claude L \(Len\)" <firstname.lastname@example.org>
- Date: Mon, 8 May 2006 09:05:21 -0500
- Cc: "XML Dev" <email@example.com>
- Thread-index: AcZyf8fwVYjufdREQre2Qm0si5tdGgAIACBQ
- Thread-topic: What Is Extensibility? (WAS RE: [xml-dev] overheads of pipelines)
Is extensibility prediction? In one sense, yes it is, but in another
sense, it isn't. It is the attempt to control the evolution of the
space within which a technology is located by choice or accident.
I had a series of emails with a blogger on the topic of prediction. His
point was that the web is inherently unpredictable and that most
evolutionary spaces are like that. Mine is that it is mostly
predictable particularly because it is an evolutionary space, that it
can be directed, (See Evolutionary Stable Strategies), and that whether
one accepts it or not, the Long Tail is a tool for doing exactly that.
What confuses most people is the time scale. Because of proximity
effects, the near future is reasonably predictable and the far future is
as well. The medium term is harder because it is difficult to know
precisely when transitional phases will occur, but it is reasonably easy
to know the ranges. Success in guiding it is least certain at the
transitional boundary where a co-opting act creates a new species or
genre. Some try to create tipping points but don't understand
instability at the boundary.
So if you want to future proof (and mostly one doesn't), ask if you want
the code to thrive by co-opting, contaminating, or outright replacing
some neighbor. Guidance from fifty thousand feet is organized but
indirect. It only looks like magic because any pattern building bottom
up appears to lack direction. It is directed but emergence cycles have
timescales and without the timescale set properly, they look random.
An evolving network is intelligence in motion. If you want to model
it, model it as a transformable nested space. The space is
sentient/ambient for all practical purposes. The objects in that space
evolve as directed by the space. That is what makes extensibility hard
because success is not predicated on the evolution of the code but on
the transformation of the space.
Planned extensibility attempts to control the evolution of code in
motion. If you have no model you can test, don't do it. While a system
may be closed and insensitive, the proximate space it is in is not.
That is the essential challenge of real time control: not to damage the
locals in a local timescale or to do it very precisely.
A network with only one node is meaningless.
From: Rick Marshall [mailto:firstname.lastname@example.org]
extensibility is future proofing
come back later and share stories of when you should have furure
proofed, but for the moment you didn't.
win today, lose tomorrow - it's a big gamble.
Jirka Kosek wrote:
> bryan rasmussen wrote:
>> 2. should one always build the most extensible application even if
>> current needs do not require extensibility - my personal opinion is
> I think that extreme programming folks would say "NO".
> I would say "It depends". ;-)