One way to indicate that something needs to be done in the source code is to create an issue, such as the issues at GitHub. An issue allows explanation, discussion, assignment, prioritization, and tracking. However, it does have one disadvantage: referring to specific statements or segments of the code is not easy to do, and is typically done by description instead of an exact location.

To indicate directly in the code something to be done, developers have used special symbols in comments, including:

Some of these could be issues but have the advantage of occurring precisely in the location of the code where the target is. Comparing @TODO to an issue, the @TODO is much faster to create, stays with the code even if it is copied, and makes it easier to remove the comment. Whether an @TODO or an issue, you still have to complete it.

Here is a workflow for handling a @TODO:

  1. Decide on a // @TODO ... to complete
  2. Implement the // @TODO ... in the code
  3. When finished with a // @TODO ... item, remove the comment that contains the // @TODO ...

Keep in mind the following: