Friday, April 23, 2010

On Writing a Book (Pt. 1)

This is the first part of an ongoing series about my experiences while writing the MySQL Admin Cookbook for Packt Publishing. All parts can be found under the mysql-admin-cookbook label.

In a few past posts I wrote about different aspects of my book writing project already. However those posts were not very contiguous, and I was asked a few times what my general experiences were and what caveats to look out for when taking on such a project for the first time. It might be of interest to some if I write down my experiences in a little more structured form.

This will be a series of several posts, because for one I do not think it would be feasible to have a single very long one, and also because this allows me to span writing it over a longer time. I will try to keep everything roughly chronological, but will deviate when I think it makes things clearer or better to understand.

Please be aware that I do not have extensive experience with multiple publishers, their processes and so on. This is solely about my personal experiences while writing a single book, with a single publisher, over a time of roughly 15 months. So please do not take anything for granted – should you go on that route and write something yourself, you might find yourself in completely different circumstances and witness the whole matter completely differently.

As for getting in contact with the publishing company, I already wrote down my experiences with that here:

However I will go into a little more "historical detail" for starters.

Chapter 1: Getting contacted by the publisher

I do not know how common this is, but in my case the idea for writing a book did not come from me. Instead on December 24th of 2008 I received an email from Kshipra Singh, Author Relationship Manager with Packt Publishing titled "Author MySQL book-Packt Publishing".

Not knowing that name, never having heard of the company and generally being in the progress of getting my GMail inbox cleaned up I almost wanted to delete this mail unread, assuming it was some sort of junk. However, as the subject seemed to have a least some connection to my interests and because I really did not have to do much (Christmas Eve, empty office, fresh coffee, no bugs to fix, …) I opened it anyway.

This is what I read:

Hi Daniel,

I am writing to you for Packt Publishing, the publishers of computer related books.

We are planning to publish a book on MySQL, titled, The MySQL Admin Cookbook. While trying to find some potential authors for this site I came across your blog and saw your interest in MySQL. I also saw your blog entries on various facets of MySQL. These give me an impression that you could be a potential author for this book. The book is planned to be a cookbook with an admin recipe which will help DBAs to successfully maintain and administrate a MySQL database. DBAs of all abilities will benefit from this book as they learn tasks from creating tables to managing views, from improving performance to securing the database, from using monitoring tools to using storage engines. The reader is expected to have existing knowledge of MySQL and will already have their MySQL installed and ready to go.

To give you an idea about the way things work at Packt:

  • The editorial team at Packt works with the authors through out the project.
  • We pay a royalty of 15% and an advance against the same
  • The marketing team at Packt ensures that the book is well promoted.
  • We donate a percentage of sales coming from the book to the Open Source project on which it is based and have donated more than 100,000 dollars to various projects since inception in 2004.

Does it sound interesting to author such a book?

I had to read this twice to understand that this was not some random spam, but an actual offer, based on what I had written on the blog. I have to admit, I was rather surprised and also a little flattered, being not really sure about what to do next.

Then it occurred to me that maybe someone had accidentally mistaken me for a full-time DBA. So I wrote back that I am actually a software developer with only a strong side-interest in database matters and asked whether they still wanted me to write something. In fact at that time I was under the impression that the cookbook format was some sort of a compilation of independent articles, contributed by a series of individual authors and that I was offered a chance to write a recipe or two.

Very quickly however it turned out what they had in mind would be a one-, maybe two-author book.

Over the course of the next days between Christmas and the end of year several mails went back and forth, mostly questions on my part about what this whole book writing business was all about, how much time would be needed and so on. I also forwarded the whole conversation so far to Udo Schwedt, a colleague and good friend of mine with his fair share of MySQL knowledge under his belt, too. Turned out that he was very much interested in the prospect of co-authoring, however we were both quite skeptical about the "about 1 hour per day for the next 6-8 months" estimate that was mentioned in one of the early mails from Packt. In the end we decided to go forward together and get some more details - at this point everything was still in its very early stages with no obligations whatsoever.

Back then the Packt website looked a little different and the pages on authoring we looked at have been changed quite a bit. Here is a link to the current version:

I have to say that this current page contains a lot more details than the old one – at least as far as memory serves... You should read it to get a a quick overview of the whole process. But beware: Turns out there is still a lot more to it than one might expect from this rather streamlined description :-)

On January 5th we received a mail from Sarah, the acquisition editor, which included more information in the form of attached Word and PDF files: Author guidelines, a description of the Cookbook series and a description of what the "MySQL Admin Cookbook" (the title being already set) was planned to be like:

Page Count: 300
Executive Summary
  • A cookbook focusing specifically on administrative tasks with MySQL.
  • A concise collection of admin recipes, which will have no direct competition from the lengthy reference guides currently in the MySQL market.
  • MySQL is, and will continue to be the world's most popular open source database.

As I'm sure everyone is aware, MySQL is a relational database management system. Administrators of MySQL will be tasked with things such as maintaining the database, tuning the server, managing users etc etc.
This cookbook will have all the MySQL recipes an administrator could dream of, spanning from creating tables to managing views, from improving performance to securing the database, from using monitoring tools to using storage engines. DBAs of all levels will be catered for with recipes of varying difficulty, allowing the reader to administer MySQL to their hearts' content.

Why a Cookbook?

There is a wealth of MySQL books on the market, but the majority of them are lengthy reference guides which cover anything and everything to do with MySQL. Our closest competitor - MySQL's Administrator's Bible - spends half of its time introducing the reader to MySQL. Our readers will already be up and running and will just want to know how to get things done as quickly and painlessly as possible. A cookbook is the best approach for this, as they can pick and choose which recipes are most applicable to them and won't have to faff around scouring the pages of a very, very, very long (and boring) reference guide.

Target Audience

DBAs who are tasked with maintaining the administration of MySQL.


A cookbook, with many an admin recipe.


The reader will have existing knowledge of MySQL and will already have their MySQL installed and ready to go. DBAs of varying abilities should benefit from this book.


So how will our book be different?

Quite simply, ours will not be as long, will not try to cover every single aspect of MySQL and will focus specifically on admin issues, whilst assuming that the reader has already installed MySQL and is raring to go and do something practical with it. The ranking of each of these books show that MySQL books sell incredibly well, despite there being so many comprehensive books on the subject.

Armed with this knowledge we decided to go on and started working out a draft of the book's outline – everything still without any bindings or obligations.

As for the outline: I think this will be the next issue in this series of posts...


Michael Hüttermann said...

very interesting, nice to see that you post your experience, finally. If you are interested in a byline article, plz let me know ;)

Mark Grennan said...

Thank you for writing this set of posts. I've thought at times about publishing but I have no idea about what it takes.