If you Google “are books still relevant?”, you will likely stumble upon a number of articles making the argument that although the wonders of the information age have added numerous other options for people with things to say, there are still compelling reasons for physical books to exist. I’ll buy that, although I’m curious about this conversation from a couple of slightly narrower perspectives, specifically (1) books focussing on software and (2) the authors.
Perspective 1: Why do we write “hardware” books for software subjects?
For any book that puts the understanding and use of source code at the heart of it’s objectives, wouldn’t targeting online delivery make the information that much easier to apply? Be it immediately available source code snippets, links to example applications or online tutorials embedded into the text, I would imagine writing for online delivery would enable much tighter integration, immediate feedback and a wider range of available mechanisms for communicating to the user.
At this point, these texts would start to look and feel more like computer-assisted training (see http://en.wikipedia.org/wiki/E-learning) and require an augmented set of skills for the author/authoring team, but there are certainly companies out there working successfully in this space already (see http://industriallogic.com/elearning/).
Perspective 2: Does YAGNI and BDUF play into writing print books?
Although there are publishing houses that are becoming increasingly lean (see http://pragprog.com/magazines/2009-07/pragmatic-publishing), I suspect a value chain analysis of publishing processes would reveal massive clumps of waste caused by overproduction, waiting, extra processing, transport and defects. Furthermore, the defining characteristic of a printed book in relation to it’s electronic cousins (i.e., it’s permanency) necessarily places more pressure on getting it right the first time. The cost of a defect late in this process is astronomical (sound familiar?) and is only partially mitigated by several rounds of editing and proof-reading. To what degree do these processes add to the cycle time of publishing? And how important is it for material in such a dynamic domain like software to be released immediately?
Authors – why do they do it?
Obviously it’s not for the money. Ask any author who writes technology books why they do it and it’s unlikely you’ll get a “for a obscene profits” response.
For many I suspect it’s the challenge. Even first time authors know that writing a book is more like an ascent to Everest than the local hill in terms of preparation, commitment and lack of sleep involved. But at the end, they have a very real, tangible result for their efforts. As a software developer, I sometimes mourn my inability to point to something and proudly claim “I made that!”, even if some of my achievements have public facing URLs. It’s not the same. Do technical authors who are similarly anchored to the virtual world also pine the satisfaction of a tactile deliverable? Anything in the ether can be updated, overwritten or deleted, but a published book (or a record of it) is eternal, subject to acts of god.
Presumably, most authors also have an itch to scratch in terms of the ideas they have which they want to get out to the world. Whether this itch is born out of hubris or responsibility is somewhat mute in this context.
Where does feedback come into this, I wonder? Surely the biggest challenge in writing a technical book where you have precious little control over the readership is anticipating all the questions the reader could ask and attempting to layout the material in a manner that answers those questions in a logical order. How many editors does a book need for the author to have enough confidence that it is appropriate to the target audience? Feedback received after a book goes to print can only be integrated with the next edition/printing, either in the form of erratum or changes to the content. What value would authors place on having that feedback “in cycle”?
Let me finish by saying I have a lot of colleagues (past and present… and possibly future) who are authors (see http://www.thoughtworks.com/books). I admire the heck out of each of these people who have committed the time taken to get a book to print. I am old enough to still get a real sense of completion when I finish the last page of a printed book and like to have reference manuals on paper rather than online for many purposes. Personally, I would love to be able to claim that I am a “published author”, as there is such a sense of gravitas attached to the term: it reeks of leather armchairs, spectacles and university lecture halls with blackboards.
However, would Kent Beck’s seminal TDD book (see http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530) be any less useful if it was optimised for online electronic delivery? Presumably with a GIT repo showing history of the examples over time, with the ability to step forward and backward through the changes within a browser-based IDE, with the ability to add even more languages to the example base over time?