Not necessarily. As long as it's finished before someone else needs to
work with the code.
Yes.
And, UML did not do me any good. UML did not help me design my
systems. Indeed, all of the fiddling about with the editor was
distracting.
There is a lot to be said for simply putting pen to ink. It is
quick, and it is amenable to change.
No, definitely the case. It is much slower to use a UML editor
than simply sketching.
UML is hardly the only way to do so.
Have you ever used a sketch map? A good sketch can be very
useful and very quickly made.
Exactly. Gene makes it sound as if the whole purpose of putting UML
diagrams was the benefit of the *writer*. I rather think the writer can
make good use of UML on a whiteboard or piece of paper during design
phase. UML in documents is there to help *readers* better understand a
design.
That is about it. Now, why can't the reader read the sketch?
Even if I have to redraw the sketch to neaten it up, that is almost
certainly faster than entering the data with a UML editor.
My big complaint with UML is that the tools to enter it are
awkward and slow to use. I prefer to avoid such tools.
My secondary one is that it tries to force-fit things into its
diagram types.
<rant>I have seen quite a lot of documents apparently written with the
writer in mind instead of the reader ("brain dump"). That attitude
seems to be fairly common. This is unfortunate since it limits
usefulness of documents a lot.
Unfortunately that seems to be true for code as well: there seems to be
a tendency to just make things work without consideration of ease of
use. That is mostly determined by API and not internals. Programmers
(on average) seem to be more concerned with internal workings of their
classes than with the public visible and usable API.</rant>
What rant?
I think that one of the biggest things holding us back is lack of
proper documentation.
I have been trying to find out how to communicate from browser to
SQL Server in a secure way and without using ActiveX. I finally gave
up. Sure, you can find someone pushing a solution but typically
without useful details so that you can make go yourself.
Before that, it was learning JavaScript. I ran into the case of
most books covering the basics and then stopping. The next step just
is not there.
If you want an example of imitation documentation, look at the
official documentation for Java. It has about one-third of what it
should. Were I grading it, it would get a solid D.
Sincerely,
Gene Wirchenko