Flash Gordon said:
Wrong. Any decent manual for a library will provide examples of usage.
You'd be surprised. I am currently writing BabyX, a toolkit for X Windows.
It is a long time since I last used Xlib, and it is my unhappy task to try
to understand the system. Very often I have to write little explorarory
programs.
IMHO wrong. They should be written for *both* otherwise you have a
disconnect and a much higher chance of the code not doing what the
customer wants.
Normally the customer doesn't really know what he wants. Inevitably he will
look at his current procedures and specify that they should be
"computerised". Which normally means that the process becomes less efficient
because computers are worse than pen and paper for form filling. However
there is also real potential in the computer, by changing the process.
Tests don't IMHO do a good job of telling you the data flows in a system,
nor how all the components fit together.
How does the system I am curently using fit together? I am typing this into
a window which is probably a "Rich Edit" control. It then goes into some
internal program-specific buffer in Microsoft Outlook Express. Then it talks
to the Vista system to be turned into an email. That goes to British
Telecom, thence to the Usenet system. Then your browser sucks it up, and
smehow it appears on screen. The process is highly intricate, but it hasn't
actually been designed by anyone. The components have been designed, their
interconnections haven't.
If you want an analogy, in a planned Communist economy all the "good flows"
were designed. Factory X would make 100 litres of red ink, factory Y 100,000
pens, which would be delivered to offices which had a ration of five red
pens per bureaucrat per year. In a free market economy, company X sets up a
plant to produce red ink, company Y a plant to make pens. Comany X decides
to produce only to contract whilst Y produces speculatively. So Y orders 100
litres of ink from X, makes the pens, and puts up an ad saying "red pens for
sale". The government offices then buy pens as they need them.
In general the unplanned network functions a lot better. Thats true of
computer systems as well. If you try to produce a dataflow diagram for an
entire company, either the diagram must be exactly right or someone
somewhere may lose a lot of money. If you give employees components - web
browsers, word processors, emails, and ethernet cables, they find ways of
linking them up to be productive.