PHP Advent 2009

I’m very proud to be able to say “I’m a PHP Advent author” – I’ve been invited to take part in this year’s event and my article One Step at a Time is now live!

My post this year is aimed as a reminder to us all that we can all aspire to better things, and lots of “better” eventually adds up to “pretty damn good”! If you read the post and have comments, add them here – and if you’ve chosen what one thing you’d like to change next, I’d be delighted to hear it. Whatever your next step, good luck :)

PHPWomen Calendar 2010

I’m halfway delighted and halfway cringing to announce that the phpwomen calendar is now on sale. This was a project organised by my friend and colleague Johanna Cherry, who saw an opportunity at php|tek 2009 to photograph the majority of the core PHPWomen members all in one place and turn it into a fundraising calendar.

If you’re expecting something “Calendar Girls” then you’ll be disappointed. We are all clothed in the pictures!

I won’t share photos from the calendar itself, if you want to see those you can buy your own, but perhaps to give you a hint I’ll share an outtake of myself:

I must confess that I was rather agitated when the photos were taken – as a woman in a male-dominated industry, the risk of being seen as just my physical appearance is ever-present, and I normally try hard at unremarkable, unrevealing clothes with very little makeup and a pair of jeans. Hanging out in the lobby at the hotel during a technical conference in that dress and those shoes was significantly more terrifying than delivering three sessions during my first trip to the US as a speaker (which, considering the problems I have with speaking nerves, is saying something). Even after I saw the photos I was kind of unhappy with the whole experience, although I loved the outtake linked above!

Fast forward 6 months and I had dinner with Derick Rethans, who took the photos in the calendar and arranged the printing, and he showed me the prototype he’d had printed. As I sat and turned the pages, I started to understand why this is so important. The women in these photos are some of the leading lights in the community – respected developers, some of them core developers, key community people, and speakers. Yet I saw them as the women they are … and suddenly remembered that actually, it’s acceptable to be both smart AND beautiful.

So – get your calendar and remember all year that beauties can also be geeks! 10% of every purchase goes to PHPWomen, and we will use those funds to support our women and grow more leading lights like these.

Cobweb Wrap

After around 15 months of ongoing work, I’ve finally finished my cobweb wrap which I initially started (original blog post here, complete with links to yarn sources) to make a good travel project. Well it was certainly that – small and lightweight, I took it on three transatlantic trips all told and am now so attached to it that I’m not sure when I’ll wear it!

For once I (loosely) followed a pattern to make something, which is pretty unusual for me. Another unusual feature of this project is that it is actually for me, I mostly make things for other people, not sure why! The pattern is the “Beaded Cobweb Wrap” from Erika Knight’s Essential Crochet, I have a few of her books and love them. This was a brilliant project, it was tiny to pack and with a 6mm hook it grew despite having rows as long as I am tall! Here’s a couple of pictures of the finished product (thanks Kevin for photographing me):

And to show off the beads:

Speaking at PHP Benelux 2010

I’m delighted to announce that I’m speaking at the inaugural PHP Benelux Conference, to be held on Saturday 30th January in Antwerp, Belgium. The talk will be “Passing the Joel Test in the PHP World”; I gave this talk PHPNW09 in October and it was well-received there, so hopefully I can bring the same insight and inspiration to attendees at this new event as well!

On a personal level I’m very pleased to have a reason to visit the Low Countries – Ibuildings is a dutch company and I’m already making plans to link up with my colleagues there by extending the trip by a few days. I’ve also never been to Antwerp so I’m hoping I’ll see something of the city while I’m there, if time allows. The benelux user group contains many friends so I’m looking forward to what I know will be an excellent event and catching up with all the friends who will be there.

If you are attending, or thinking of it, let me know – and come and say “hi” to me on the day :)

Are Games Just For Gamers?

I’m a keen gamer, or I thought I was – but I’m also female and very busy, which apparently is outside the expected criteria. My preferences are typically for platform style games (Zelda) although I’ll play pretty much anything that’s easy on the eye and doesn’t require superhuman powers of hand-eye co-ordination. I lose interest in the games where you walk around shooting people but I can compete with (and sometimes win against) my colleagues at Mario Kart.

This year, there have been a few games come out that I really liked the look of, some of which I even own. However I only actually played one of them for any length of time. This isn’t because the games weren’t good, but mostly because they can’t be played in small enough chunks of time. While I am perfectly well aware that the target market for games is probably single men with long stretches of spare time – that’s not me. I love all things nintendo and have both a Wii and a DS, and will happily play on either when I can find the time. BUT “time” for me is 20 minutes, maximum, and not every day (sometimes not even every week).

If your game doesn’t allow saving at will, or as a minimum, quit regularly, then its likely that I’ll get frustrated and stop playing. Last time a Zelda title came out (my absolute all-time favourite), I had just moved to a new town, had a flat I could clean in an hour, and a job where I clocked in and clocked out. This year, there’s a new title, and I don’t know when I’ll even buy it, or how much I’ll actually play of it if I did. The recent Mario DS title required you to *complete* 5 levels before saving, never mind play them. I loved the game, but my lifestyle didn’t allow me to get far. The Metroid titles for Wii had exactly the same issues – I like the game but if I can’t pick it up and put it down, it just doesn’t get a look in. On completely the other end of the spectrum was the Professor Layton game, which was puzzle based and could be saved almost at any point!

