TZ - it stands for technical task . That is, this task is from one subject to another, from the head to the slave, from the customer to the performer, etc. A programmer is a link in the production process that must receive a task before doing something. If a programmer writes himself tasks, then this means that he is excluded from the production process, that is, he is not a participant in the production process, but is an independent unit external to the production process.
The task of the analyst is to analyze the production process and, based on his analysis, issue technical tasks or recommendations if he is not authorized to issue technical tasks, but, let's say, another authorized employee does it.
A description of customer requirements is the job of a secretary, not an analyst.
For an analyst, the customer’s requirements are just input data , on the basis of which he has to give the output data , which are the terms of reference. Roughly speaking, the work of the analyst is as follows. He must indicate: this is what the customer requires, and this is what needs to be done.
And for the programmer, the TOR is the input , and the program is the output .
Otherwise, the programmer will have to duplicate the analyst. Why then such an analyst is needed?
In fact, in this case, the analyst disclaims all responsibility for his work, because if the end product does not suit the customer, the analyst will simply say that you wrote the wrong TK. That is, he completely cut off the feedback with you, and thus, climbing up the chain from you to the customer, in order to evaluate the result of the work and, for example, assess what was done wrongly, as expected, and at what stage, in this process the analyst will no longer share the responsibility. :)
How does the verification process work?
If tasks go from top to bottom, then the verification of the result is made from bottom to top.
The result of the programmer is a program. Its correctness is verified with the technical task.
The result of the analyst's work is a technical task. Its correctness is verified with the requirements of the customer.
Well, if the customer's requirements are not in themselves correct or inadequate, then the customer will not have to blame anyone except himself. :)