Simon Peyton Jones has a presentation on how to write a great research paper. He has some great suggestions, which I've summarised here <!--break--> with some thoughts of my own:

  • Your goal is to infect the mind of your reader with your idea.
  • Papers should be written before and as the research is performed.
  • The abstract is written last, and follows a four sentence pattern:
    1. State the problem
    2. Say why it's an interesting problem
    3. Say what your solution achieves
    4. Say what follows from your solution
    This is only slightly different from Simon Dobson's five sentence pattern:
    1. General statement of area that paper is in.
    2. Problem that exists in the area.
    3. Why does this problem exist?
    4. What you get from this paper/work.
    5. Message that you walk away with.
  • The Introduction should describe the problem and state your contributions - nothing more!
  • The introduction should not finish with the ubiquitous "The remainder of this paper is structured as follows:" - a lazy habit that I do myself - instead, forward references should be used.
  • Related work should be left to the end - I'm not sure about this one...
  • The body of your paper should be introduced using concrete examples, and only then should the general case be presented
  • Warmly acknowledge people who have helped you; be generous to the competition
  • Start writing early. Very early.
  • Collaborate. Use tools to support collaboration, e.g., subversion, cvs
  • Get your paper read by as many friendly guinea pigs as possible - but remember, each guinea pig can only read your paper for the first time once, so use them carefully. Thank them profusely! (Thanks again ConorN for reading the body of my thesis.)
  • Always use a spell checker - You wouldn't believe the number of paper submissions with spelling mistakes.
There are other documents on Simon Peyton Jones' website, on writing good research proposals and research talks, as well as a set of resources to other useful advice. (thanks MikeB for the link.)