So, it turns out I’m not a gamer any more, because the game design doesn’t cater for those of us with real lives … when will the manufacturers learn that actually normal people play games too?

Conference Biography Help

I’ve been updating my conference details recently, in order to submit my talks for php|tek in Chicago (the call for papers closes on Monday – get your submissions in!). One thing which I struggled with is my biography, I used to have a paragraph which sort of said “Lorna is a PHP Developer and involved with PHPWomen”, and I used that same entry for every conference for a year or more. However, just like speaker photos, biographies do date. I’ve taken on more responsibilities at work and I’ve been doing more things in the community as well so it was time for a refresh.

I’m quite happy with my new bio:

Lorna Jane Mitchell is a senior developer who speaks, writes and blogs on a variety of technical topics. At Ibuildings she runs the PHP Academy, meaning she’s involved in managing and coaching trainers, hosting seminars and conferences, building a training programme and representing Ibuildings within the PHP community. Lorna is the Editor-in-Chief at Ibuildings techPortal and blogs regularly at lornajane.net. In her spare time she is the European Representative of PHPWomen and is an organiser of the PHPNW user group and conference.

Getting This Far

To get to this point, I started with a list of things I should include. My job, my blog, my community activity, my technical interests. There’s definitely scope for including unexpected information here, I’m seriously thinking of adding my knitting hobby into this paragraph!

I then turned my points into sentences, and emailed the result to a few people to read. Even if you’re secretly hoping someone else will write your bio for you, its often easier for them to criticise something you have written than to start from scratch themselves. I always take this approach even when I know I’m probably making a hash of it, if I’m asking for someone’s input, I take the time to attempt it myself and send them the result. I’m enormously grateful to everyone who has reviewed my biographies and talk proposals, and I’m always happy to do the same for others when I can find the time.

Proofreaders can pick up spelling mistakes and help you put your best foot forward, it might be embarrassing to write about yourself but is it more or less embarrassing than having a lame biography printed in a conference programme?

Email As a Means of Social Communication

Recently I’ve been spending a lot of time away from home, and busy with clients within office hours, which means I’m not available via my usual real-time communication mechanisms. This has given me the opportunity to enjoy email as a means of staying in touch with people that I would more usually chat with on IRC or some form of instant messaging.

When I write an email, I’m usually (mostly) doing that one thing, and the result is quite joined-up. Anyone who has had the experience of trying to carry on a conversation with me over messaging when I’m doing multiple things knows that I can easily lose the thread of an explanation and I often find I have to read back the logs of a conversation to be able to keep up.

When someone takes the time to write an email, the reader can’t interrupt or divert the writer and so the writer is able to express their points at their own pace. Email is also easier to re-read and reformat, if you are the kind of writer that doesn’t necessarily think of everything that needs to be said in quite the order it ought to be said.

When someone is emailing asking me to do something, I won’t lose an email (you’d be surprised how often I lose things people ask me to do on IRC, its on a par with asking me in the pub). Admittedly, my inbox can be several months deep but when I have time to attend to your query, I will – and that goes for social correspondence as well.

Finally, and most importantly, it enables me to stay in touch with people whose committments don’t fit around mine in terms of online availability due to work, life, or timezones.

I’m quite enjoying a slightly more formal exchange of the written word with those friends who are emailing me while I’m on these little jaunts – you know who you are and I don’t enjoy being away from home so those little messages are welcome, thanks :) And for everyone else – next time you are lurking online looking out for someone, take the time to write an email instead – and let me know how it works for you.

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 :)

PHP Barcelona 2009: Round-Up

I spent the last few days in sunny Spain at the PHP Barcelona conference as a speaker. Happily the most reasonably-priced flights gave me some time while I was there to get into the city, I was very keen to see it because I haven’t been before. The trip was made much more enjoyable by our gracious hosts who transported us between the venue and hotel most nights (and it was a very nice hotel too!) and arranged a speaker dinner that I thoroughly enjoyed.

The conference itself was excellent – I spoke about “Working with Web Services” which is basically an overview of everything you need to know to be able to consume web services. The slides for that are online at http://www.slideshare.net/lornajane/working-with-web-services.

I also saw some great talks from the other speakers there, some were people I often see at conferences, others were familiar names, and yet more were people I’d never heard of but I certainly learned a lot from all these groups. One thing that struck me was that the majority of the conference talks were in English – my experiences from looking at these events in southern Europe is that they tend to be held in the local language which of course makes them much less useful to me. This event was predominantly in English, the introduction and (most of) closing session were in English, and most of the talks were too. Whether this signifies a shift in the culture of technical events in Spain or whether this was simply a nice decision by the organisers I’m not sure.

I also made it out into the city which was beautiful. When I publicised my trips, so many people sent me information about their favourite places to go, trips to take and so on that I dubbed Barcelona “city of memories”! I didn’t make it to very many of those this time around but I’ll definitely return to the city in the future – its simply breathtaking.

Parc Guell

Congratulations to the organisers – I’m looking forward to the event in 2010 ;)