Ticket Giveaway: DC4D:2

Did you know that there’s a second edition of the DayCamp 4 Developers event coming up in March? The daycamps are a chance for developers to invest a day in their careers, wherever they are, focussing on the soft skills we need to grow beyond coding monkeys and into accomplished and upwardly-mobile professionals. It’s a virtual conference, so you can join us from anywhere in the world!

In the new edition of DC4D, I’m giving a session entitled “Could You Telecommute?”. I have worked from home for three years and if there’s one thing I’ve learned along the way, it’s that it isn’t always easy! Telecommuting doesn’t suit everyone so if you think you’d like to work this way one day, then I hope to give some pointers for how to tell if it will work out, or how to make it work for you. The event is on March 5th but there are also video-only tickets for those people who would rather watch their sessions back at their own pace.

I have a ticket to give away, so if you want to be my guest, leave me a comment and tell me why I should choose you! NB the tickets are only $35 so this isn’t quite as impressive as it might sound, sorry!

I’ll pick winners on 26th February, with a week to go to the event.

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

Preparing for ZCE 5.3

Recently I have been getting to grips with the ZCE since it was updated to take account of PHP 5.3. In the last few weeks I’ve both passed the certificate myself and also taught Zend’s certification training course as a classroom course at NTI Leeds. I thought I’d share my top tips for preparing for taking the ZCE – getting to the standard, last-minute preparations, and also some tips for surviving the day itself (disclaimer: everyone sitting the ZCE signs a declaration not to disclose the contents of the exam, so I can’t actually tell you the questions, sorry!)

Continue reading

360 Degree Feedback

I mentioned the 360 Degree Feedback Technique during my keynote at PHPNW10 and had many comments and questions about it since, so I thought I’d post about it in more detail

Introduction to 360 Degree Feedback

The basic premise of 360 degree feedback is that rather than being given performance feedback at work solely by your superior, the feedback comes from people all around you. This would include your manager and your peers, but could also include your direct reports, and people that you work closely with from other areas of the business. For example a developer might receive feedback from the rest of the development team, the design lead, and the project manager.

Continue reading

Business Strategies: Office Day

I’m now self-employed, which means that I have to do my own administration, invoicing, accounts, correspondence, sales, marketing and maintenance (not to mention running the household, a sports team, and whatever else I’ve volunteered to get involved with lately). I am pretty organised as a person, which is a real gift now I have all this going on! I have some coping strategies and I thought I’d share one that has helped hugely – the office day.

The idea of the office day is that I block out a whole day every month or so where I’m not going anywhere, not on site with clients, not speaking, not delivering anything, just in the office, doing whatever needs doing. I tend to put these days in either day before or after runs of days away – either with clients or at events, just to give me time to catch my breath. Working this way means that when I’m working on something, I can just work on it, and know that there is time set aside for all the little things. Also the days where I’m just back from somewhere and the inbox is so full, it is ready to bite, then it gives time to get things straightened out and right, without feeling stressed because there is other work to do. Although it does mean that I’m not doing billable work that day, I find that splitting the work up like this works really well for me, and I thought I’d share – perhaps this suggestion will help someone else, and I’m always interested to hear how others fit in all the business bits and pieces around their “real” work.

Three Months In: The (Ad)Venture Continues

It’s three months since I gave up the day job and so many people have asked me how it’s going, that I thought I’d give a quick round up!

I am a statistics nut so it will surprise nobody that I track my time religiously (using harvest, which I’ll post about some day soon). From this I can tell you that I spend about 40% of my time working for other people, and the rest doing things like writing, preparing talks, accounts, meetings, or whatever. I’ve also taken 14 days off, which has been absolutely fabulous after a decidedly work-heavy first half of 2010. The biggest change is that I’ve only worked one weekend day. One.

Continue reading

Giving Up The Day Job

