John Arundel on Puppet
John Arundel is the author of the recently published Puppet Cookbook, from Packt Publishing, which helps you build reliable, scalable, secure, high-performance systems to fully utilize the power of cloud computing.
Packt: Your book is published now. How does it feel to be a published author?
John: Pretty great! At one time I wrote technical manuals for Psion, the palmtop computer manufacturer. Thanks to a conservative house style, the kind of books I wrote said things like: “To access file operations, select the File menu”. Not exactly a page-turner. I’m very happy now to be able to publish a book which is written more or less exactly the way I want it, on a subject I find very interesting, and with a lot of jokes.
Packt: What benefits did writing a book bring to your specialist area?
John: The funny thing is that despite being a Puppet user almost since the very beginning, I really don’t use many of its features. In fact, most of them have been added since I started using Puppet, and I don’t have a lot of time to experiment with new stuff, so writing the book was a great opportunity to delve into all the Puppet features I didn’t know about. I hope readers will also find out stuff they didn’t know and that it will be useful. If just one person is helped and inspired by this book... then I’m not giving refunds to the others.
It’s done a lot to raise the profile of my consulting business; I was introduced to one potential client as “This is John. He literally wrote the book on Puppet”. I had to modestly point out that in fact, other, probably better books are available.
Packt: Our authors usually have full-time jobs whilst writing for us. Was this the case for you and how did you approach managing your time?
John: As any freelancer knows, the job is more than full-time. I practically had to invent new physics to figure out a way of using my negative free time to write a book.
I blocked out one day a week devoted to writing, and set myself a goal of a number of hours to achieve each month, which I mostly met. Because the book is so code-focused, I not only had to write about each technique I was describing, but also develop complete, working, reusable software in Puppet to implement it, and then test this on a virtual machine.
Quite frequently I’d discover later that I’d been doing something wrong, or a behaviour in Puppet had changed, and I’d have to go back and fix all the code. I’m sure there are still quite a few bugs, which I am going to pretend I’ve deliberately inserted to help the reader learn to debug and fix Puppet code; something they will, after all, spend a great deal of time doing.
In all, what with researching, writing, coding, testing, fixing, editing, and complaining on Twitter, I spent about 200 hours on the book over 8 months.
Packt: Whilst writing your book, did you find that it overshadowed personal life in any way? How did you deal with this?
John: Not really. It could have, if I’d got into serious deadline trouble. Fortunately, I managed to keep up a continuous, manageable level of mild deadline trouble. I don’t think my friends or family noticed, except occasionally I’d say things at dinner like, “Could you pass the Puppet? I mean pepper.”
Packt: Do you have any advice for other authors who may be interested in writing for Packt, but are still unsure?
John: Go for it! But make sure you have two hundred unallocated hours in your schedule. You’d be amazed how much time you can save by not watching TV, going out, putting on clothes, etc.
Really, my advice would be to plan the book carefully - agreeing the outline in advance with your editor helps a lot. Henry Ford said that there are no big problems, just lots of little problems. Breaking down a book into chapters and sections and subsections and tackling them one by one makes it seem less daunting. And managing your time well helps avoid last-minute-essay syndrome.
Packt: Do you have any tips for other authors, or tricks that you learnt whilst writing, that you'd like to share?
John: One good tip is, once you’ve written a chapter, let it lie fallow for a few weeks and then come back to it with a fresh eye. What you thought were immaculately-crafted sentences turn out to be pompous waffle. And what seemed clear and explicit now seems larded with techno-babble.
I read somewhere that P.G. Wodehouse would stick each page of manuscript to the wall as he wrote it, somewhere around the skirting board level, and as he obsessively reworked and rewrote and polished the text he would gradually move it higher and higher up the wall until he judged it good enough - somewhere near the ceiling. Well, I’m not saying I’m P.G. Wodehouse — I’ll leave that for others to say — but it’s a useful way to think about the writing process. Rewrite, rewrite, rewrite! “What is written without effort,” Dr Johnson pointed out, “is in general read without pleasure.”
Packt: How did you find the overall experience of writing your book for Packt?
John: It ranged from great fun to grinding tedium and crushing despair. It’s a bit like sculpting a block of marble - at first it’s all hard work and it seems like you’re getting nowhere, and standing in a pile of rubble. Then as you go on, things start to take shape and you’re motivated to go on because you see your imagined shape emerging from the stone. In the final stages it’s very exciting because you’re just removing the last few crumbs which are clinging to the finished sculpture.
What really made it a terrific experience was the help and support I got from people in the Puppet community, on Twitter and IRC, at meet-ups and user groups, and by e-mail. People kept asking about the book and sounding really excited about it, which was a great motivator. Many Puppet users who are much more expert than me gave up their free time to help me fix my code or my text. Many of the ideas and techniques in the book came from blog posts or code that other people have generously made public, and I’ve made a point of citing the sources for things wherever I can, and giving a link for the reader to go and explore the topic in more detail.
Since the book’s been published, I’ve been really touched that so many people have said kind things about it. I never imagined that it would be so widely read or attract so much favourable comment, and it makes me glad now that I put the effort into making it the very best thing I could do.
Packt: During the writing process, did you come across any issues/ difficulties that affected your writing and how did you overcome these?
John: One of the main difficulties is that Puppet is a moving target. We decided early on in the process to pick 2.7 as our reference version, since that was shortly to be released and would still be current when the book was published. Including lots of caveats such as, “but if you’re using Puppet 2.6 it’s this syntax, and with 0.25.4 you can’t use this feature...” would have cluttered up the book and made it unmanageable. Similarly, I had to choose one operating system — Ubuntu. Elaborating all the tiny changes you need for Debian, CentOS, Red Hat Linux, and so on would have made the book a massive doorstop. It’s my conviction that people who buy this book are smart enough to figure out those differences for themselves.
However, I’m sure that there are still several things in the book which don’t work as they should with the current version of Puppet, and as Puppet develops, it will break more and more of the examples - but if I’m really good all year, perhaps I’ll be allowed a second edition.
Packt: Was there anything interesting that happened during the writing of the book?
John: Only in the sense that the Chinese use, when they curse you to live in interesting times. Quite often I wrote myself to a standstill and just stared blankly at the laptop, hoping it would explain something complicated for me, or think up a useful and instructive example when I couldn’t. On one occasion I decided that the best thing to do with a certain long, difficult, and laboriously-constructed section was to delete it altogether, improving the book immeasurably as a result. The deleted scenes will be available on a forthcoming DVD, together with a ‘making of’ documentary which consists of me frowning at a screen for 200 hours and intermittently making tea.
Packt: How did Packt’s Acquisition Editors help you - what kind of things did they help you with and how did they support you throughout the writing process?
John: The biggest help at the start was giving me structure by insisting on an outline, and then setting individual chapter deadlines to plan the writing time - then gently but persistently enforcing them.
What was also very useful was to see sample chapters of other books, to get an idea of where I was supposed to be going, and getting very detailed feedback on the early chapters about exactly how to lay things out and how to make everything consistent.
Beyond that, I was pleased and surprised by how little the editors interfered with what I was doing. By and large I was allowed to write my own book the way I wanted. No one suggested I write sentences like “To access file operations, select the File menu.” When I asked for help, I got it, and when I didn’t, I was left in peace and trusted to do the right thing. That’s a great way to write.
Packt: What projects, if any, are you working on at the moment?
John: Several people have asked what the next book’s going to be. I have said, only half-jokingly, that I might do one on Chef. I have a kind of a semi-formed idea about a book of system administration patterns and practices, based on my several decades worth of experience (read: mistakes). But just now I’m enjoying a break from writing, and I’m spending my negative free time reading other people’s books, playing Beethoven on my toy piano like Schroeder out of Peanuts, and learning to bake the perfect Cornish pasty. Ah! Excuse me, that was the oven timer.