Foundation Version Control for Web Developers.20 May 2012
Since my new site is finally up, it means I should finally write a post regarding the book written by myself, and Ian Oxley. Although it's been out for a number of months now, I still sometimes miss the whole writing experience, although it's one of the toughest things I've done to date. The start of the book went rather smoothly, but then I started falling behind, and the timescales started getting tighter, and tighter. I can safely say that some of these timescale issues were down to my poor management, because I always just thought "It can't be THAT hard.", well I can safely say, it is.
That's not to say the project wasn't rewarding, seeing your name in an ACTUAL BOOK is one of the best feelings ever, plus I was able to be the first member of family to have that honor, which is a great feeling. The main issues I had generally came down to planning, because in most cases I well and truly underestimated the amount of time, and effort that goes into writing, and the research, my god the research! Working in the web, I'm used to the whole, you-get-a-bug-then-fix-it thing, but of course with a printed book, that luxury isn't there. Although the publisher does help with some of these issues (by putting your chapters through various copy and technical reviews), you really have to make sure everything (humanly possible) is correct in there, by checking, and double checking everything.
With the book, especially in the CVS chapter, I kept having to get information from sites that were created back with dial up was king, and having to confirm the facts from these sites, using others that looked the same wasn't so easy. For the newer systems (Git, SVN and Mercurial), this process was a still a pain in the arse, because with Version Control, there are a lot of ways to perform certain actions, but some are a lot better than others. This meant doing A LOT of testing. I had a spare Macbook (Courtesy of Phil Sherry) and various Virtual Machine's to ensure I could test everything multiple times (and under multiple environments), to ensure it worked as intended.
This process, combined with the researched needed = lots of work. All of this effort went into all the practical chapters of the book that I wrote, so you can imagine how much I shat my pants when I realised the scale this went to, especially working with Mac, Windows and Ubuntu. Although there was a lot of work involved, I still like to think I'd have been a lot more comfortable if I'd planned more extensively at the start, and managed my time better.
With that in mind, being able to take breaks is a really hard thing to do while writing, at least it was for me anyway. Towards the end of the process, if I didn't work every possible moment, I wouldn't have finished, simple. When you're working 5 days a week and writing 7, it can really take it out of you, and I'm sure many of you freelancers out there will always have this issue. I had to allocate myself at least a half day off to recharge, otherwise the 7am to 2-3am days would end up devouring me and I'd be a zombie.
I've already mentioned the research that went into the book, which took up a lot of the time, and I'm sad to say that some of the research can have a somewhat negative effect on you while you're doing it. While writing the book, I learned and understood every command needed by someone getting started with Version Control, but as soon as I'd learned a command, it's place was filled by another, and the previous one was forgotten. Now I'm having to use my own book as a reference for some commands, which isn't really a bad thing, it proves it works.
All in all, I'd love to work on another book, the glory you get out of it hugely outweighs the work that goes into it. This time though, I'd be sure as hell to plan the fuck out of everything, and if anything, have more than enough material to write about, and know the time will allow for the schedule. Plus, I'd rather write about something I'd need to research less, so I can spend more time being creative with the content I knew, not making sure said content was actually correct.
If you haven't checked out the book yet (you should, it's awesome AND has a snake on the cover) then you can head over to Amazon and check it out there.