I’m writing a book. It is a technical book on developing web applications using the Grails framework. I won’t get any more technical than that in this post because what I want to talk about is what I have learned so far from the experience of taking on a project of this scope. So all of my non-technical readers can read on without fear of your eyes glazing over.
It all started when I discovered that a new major version of the Grails software was being released. As I read the description of the new release I began to realize that it was quite different from the version that I had been using. I did what I always do when confronted with new software, I looked for a tutorial book to read on it. This time there wasn’t one.
The books covering the previous release of the software had not been out for that long and I imagine the authors of those works were taking a much needed break before taking on such a substantial rewrite. It occurred to me that since I was going to have to learn the new software anyway, I should take it as an opportunity to write a tutorial book about it.
I have wanted to write, and publish, books for quite a while. Four years ago I started writing a daily journal entry at 750 Words. At first I spent a lot of time writing about how many words I had written and how hard I was finding it to sit and write seven hundred and fifty words at one sitting. But slowly, day after day, week after week, I started to write about more interesting things. I wrote about what happened the day before. I wrote about my plans for the day. I wrote snippets of stories, I like to call them sketches.
One year I took on the Nation Novel Writing Month challenge to write a 50,000 word novel during the month of November. The first time I tried I got the flu the second week and got hopelessly behind the 1,700 word/day pace necessary to complete the challenge. The next year I was too busy with other commitments but the year after I completed the first draft of a novel of the requisite size within the month allowed. It needs a lot of work before I would want anyone else to read it but I proved to myself that I could do it.
I follow the blog of Dave Winer, the creator of both blogging and podcasting. Dave often talks about how he goes about writing software. One of the things he recommends is that you Narrate Your Work. I have made a practice of doing that professionally for many years now. I have used several writing tools to keep my log. Everything from plain text editors like notepad to outline processors. Lately at work I have been using a small wiki similar to the software behind Wikipedia to keep my work log.
When I decided to write this book I had just discovered Michael Hartl’s book Ruby on Rails Tutorial (3rd Ed.). While reading the book I poked around Michael’s site and discovered that he was making his publishing software, Softcover, available free for other authors to use to write their books. And, to make a good deal better, he was offering to provide a bookstore framework with which to sell your product at a deal that is unheard of in the publishing business.
That was when I decided that I would write my book using the Softcover software. I would Narrate My Work by documenting my experience as I learned all of the details of the new version of Grails.
I did a quick estimation of how much work was involved. I looked at the tutorial books that I had read lately. They were all about twelve chapters long. I, naively, estimated that I could write a chapter a week. So, I estimated I could write the book in three months.
I have subsequently determined that there are a lot of factors that I didn’t take into account. It has taken me about a month to get everything set up and write the first chapter. I also neglected to include the time for learning how to do the things that I was writing about. My revised estimate is that it will take me about six months to write. That may still be optimistic but if I take much longer than that, I may face stiff competition from others who have been writing their own Grails tutorials.
I have learned a lot this last month. I have gained a lot of confidence in my ability both as a programmer and a writer. I am enjoying myself and learning a lot of interesting new things. Even if the book never sells a single copy, it will have been worth the effort.