The In-A-Nutshell Version I have resigned from Ibuildings. I will complete my notice period here in a couple of weeks and then move on to a wide and interesting variety of well-paying freelance assignments covering development, consultancy, writing and speaking. Hopefully.

The slightly longer version really is this. Two and a half years ago, I left a job at a type of company I usually describe as a yet-another-website company, where literally every new project was another CMS website. Which was fun for about the first 4 months and got old pretty quickly. Two and a half years at Ibuildings and I haven’t done yet-another-anything, the projects have been technical, challenging and my colleagues are the best qualified set of people I’ll probably ever work with.

Along the way I’ve also done a wide variety of other things, most of which are achievements beyond my wildest dreams, some within the scope of this job and some on my own time but of course influenced by all that I’ve learned. I’ve delivered training, led projects, been published, become a regular conference speaker and travelled internationally doing so, collaborated on an open source project, edited a developer portal and hosted a major international PHP conference. I’ve even learned to say those things about myself in public without feeling too much of a fraud!

At this point, there are so many things I want to be doing, writing, speaking and so on, as well as some interesting development projects, that holding down my 9-5 as well has become untenable; that’s the main motivation for this change. I don’t intend to take another full time job, although I don’t have a lot of paying work lined up so please bear in mind that I am looking for some ;)

Things I would like to be doing:

  • Working with development teams on skills, tools and process (think teach a man to fish, rather than sell him a fish)
  • API development
  • Technical writing
  • Meeting cool and interesting people and embarking on cool and interesting projects together

Advice on achieving any or all of the above is appreciated – if any of you can also think of me when discussing business, write me a linked in recommendation, or retweet my announcement of my news, that would be fabulous!!

If you’re still reading, then I’ll share a little something with you. I decided that with a career move, I needed a little rebrand, so here is my new angel avatar. I hope you like her :)

Wish me luck in my new (ad)venture, I’ll be keeping everyone up to date as always!

Burndown Charts

Disclaimer: I am not an expert on this topic and have never studied it formally. This is purely an explanation of how I’ve seen these charts used within Ibuildings and included in my talk Passing the Joel Test in the PHP World which triggered lots of questions and tweeting.

Burndown charts are a way of tracking how much work was estimated to be remaining at a given point in time, and we track this over time to give us some idea of the rate of change. We start with some estimates, then we track how much time is left at regular intervals, I do this daily, because its a sensible unit but there are no rules. Its much easier to show this rather than tell it so here is an example – we’re making a dolls house.


(yes, this is a photo of me. This was my fourth birthday and the dolls house was a home-made gift from my parents – I still have it)

Task List and Estimates

We need some numbers to start with, and I don’t mean looking at a task and going “a week and a half … ish?”! Tasks need to be in small enough increments that we can safely estimate them. By “safely” I mean realistically and hopefully accurately enough that you won’t find your project manager following you to your car at night with a pitchfork in his hand. For our dolls house, the table looks something like this:

Task Estimate
Assemble pre-built frame 2
Paint exterior 2
Paint windowframes 1
Decorate rooms 27
Fit carpets 5
Add furniture 1

As you can see, we’ve got a large element listed in the middle of the table – 27 hours is too big to be a single estimate, so we’ll break it down further.

Task Estimate
Assemble pre-built frame 2
Paint exterior 2
Paint windowframes 1
Decorate bedrooms 8
Decorate kitchen 7
Decorate bathroom 5
Decorate reception rooms 7
Fit carpets 5
Add furniture 1

Charting Estimate Remaining Over Time

The aim of this is to chart how the estimated outstanding work changes over time. So we start with the total estimates in place – I’ve added a week’s worth of days, just because its easy to fit onto the page, but your chart might have dates rather than days and go on for longer. Each day copies the number of hours of the previous day as its initial value – we’ll edit them when they change.

On Monday, all the work is still to be done, so we start with a chart that looks like this:

