Prof. Simon Peyton Jones gave a great talk about how to write a research paper. I will summarize it here, so that you can check and review the individual suggestions without skipping through the video.
Don't wait: write (0:21)
Write your paper right from the beginning. It will drive your thought process and let you see more clearly, which parts need further refinement. The paper in progress also serves another way of communicating with fellow students, researchers or your advisor.
You also should not be intimidated by great work, that others produce. Most ideas start small and only become great once you explore the details.
Identify your key idea (4:20)
The paper should present exactly one key idea. You do not need to know, which your key idea is, in the beginning, but when you finish, it has to be very clear. Make certain, that absolutely everyone understands, what this main contribution is. Your readers should not have to ask themselves, what is actually novel about your approach. If you find, that you actually developed multiple ideas, split your paper and write one each. This lets you focus on each idea and makes the final result more accessible to your readers.
Tell a story (7:21)
Making people read your papers is hard business. They should be accessible and engaging. Imagine yourself explaining your current project to a colleague.
- Explain the problem. You should start with specific instances, that are easily comprehensible, before introducing the problem in its full generality
- Why is it interesting?
- It is unsolved. Why are existing solutions not applicable to this specific problem?
- Give an overview of your idea. Start with the big picture, so that your readers know, that they are getting themselves into
- Explain the idea in full detail. Here come formalisms, proofs, benchmarks and results on real-world data
- Compare your idea to other people's approaches
This narrative flow manifests in SPJ's typical outline
- Title (1000 readers)
- Abstract (4 sentences, 100 readers)
- Introduction (1 page, 100 readers)
- The problem (1 page, 10 readers)
- My idea (2 pages, 10 readers)
- The details (5 pages, 3 readers)
- Related work (1-2 pages, 10 readers)
- Conclusions and further work (0.5 pages)
You can see this structure applied in his papers, for example one on advanced pattern matching.
Nail your contributions (9:34)
Do not be too ambitious, when describing your problem in the introduction. Starting with the general description is not accessible. Instead give specific examples and then establish, what your paper will contribute. These contributions are claims, that you have to fulfill later. The reader will wonder, how you think to accomplish these things, and be interested in reading on. SPJ recommends enumerating your contributions in a bullet list to highlight them. Every list item should contain forward references to the relevant places in your paper, so that your list of contributions is an implicit table of contents. Your claims should also be specific and refutable. In physics a hypothesis, that is not refutable, is not worth much. It is the same with your claims.
Put your readers first (23:49)
Make your paper an interesting read. Your introduction should not scare off your readers with the most general description of your results. Instead guide your readers through with examples as you would in an actual conversation.
Once you get to the details, present your solution in a straight forward way. Do not dive to deeply into blind alleys that you had to explore, only to find out that they did not lead anywhere. This is exhausting for the average reader and will turn them away.
Listen to your readers (28:41)
Present early versions of your paper to friends and ask them to review it. This will help you see, where readers could get lost. You should instruct them very carefully though, that this is the information you are looking for. Otherwise they might not tell you out of embarrassment. Then try to guide them through the critical sections and listen to yourself, how you help them understand. Then put these explanations in your paper.
Occasionally it may be helpful to get expert feedback. Of course you could ask your advisor, but you could also send a draft to authors of related work.