It's not a must but could be really helpful. Yes, it can help to make the project observable, but if the project is really big, even UML schematic may appear too complex. If the project is clearly decomposed in smaller parts, it can be more feasible.
Visio? It only pretends to be a UML tool. I personally don't recommend it, it's a bogus. Originally, it was an application for general-purpose diagramming of pretty bad quality; and then they added some UML on top of it.
From all I tried (quite a number of possibilities), I use only ArgoUML:
http://en.wikipedia.org/wiki/ArgoUML[
^],
http://argouml.tigris.org/[
^].
It has million of disadvantages and actually does not cover some important UML notation (I especially miss template/generic classes), but other (open-source) tools are worse. And I think in real life the export to SVG available with ArgoUML is critical. It depends on what you do; it you need to present some architectural/design artifacts to people, this is important; if this is just for internal work, you still can use it, but the lack of vector graphic exports would make me feel unsafe.
—SA