Task Estimate Mon Tue Wed Thu Fri
Assemble pre-built frame 2 2 2 2 2 2
Paint exterior 2 2 2 2 2 2
Paint windowframes 1 1 1 1 1 1
Decorate bedrooms 8 8 8 8 8 8
Decorate kitchen 7 7 7 7 7 7
Decorate bathroom 5 5 5 5 5 5
Decorate reception rooms 7 7 7 7 7 7
Fit carpets 5 5 5 5 5 5
Add furniture 1 1 1 1 1 1

To make the chart is as simple as adding a “total” field to each of the day columns and turning that into a bar chart:

Let’s say on Monday we get the first two tasks done – we set the “Monday” column for these tasks to zero because there is nothing outstanding. Now our table and chart look like this:

Task Estimate Mon Tue Wed Thu Fri
Assemble pre-built frame 2 0 0 0 0 0
Paint exterior 2 0 0 0 0 0
Paint windowframes 1 1 1 1 1 1
Decorate bedrooms 8 8 8 8 8 8
Decorate kitchen 7 7 7 7 7 7
Decorate bathroom 5 5 5 5 5 5
Decorate reception rooms 7 7 7 7 7 7
Fit carpets 5 5 5 5 5 5
Add furniture 1 1 1 1 1 1

So each time some work is done which causes the estimated remaining work to be reduced, we update the figures in the table.

During the Main Phase

Imagine we’re partway through and its Thursday, let’s check in on our dolls house project:

Task Estimate Mon Tue Wed Thu Fri
Assemble pre-built frame 2 0 0 0 0 0
Paint exterior 2 0 0 0 0 0
Paint windowframes 1 1 1 1 1 1
Decorate bedrooms 8 8 8 6 1 1
Decorate kitchen 7 7 7 7 7 7
Decorate bathroom 5 5 5 5 2 2
Decorate reception rooms 7 7 3 3 3 3
Fit carpets 5 5 5 5 5 5
Add furniture 1 1 1 1 1 1

At this point, its pretty obvious that the project isn’t going well. The curve on the chart isn’t steep enough to be able to reach zero by Friday and without having to interrogate developers (who of course are always 90% finished), we can see that overall, things aren’t great. Project managers may know that there is one blocker which is causing the problem but if you didn’t know … then you do now :)

A closer look at the numbers against the tasks show that we started the reception rooms and the bathroom but neither are finished, the bedroom we’ve worked on for the last couple of days and its almost there … you get the picture.

The Aim of the Game

The ideal burndown chart tends towards zero at the point at which the project needs to be finished … but working this way gives a nice graphical overview of whether thing are heading in that direction or not. Flat lines are generally the sign of something bad, and progress is really visible even when its spread across many tasks or many developers. The chart could have a column for who owns each task, and for extra points add an “actual” column so you can compare how the team performs against its estimates (this is “project velocity”).

This post was really only intended to show things as I see and use them – if this helps you then great. If you want the “official” version then I can only suggest you get a book on scrum and find out how to do it from someone much more qualified than me :) If you’re using this or something similar, then I’d love to hear how it works out for you and what you do differently – leave comments and tell me!

Announcement: Editor-in-Chief of Ibuildings Techportal

A few weeks ago I got a call from my employers, Ibuildings, asking me how I felt about changing my role a bit and taking on some of the functions of our PCE (PHP Centre of Expertise). This area of the company does some super-cool stuff and so I said I’d be interested. Fast forward a bit and I’m on a call with Ivo Jansch (our CTO, who also oversees PCE) talking about what kind of things I could be involved in. I cannot describe the surprise I felt when he asked if I would take on the role of Editor-in-Chief at our developer portal site, techPortal … and of course I jumped at the chance.

I’ll be picking up a few other community-facing functions for Ibuildings but techPortal is the headline news, I’m super-excited to be entrusted with this project as our existing Editor-in-Chief, Cal Evans moves on from Ibuildings. Now the announcement has been made I guess its real … wish me luck :)