Announcing the Git Workbook

I'm very pleasedtitle_page to announce the immediate availability of my new book Git Workbook, costing $20 from LeanPub. This is a book that you "do" rather than "read"; it's a series of chapters (30 ish so far) each covering one specific git skill.

Each chapter includes an explanation of the skill in question, followed by a hands-on exercise so that you can work through the skill yourself, and ends with a tickbox so you can keep track of how far through you are. It has quizzes, diagrams, mildly amusing stories, and as many other examples as I could think of that could help anyone to take in this technical topic and understand how to apply the techniques covered. Continue reading

Drawing Flow Diagrams with GraphViz

Recently I've been drawing a few different kinds of diagrams for a book I was writing, and been using graphviz to create them. Since I struggled a bit to get them going the way that I wanted them to, I am sharing them here (as much for my future self as anyone else visiting, but if they help you too then that's excellent).
Continue reading

A Book Burndown Chart

You might have noticed that things have been a bit quiet around here lately ... that's because I'm writing a book and doing a lot of editing at the moment. I love doing both of these as part of my work, but it turns out that when you're already writing/editing 3k words a day, it's hard to find more words to blog with (well, and I usually blog whatever code I'm writing which isn't a whole lot right now). I did however want to share with you the news that I'm working on a book (about PHP, for the lovely Sitepoint).

I'm completely new to book-writing and it felt like a mountain to climb. I have five chapters of around 8 thousand words each to write for the book (I have co-authors, who are also lovely), and the general advice I got was to just take it all one step at a time. This sounds a lot like the way I teach project management and time management to developers, so I used those same skills and created a burndown chart (I blogged about creating these before):

As you can see, there have been some great days, and some quieter days. The flat lines are mostly weekends or days where I was out of the office with other clients. Although I feel slightly overwhelmed (and this doesn't show the edits that come back after I submit each chapter), the graph is at least going in the right direction!

Book Review: Confessions of a Public Speaker

I received "Confessions of a Public Speaker" as a gift this winter (you know who you are, thankyou!), and it's been on my bookshelf waiting for me to have a reason to sit still long enough to read it. A series of long flights presented exactly that opportunity so I brought the book along to read, which was perfect as I was travelling to give a tutorial at the PHP Community Conference in Nashville.

My first observation was that although I thought this would be a pretty serious book, I was laughing! Not just smiling, but actually giggling on a fairly small plane of people doing the short hop over to Amsterdam. I saw a few people trying to read the cover to figure out what this great comedic tome would be :)

Continue reading

Book Review: The Passionate Programmer

I've been putting off writing this post, because I wasn't sure I could do the book justice, but I read and really enjoyed "The Passionate Programmer" last summer, and I've been dipping into it again and again ever since. The book was actually a recommendation from Travis Swicegood, after he saw me give my talk Open Source Your Career. It seems like it's not a well-known title so I thought I'd share my thoughts on the book and what I got from it.
Continue reading

Book Review: The Art of Community

This review has been in my drafts folder for 9 months, because I didn't feel I was doing the book justice. It seems like I never will, so here it is - as it was written then, but hopefully still useful and relevant to someone

I bought this book last year when I was still working at Ibuildings, and my role changed a lot to include events and community representation. Before that I was doing entirely PHP development and it was around this time that I noticed myself saying "has everyone forgotten I'm actually a developer?" a lot! So I quickly decided that I needed a copy of The Art of Community, a book by Jono Bacon published by O'Reilly. Actually, I should thank O'Reilly at this point for publishing the book and even more so for sending Josette and her book stand to conferences - I was able to buy the book and it came with a pep talk :)
Continue reading

Book Review: Making it Big in Software

Recently the kind folks at Prentice Hall contacted me to ask if I'd like to read a new publication of theirs , "Making it Big in Software". It sounded like something I'd be interested in and the copy duly arrived. My first impressions were of a wordy book, very much aimed at large organisations, or those working in academia. And although I'm 20-something myself, the advice in the first sections of the book is aimed more at students or recent graduates than, I felt , at me.

Moving on into the book I found more that applied to me, including some great advice on communicating in different settings and with different types of people. I was also interested to find some thoughts on debugging as a skill to be used instead of, or before, launching a built-in debugger. This makes sense to me because my first programming languages weren't the kind that have IDEs or other advanced tools.

The chapter on time management starts with the words "if you only read one chapter in this book, this should probably be the one" - and I must say I agree. I consider myself to be organised but there were some great strategies outlined in that particular chapter. Also running through the book like a thread is a series of interviews with software luminaries, each of whom were asked mostly the same questions, including how they manage their time and work-life balance. So there were some real-life stories in there too - I was encouraged that almost all of the people interviewed said they didn't think they found balance, because personally I know I haven't.

The interviews provided a great structure on which to hang a book full of good advice. One chapter advises how to identify and avoid "career killers" - those dead-end projects that will hold up your progression. Later on the focus moves away from the big organisation that the author and interviewees have most experience of, to look at starting software companies and the skills and attitude needed for this. Certainly once I got past the first third of the book I was much more drawn in; maybe because that dealt with an early stage of career that I felt I had already mudddled through?

Overall this is quite a dense book to read over a short period of time, but an excellent one to keep around and dip into or read another chapter every few weeks perhaps. Certainly its one that will be going on my bookshelf for me to look back at and refresh my thoughts on various topics covered for some time to come.

Book Review: PHP Team Development

I was recently contacted by Packt Publishing asking if I would review a copy of one of their new titles - PHP Team Development. I happily agreed and the book promptly arrived in the post (just in time for me to take it on holiday and read it by the pool!).

Overall I was quite disappointed by the book - although at least half of that was due to the poor written English contained there. Some sentences didn't even make sense, I'm not accustomed to reading anything other than clear English ("Vendor Locking" confused me for a while), and the language in this publication made reading the whole thing rather slow going. That said, for a brand new team of PHP developers with no previous experience of working in a team, there were some useful points in this book. Its clear that the author's experience lies in a large organisation building a single product, whereas I'd say the level of this book would apply well to web development shops with a handful of developers probably working on a series of different projects for clients.

There are some solid concepts introduced - few are explained in detail though and after a couple of chapters I think a less experienced developer would have had a list of terms to look up rather than new ideas to try! Still, there are good explanations of source control, MVC, templating, and OOP elsewhere on the web and in other books so it would be possible for someone to follow up on this. I was particularly alarmed at the concept where one team writes the model, another writes the view and yet another writes the controller to tie them all together. Perhaps in big enough development teams, with a lot of up-front specifications written, this can work. My on-the-ground experience though would lead me to group tasks together by feature rather than separate them by bits of implementation - I currently work in an organisation that uses agile projects though where features are the whole point of the exercise, so perhaps that influences me.

On the whole, a perfectly nice book for beginners (available from the publishers or from Amazon)
but if you are already working in a team then you probably won't get a lot from this experience.