Follow @RoyOsherove on Twitter

Writing A book Is Like Developing Software

I'm in the process of writing my upcoming book: The Art Of Unit Testing, and it's proving to be a big challenge. Bigger than I imagined. (Here's the first sample chapter - PDF)

Book == Software Development. The Comparison might seem a bit weird at first, but my experience so far seems to be compatible with this.

Some examples:

  • Creating the Table Of Contents == Big Design Up Front

When submitting your book proposal to your publisher(I work with Manning on this book), they'll ask you to provide a TOC for the book including chapter length, sub sections in each chapter etc. Whatever you write there is at best a guess.

As I wrote the first 2 chapters of the book I realized that the TOC I had was all wrong, and that I was doing it all wrong. So I rewrote the TOC because I suddenly realized that half the subject I wanted to talk about in the last half of the book, actually belong in the first few chapters, and that 3 chapters from the rest can be combined, and that some of the stuff I wrote is simply not going to be relevant, as a specific chapter, that is.

Kinda like design, where you realize you designed something wrong the minute you try to implement the design.

  • You learn as you go

Like software, you realize what you actually want to say in the book as you are writing it, so the design needs to keep changing, and your thoughts about what's good and what's not keep changing as well.

  • It's always more complicated than you initially thought

Nothing to add here.


Have you ever written a book? Feel the same way?

The 46 Best-ever Freeware Utilities - By DonationCoder.Com

Test Reviews Vs. Code Reviews - Some Helpful Tips