Hundreds of emails. Many bugs reports. Constant changes. This is a story from my days as a Senior Developer and how I discovered ATDD (before I even knew what it was).
Should every requirement include concrete inputs and outputs?
We can formulate a requirement in general and specific form.
General form:
Order price should be calculated by multiplying unit price by quantity.
Specific form (input) --> (output):
(unit price = $5, quantity = 2) --> (total price = $10)
(unit price = $20, quantity = 3) --> (total price = $60)
You need the specific example-based form so that you can write Acceptance Tests.
On the other hand, the general form is useful to convey the rule / calculation to guide developers in implementation.
Should every requirement include concrete inputs and outputs?
We can formulate a requirement in general and specific form.
General form:
Order price should be calculated by multiplying unit price by quantity.
Specific form (input) --> (output):
(unit price = $5, quantity = 2) --> (total price = $10)
(unit price = $20, quantity = 3) --> (total price = $60)
You need the specific example-based form so that you can write Acceptance Tests.
On the other hand, the general form is useful to convey the rule / calculation to guide developers in implementation.