I was working on a Functional Specification today, and I opened a tool to create two UML diagrams. We use UML as a standard, so I normally create fairly detailed use case and sequence diagrams for the developers. I find it’s a great tool for us to be able to talk to each other very clearly.
Not that UML is perfect. There are a lot of other modeling tools that you can use to create clear communications between teams. I actually think that it doesn’t matter which standard you pick – just that you pick one. I’ve seen teams use the flaws in a standard as a reason not to use any – and most often I’ve seen those teams be more inefficient than those who use standards.
Don’t get me wrong – I think that blindly sticking to a standard when the situation doesn’t call for that is a bad idea. But using professional modeling methods to help you develop good software is almost always the right thing to do.