The Plan
Start with a Product Plan, which will contain everything you need to know about the product; i.e. the plan defines the product's relation to your business, the financial aspects, the technology, manufacturing, marketing and the users. The plan will be the basis for all detailed requirements. Following are usual components of a product plan:
- BUSINESS STRATEGY
- MARKETING PLAN
- RESOURCE PLAN
- FINANCIAL PLAN
- DEVELOPMENT PLAN
- MANUFACTURING PLAN
- QUALITY & RELIABILITY PLAN
- SERVICE/MAINTENANCE PLAN
The Plan from a testing viewpoint
First of all, a plan is really necessary for a product development effort. There are those who 'feel' their way through product development without much of a plan, because they either "know the way" or "we don't want to destroy creativity" or "we won't be able to respond quickly enough in this high-paced business". Most product development programs run this way don't do well in reality and they very often need to change course when things don't work out. And changing course without a plan really means "Let's try something different and see if it works" - this is product development by serendipity. You can only change course if you know where you are and where you originally wanted to go.
Secondly, a plan does not have to be thick, bureaucratic or laborious, but it must be well considered. So… some up-front time needs to be budgeted to ponder and do the plan.
Once the product plan has been generated you will have a coherent path to follow, albeit with some potholes (unknown parts) - which is OK. At least the potholes will be on the map and bounded by the rest of the known tasks. This greatly reduces surprises and allows more realistic budgeting for contingencies.
From the product plan you can then generate detailed requirements lists (or specifications). These requirements MUST be precise and not general statements, otherwise they can not be quantified and measurable. Then you can create a test plan, which, when executed, will provide measured results that map directly back to the specifications. This provides explicit verification or where to correct things to achieve verification.