Technical writing/Making a bad requirement good
- Read the following paragraphs
- Copy the paragraphs to a new page (in the section below)
- Separate the chunks and give them UniqueIDs
- Re-write the chunks in proper requirements style
- Save your page
A bad requirement example
At the beginning of each month all clients (Customer Alpha, Customer Omega) print invoices for previous month.
Customer Alpha uses bulk printing.
As an input parameter is a SFBR (session for bill result). Sometimes Customer Alpha needs to print invoices only for particular subscribers.
Invoices to be printed are chosen by a list of Personal accounts.
Sometimes it is needed to reprint all invoices for a particular period of time (i.e. last year etc.).
One customer can have several contracts; each contract can have several personal accounts. So to print invoices of one customer it is necessary to use list of personal accounts.
If customer closes contract (usually other day then at date of billing session), then a hot-bill will be created and the regular bill created as well.
At the billing session close there runs a check-up for any hot-bills. For the personal account with a hot-bill there will be created a new shorter billing period for the regular bill, excluding the period of the hot-bill.
At the end of each month Client Alpha needs to print all hot-bills in one bulk procedure.
To fully satisfy these needs, it is necessary to create three new methods, which will extend the actual system.
These new methods will be called on DataBase level via DataBase link. Because it is impossible to transmit sys_refcursor via DataBase link, “types” should be used.