Lately I’ve been doing a survey of requirements engineering tools (part of that whole doing my job thing). In general this category of tools are called “Requirements Management” tools (RM for short). First, we need to look at the terminology. “Management” refers to managing requirements. “Engineering” refers to creating the requirements (at least this is my take on it).
RM tools for the most part do a good job of managing requirements. You can run reports on them, view them such that you can see connections between them, perform requirements tracing on them (if the tool supports additional features such as test cases and automated testing and linking with code (unfortunately only the very expensive tools support all of these features).
Having said that, let’s look at the “engineering” aspect of tools. Do they help you gather better requirements? That’s easy – no they don’t and if someone wants to debate that with me, I’m more than happy to discuss it. Here’s the thing – no tool we have today can interrogate a user – it’s a human interaction thing. Tools can look at requirements and say “here’s a potential problem” and that’s it. There may even be (again in the most expensive tools) a requirements validation component of the tool but in most cases those only validate the flow of operation or the flow of information and not the accuracy of steps that take place in a given process.
So why am I bringing this up? There seems to be a growing move towards using tools (not just RM tools but in general) to subsitute for processes. Tools are great, they really are. They help make our lives, as software developers (using the term loosely to cover anyone who deals with software development) easier. They make our customers lives easier. But there’s a coming problem that relates to an over-reliance on tools. Our industry needs to step back and realize that soft skills are more important than tools – especially in the requirements area! Being able to talk to someone and write and take good and accurate notes and being able to read body language are more important than any tool. Tools make communication, traceability and monitoring of requriements easier but they don’t make the requirements any more accurate. It might even be nice if schools, on top of teaching all of the technical subjects, started teaching better communication skills (both written and spoken).