martinfowler.com logo Home Blog Articles Books About Me Contact Me ThoughtWorks

DslBookRoadmap dsl 23 February 2009 Reactions

It's been a while since I posted an update on the status on my DSL book. The most common question I get is "when will the book be out?" The way things look at the moment, I'd estimate it appearing some time in 2010. That's an estimate, with all the usual hedges that apply to such things.

To help see how the current state meshes in with that estimate, I'll describe the general progress of how books work, at least for me. The first phase is writing the First Review Draft. This means writing all the material in the book, to the level that I can submit it to peer review. For my larger books (eg Refactoring, P of EAA) this takes about 12-18 months. This book is taking longer, I've already been at it for over two years, and I suspect there's another six months or so to go. Once I have the First Review Draft, it goes out to review. This takes time for people to read it, get their comments to me, and for me to modify the text based on the review. I usually do two rounds of review - and it takes around 6 months for that to happen. Once I'm done with formal review the book is a Final Draft. At this point it goes off for production - which includes copy-edit, indexing, layout, printing, etc. That takes another 6 months. So I estimate that the book will appear about a year after I get a First Review Draft.

Not all authors work this way, some write a few chapters and sent them for review while they write a few more chapters. I use the approach I do because it was how I did my first book and it seemed to work very well.

The current state of the book is that I now have the broad structure and pass through the material done and in a coherent state. However it's not yet at a First Review Draft state as there are some significant holes to filled, and I think I'll need a few months to fill them. At that point I think it will be worth reviewers spending their time on it. However since it is reasonable coherent now, I think adventurous people may get something out of it.

My next task is to figure out what the holes are and how to fill them in. My mental writing mode is now shifting however. No longer do I want to spend a lot of time investigating new material in any depth, my aim is to push hard to get the book into a useful state for publication. Books can never be complete, the real test of them is whether they are useful. I think I have enough now to be useful, so I need to work on getting it shipped. There's enough there for later work to build on it. I'm currently looking at over 400 pages and this will only grow as the holes get filled. (It has a duplex book structure with the narratives currently clocking in at 100 pages, so that's reasonable but I'd rather it not grow too much more.)

In particular this means that two big areas will get a much skimpier treatment than they probably deserve. One of the biggest issues for me is how to talk about error handling in DSL parsing. In the end I've decided to mostly let it go - not because I don't think it's important but because I really need to cut scope in order to get the book out. I suspect that there'll just be a few pages on this at most.

I'm also not going to go too deeply into the world of Language Workbenches. I am going to write a section about them, but I won't go into too many details about the different ones, how they work, and how to use them. My reason for this is two-fold - partly the need to ship and partly that they are still new and evolving technologies. I like to write books that will last a long time, and anything detailed I write about Language Workbenches in the book will not be current for long. I think there will still be a substantial chapter on this subject, as most of it I can write without doing much more investigation, but it's less than I could.


Links
home
bliki
feed 
Translations
Japanese
Spanish
Korean
Chinese
Thai
Categories
agile
design
dsl
leisure
refactoring
ruby
thoughtWorks
tools
uml
writing
Blog Roll
ThoughtBlogs
TW Alumni
Nicholas Carr
Steve Cook
Brian Foote
Simon Harris
Gregor Hohpe
/\ndy Hunt
Ralph Johnson
Patrick Logan
David Ing
Brian Marick
Jeremy Miller
Jimmy Nilsson
Samuel Pepys
Keith Ray
Johanna Rothman
Kathy Sierra
Dave Thomas

martinfowler.com logo mingle logo thoughtworks logo

© Copyright Martin Fowler, all rights reserved