If I assign a task to another person, and I am the originator of the task,
how can I follow up the task as it gets done by others?

for example:

User_A assigns task to User_B
User_B receives the task and does something partially to it and assigns it to User_C
User_C receives the task and does something partially to it and assigns it to User_D
User_D finishes the task

User_A the originator of the task wants to see what User_B, User_C, User_D do
on each step of the task as it travels through them, he wants to see who has the task
and what has been doen to it.

How can I do this?