Everyone knows what use cases are and their use in the software requirements process. We all know there are many ways to write them: logical, physical, to describe a manual procedure or an automated procedure. The purpose of State Diagrams is well-known to everyone in the field. They help us define the transitional lifecycle of an object moving and manipulated on within a system. Data dictionaries are important to describe the elements of each data entity or class. And so on.
It is like a toolbox to choose from. I could use the hammer to bang on a nail (its original use), or to open something (an innovative use). In my requirements projects (or rather sub-projects form software development for that matter), I can use any or all of these techniques to analyze the system at hand. The question is when? What is the best strategy to employ these tools and get results most efficiently and effectively?
Nevertheless, this question did not seem answerable; even worse, it was not even asked! Instead, I looked around for a sample deliverable or a template to follow, with the hope that they would give me a picture to visualize and help me put the pieces together; and hopefully relieve me from the need to have a strategy. The tactic worked to an extent, but not completely. I still did not know for sure which step to make at each time I went to see the client or sit to think about the requirements plan. Only until the project was complete was I able to see the picture. So naturally, I took longer than I should to complete requirements; and the results were not as satisfactory as I as well as everybody involved wished for.
What was missing was the method, the strategy, the cunning of a chef who knows which ingredient to add and the exact timing and portion. What was really missing - and seems to be still missing - is the "recipe".