Re: C++ fluency
On May 13, 5:13 pm, "Phlip" <phlip2...@gmail.com> wrote:
James Kanze wrote:
[...]
At least now I know what we're talking about. Some of the
"principles" are provably false, of course, or at least of
limited applicability. ("The most efficient and effective
method of conveying information to and within a development
team is face-to-face conversation." for example. Complex
information can't be conveyed except in writing.
It's a statement of fact: Verbal communication is more
efficient at transmitting information, simply because of the
extraordinary amount of verbiage that can be excluded. For
example, a raised eyebrow from the listener, at the right
time, is a cue to skip ahead to the next topic.
The actual, proven fact, is that verbal communication is not an
effective method of ensuring information transmittal. That's
why, for example, contracts aren't verbal. And who's ever heard
of a verbal reference work.
If the information isn't written down, you don't have it.
You are requesting a different valence and intent for the
communication - not that it can transmit, but that it can be
referred back to.
The two are related.
The best documentation is executable "customer tests" that
actually pass when their documentation is correct. That idea
is as old as "literate programming", and here's three overly
documented versions of its modern incarnation:
http://fitnesse.org/
http://cukes.info/
http://assert2.rubyforge.org/
The above sites seem more marketing than technical.
The goal is to merge two activities - testing and documenting
- so neither wastes the other's time. (The last site is that
project's own unit tests, decorated into a cute website to
document their API. Customers are programmers!)
And the result of merging is that neither is optimal. They
target different problems, so need different solutions.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34