I found class diagrams quite wasteful as well, you need load of time just to fill in redundant details and any issue you hit in development (i.e. you got the initialization order wrong on a not so well documented third party lib) is a mess to backtrack.<p>however, I found that a good sequence diagram here and there and a deployment diagram could really ease up communication when comparing the critical points of two or more different solutions - if done at the right level of detail.