The Not So Secret Rules of Software Requirements

There are a number of rules that should be realized when developing software requirements.
• If you do not ask for it, you will not get it.
• If you do not recognize a need or a requirement, you probably will not satisfy it.
Clearly differentiate between wants and needs.
• Always prioritize “needs” over “wants”, no matter how badly someone wants it.
• If you ask for it and don’t get it now, it’s on the shopping list for next go-round.
Requirements need to be clear so that programmers can deliver product that meets them.
• Balance business priorities against the number of people who want something. A rarely run report without which the finance department cannot complete annual functions will have fewer cheerleaders than a function needed by thousands of users. Software requirements that will stall the business if they are not met should take priority over the number of affected users.
• The sooner you ask for a requirement, the more likely it is to be built into the software and properly tested. Requirements generated at the last minute are unlikely to be added, are often shoe-horned in if they are added and will never have the testing of the software functions built in early on.
• As with all other rationally managed budgets, when you run out of time or money, take care of necessities first before looking at what you can spare for “wants”.