In my experience most architectural documentation has been ad-hoc at best,and, aside from more structured dead-tree kinds of writing I've yet to see formal UML in actual use, and I've worked with few, if any developers who'd be able to clearly or correctly build UML diagrams - it seems to be used more as a kind of "graphical psuedocode".
Given that, I'm curious as to whether anyone has experience using UML in internal documentation and communicating system function between team members. Is this a tool/mode of communication people really use in the day-to-day? Is it helpful, overspecified? Have you worked in environments where precise UML mattered or was useful?