[extropy-chat] Some ideas... dumped
Adrian Tymes
wingcat at pacbell.net
Mon Aug 16 03:32:43 UTC 2004
--- Emlyn <emlynoregan at gmail.com> wrote:
> People have been slagging off the loner coders for a
> long time now,
> you know, those mad geeks who can't communicate but
> can churn out
> magic code that no one else can, and no one can
> understand.
*cough* And the more I see the reality of that
stereotype, the more I see it to be false. Maybe I am
one of those mad geeks, but so long as I have the
source code, I've been able to reverse engineer any
system I've tried to. That has, in fact, been a
necessity on some of my jobs, due to sheer lack of any
other documentation.
Then again, people like me tend to charge a lot for
our services. Businesspeople sometimes call something
"impossible" when it's actually just "impossible to do
really cheaply".
> btw, I don't think the grind method is necessarily
> wrong, I just think
> there are valid alternatives.
Ditto. There are times when non-trivial costs are
justified - mainly when the potential profits are even
greater. (One would think businesspeople would
understand the concept of "investment"...)
> That's the kind of thing I'm thinking of, but I've
> got a mad idea
> about self documenting APIs (think web services, but
> promoted to the
> level of abstraction of a java space),
Been there. Done that. Self-documentation is a nice
start, but unless you have some way of conveying the
meaning of each thing (at a minimum, well-chosen names
instead of stuff like "double doShmoo(short a, short
b, float x)"), it falls flat on its face.
> and
> distributed systems
> composed almost solely of loosely coupled small
> pieces, so that the
> overall central control of the api is less
> necessary,
You don't directly need central control of the API.
You do need a central document source, and
certification for each change that all affected
parties acknowledge and will comply with it. For
large groups, this can be done semi-autonomously - if
(and only if) the involved parties can agree to it.
But as you said, this is for a project where the
independent coders don't talk to each other very well,
thus the need for central control: to facilitate
communication and make sure some agreement is reached.
Otherwise, you'll have coder A working to his version
of the API and coder B working to her version, and
find bugs where the two versions conflict. (Say, if
coder A figured out that doShmoo() only returns
positive integers, and thus changed its type to int,
but coder B was doing bit-shifting tricks with the
result that only work for a double.)
More information about the extropy-chat
mailing list