At some of the more orderly places I've worked, we put dates on comments.
Also, whenever we made a change, we put a comment (at the top of the class, function, method or whatever is changed), also timestamped, with a reference to the change request ticket (or equivalent), and a summary of the change.
Old comments were deleted if necessary (you could always look them up with a diff on the source control)
Said ticket also had a reference to the code file :) so you had 100% traceability.
The downside being of course it was all very bureaucratic, but there were legal requirements to fill and it was a sensitive, finance sector company. That setup probably wouldn't work for a fast-paced startup :)
Also, whenever we made a change, we put a comment (at the top of the class, function, method or whatever is changed), also timestamped, with a reference to the change request ticket (or equivalent), and a summary of the change.
Old comments were deleted if necessary (you could always look them up with a diff on the source control)
Said ticket also had a reference to the code file :) so you had 100% traceability.
The downside being of course it was all very bureaucratic, but there were legal requirements to fill and it was a sensitive, finance sector company. That setup probably wouldn't work for a fast-paced startup :)