The other day I was talking about how one prepares and researches for an article to noted author and speaker Michele Leroux Bustamante (with whom I teach a “Fundamentals of Web Services” class with). Michele said that she spends several days on an article, utilizing articles, newsgroups, communications with contacts in Microsoft, and, of course, by crunching out code and seeing what happens. She said her technique was to focus 100% of her time on one particular article until she had it finished. Her comments piqued my interest, since I am on the opposite end of the spectrum. I shared my style with Michele, but thought it might also be useful to other writers to share my approach here.....
I find my best writing occurs when there are several weeks of time between initially given the writing assignment and actually starting writing. Too, I find sometimes writing goes best if spread out over several days. If I am asked to write a topic about which I only have a cursory understanding on, I usually start by spending an hour or two a day for a week reading articles, trying out code examples, just playing around with the concepts and specifics to broaden my understanding. Following that, I find it helps to continue poking around the Web for information, but, at the same time, I start formulating an article outline mentally. I rarely find myself writing down the outline, usually it's just a bunch of 1s and 0s in my brain, but I lay out the flow of the article mentally before writing. I'll usually do this to fill time, like if I'm waiting in line, taking a shower, before falling asleep or right after waking up, or when walking the dog. For topics I have an intimate understanding with, such as topics on the ASP.NET DataGrid, I usually forgo the initial research (since it's been done in countless hours past) and instead spend a day or two mapping out the article in the noggin'.
Once I have a mental vision of the article, and have had sufficient research time, I begin writing! Writing can vary from hours to a week, depending on my knowledge of the subject matter, the length of the article, and the complexity of the material. For example, I find myself taking close to a week to write each installment of my Extensive Examination of Data Structures article series, due in part to its length (Part 4 is over 8,000 words long with 16 figures!!) and the difficulty in describing a potentially complex topic in an easy-to-understand manner. I rarely find myself refactoring what I write. That is, I hardly ever go back and rearrange the presentation of the material, or strike a paragraph, or add extra content. If I do make edits to previously written content, it's usually because at some point later in the same article I realize I need to talk about something that requires an explanation beforehand.
Also, ever since my first book I've found that very little changes from my first draft and the final draft. For books, typically two grammatical editors and at least one technical editor will go through the manuscript, making suggestions, changes, and fixes, but usually the only fixes are slight grammatical ones. I humbly attribute this to good writing, not lazy editors. I've worked as a technical editor on two computer trade books before and, trust me, there can be a lot of work for an editor, especially for newer authors.