A friend and I were pondering why it's hard to write content for tech books. At one point I said:
And maybe people assume that since they can write (supposedly) clear documentation, that they should be able to turn right around and write a tech book. I think that writing documentation teaches some very bad habits -- it kills whatever meager ability people have for thinking about who the audience is, because it seems that in writing documentation, it's (dismally) conventional to assume that the reader already knows everything you do, except for the exact parameters for the function/method being discussed. But in a tech book, it's vital to think about what the reader might not already know. Ergo: don't write an explanation of HTTP that uses the term "TCP stack", because the average reader who doesn't know what HTTP is, doesn't know that a TCP stack is either.