I wrote a book

A pile of books titled

Back in 2008 when I started working as a developer/student, I had the opportunity to work with a publishing company called Eyrolles. I worked on a couple of french technical books about Flex 3, Symfony, even Windows 7! I always liked those missions because I was learning things, contributing to actual, physical books and getting paid for it. It also usually was an opportunity to talk with the authors about things that could be enhanced from a technical point of view. Sometimes it went so well that I actually got promoted to contributor.

One time it got so bad that I actually fought over the phone with the author that didn’t really care about my suggestions. With all these few experiences, I started to realize (wrongly, but I’ll get back to that later) that writing a book did not seem that hard. Since then, writing my own book has always been in the back of my head, I submitted a few proposals to the contact I had at Eyrolles but it never happened.

Continuous Integration

I’ve always liked “automating stuff”. Continuous Integration was the logical next step. I remember playing with Jenkins on a pretty complex Symfony 2 application when I was a PHP developer at KNPLabs in the early 2010s and even before that when I got curious about tools like Fabien Potencier’s Sismo or Defunkt’s cijoe. It really became serious when I started doing Objective-C programing though, which got me to work with the awesome guys at cisimple (since shutdown) on a simple OS X notifier application.

It became even more serious when I started working for a company in Montreal that develops iOS applications, among other things. There wasn’t anything in place for the iOS projects while the Java developers already had a nice Jenkins setup. I have the chance to work with pretty great bosses who trusted me enough to let me play. We now have a nice continuous integration installation using both Jenkins and Bamboo (though I’m not really fond of the later) as well as our own in-house app-store. I gave a presentation (in French) about all this at Cocoaheads Montreal almost a year ago. Basically what I’m trying to say is that I really love Continuous Integration and I love talking about it.

Entering Apress

I think it all started in late december of 2013 when I saw a tweet from Louise Corrigan, an editor working for Apress:

I need to find an expert on #iOS #continousintegration - I want to make a brilliant book for @Apress. Contact:louisecorrigan@apress.com.

I had to dig a little bit into Twitter to find this tweet. Now that I read it, I realize Apress was actually looking for an author and I’m not sure exactly how I could have understood it otherwise but I did: when I contacted Apress, I asked Louise if they were looking for technical reviewers, ending the email with “Please let me know if I can help, because I’d love to ☺”. Long story short, after a few days she answered me that she was actually looking for someone to write the book. Now that the book is out, I figured it would be interesting to share my experience.

2013 was a pretty cool year and while I didn’t think about precise new year’s resolutions I really wanted to find something to get out of my confort zone. Writing a 200+ pages book in english about continuous integration on iOS was the perfect opportunity for me to do just that.

It took some time before I actually got started: I had to write an actual proposal with a list of chapters so they had an understanding of the approach I planned to go with, this proposal had to be approved, papers had to be signed… At some point I also changed editors to work with Michelle Lowman.

Choosing the proper tools

I really liked Mattt’s article Colophon where he talks about the tools he used to write his NSHipster book and how he thought he was going to use markdown and fancy tools like pandoc but ended up using Pages.

It’s kind of funny now that I think about it that even after reading his article, I had this very clear idea of the tools I was going to use. My experience of course was not the same as Matt’s since there was an army of awesome people working with me to get this book published but yet I also ran into that “throwing the towel” phase. In ended up writing this book using only Microsoft Word.

Apress is a big company and as you can see on their website, this wasn’t their first gig. There is a very precise workflow in place. When I started writing my book, they created me an account on their own Sharepoint. I didn’t really know anything about this tool, I merely heard my colleague talk about it when he had to migrate people from Sharepoint to Confluence. I wasn’t too scared either because I’m happy to say I grew up enough not to be this Microsoft hater that will talk trash about any of their product just because. Yet, for some reason I decided I would go with Markdown first and would paste or export the content of my article so all I would have to do would be setting a few styles here and there and deliver the chapter on Sharepoint to my editor.

“Nope.”  Matt Thompson in Colophon

I wasn’t all “I’m better than your tool” about this, simply I had a goal of writing around 20 pages long chapters and didn’t want to ruin everything with filling content. I wanted to write my chapters in a distraction-free environment using Writer Pro. I was a fan of the original version and it would have given me a reason to spend the $20 for the app (which I don’t consider being expensive for an app, don’t get me wrong). That didn’t turned out as I thought it would. The more I was trying to write without thinking about my page count, the more I found myself pasting the whole content into a blank Word document to make sure I was actually making progress. That turned up to be very unproductive so I decided to write the whole thing using Word.

Word is not such a bad writing tool, it does the job and the integration with Sharepoint is actually super helpful. I ran into a few issues of course, like that time when I edited a chapter after a long day of work at the office and forgot to close Word which made it impossible for me to edit it at home. There was also a couple of times when it wouldn’t let me edit a chapter because it was checked out to somebody else but this somebody else was actually me. I quickly learned to work arround those little bugs and in the end, the tool served me pretty well during these 3 months where pretty much all my evenings and a significant part of my week-ends spent writing this book.

Keeping up with the deadlines

I’ve never really been good at dealing with deadlines. When I started working with Apress, I had to sign a contract. There was some totally fair deadline I had to keep up with but for some reason I was super worried everytime I was a day or two late with a chapter’s delivery. Now that I’m writing about my experience and knowing that the whole actual writing process took something around 4 months, I feel a little stupid.

The impostor syndrome

I’ve always loved sharing with people the things I’ve learned in the past. Considering all the people I’ve learned from, it only seems fair to write a blog post or give a presentation every once in a while. When I started writing this book and delivered the first chapter, I started to feel a little “insecure”. I’m not the expert when it comes to continuous integration, so how dare I write a book about this? Turns out there is a fancy term for that called the “impostor syndrome”. There even is a wikipedia page:

The impostor syndrome (also spelled imposter syndrome), sometimes called impostor phenomenon or fraud syndrome, is a psychological phenomenon in which people are unable to internalize their accomplishments.

I’m not naive and I know that critisism will always be there, but it took me a while to figure out that most of people were not waiting for my book to be published so they could crucify me. This is the part where I actually get to thank the people I had the chance to work with and the people around me. There are of course a lot of people more talented than me when it comes to Continuous Integration for iOS but they are not writing a book, I am. It’s not really about who is the best for writing this book. To me, it’s about who is willing to take a few months and share something that might be useful to someone.

Conclusion

Working on this project was really about getting out of my confort zone and it did just that. It was super intense to be working a few hours everyday and during the week-ends for three to four months. Naturally when the project was over, it felt super weird to be “free”. I actually spent the following weeks doing absolutely nothing. I needed that. I deserved that. Now it’s been three months since the book is out. I’ve sent digital copies to some people so I could get some feedback (already got one here and another one here) and I’ll be giving away printed copies in November at Cocoaheads Montréal. This was a great confidence boost, especially when I received twenty printed copies at home and got to actually hold something I did, thinking “f*ck yeah, I wrote a book”.