In theoretical computer science we traditionally list the co-authors
of our papers alphabetically. Done this way for "fairness"
it leads to a binary notion of author. Either you are an equal author of a
paper or you are off the paper. There is no middle ground.
In our publish or perish society, authoring papers helps you succeed,
in getting hired, promoted and receiving grants and awards. So
choosing who is an author of a paper, particularly important papers,
can be an important and sometimes messy decision complicated by the
fact that the authors have to do the choosing.
An author should have made significant contributions to a
paper. But how do we define significant? A person who produces key
ideas in the proof of a main result certainly becomes an author. A
person who simply writes up the proof should not be. But what about
the person who works out the messy but straightforward details in a
proof? What about the person who poses the questions but has no role
in the proof? Tricky situations that one needs to handle on a
case-by-case basis.
An advisor should hold him or herself to a higher standard. A good advisor
guides the research for a student and should not become a co-author
unless the advisor had made the majority of the important ideas in the
proofs. Likewise we hold students to a slightly lower standard
to get them involved in research and exposition of their work.
Computer scientists tend to add co-authors generously. While seemingly
nice, this makes it difficult to judge the role authors have played in
a paper, and sometimes makes who you know or where you are more
important than what you know.