Look at Your Email Sideways

I’ve just returned from 4 weeks out of the office. Though I am now part of the Crackberry generation and have been able to keep vaguely up-to-date READING my email, my normal inbox processing habits are hard to keep up via an interface which relies entirely on clickwheel with hampered prescience. Another benefit (no really) of the Blackberry is that it is so painful* to write email back on it that I only ever write short urgent responses — everything else waits until I return to a laptop with email client.

This is very much a double-edged reality — on the one hand I tend to focus better on my holiday or business travel, limiting email time to 15-30 mins per day. On the other hand I am now faced with over a 1000 emails still left cluttering up my inbox.

I usually deal with this via a mammoth processing session, using many of the tips already covered in the Inbox Zero series. If you’re not nodding along with me here, stop right now and go investigate Inbox Zero. It’s a brilliant attitude to owning your email rather than it owning you and how to get brutal to make that happen.

Since I have been in roles where I have travelled A LOT, I’ve gotten pretty good at these mammoth processing sessions. Here are some extra tips — essentially how to look at your email sideways in ways that make those 1000 shrink down to something much more manageable:

  1. If your email client is also a calendar, sort by “message type” or “icon” and deal with any meeting invites, responses or cancellations first. These are the simplest type of message as all that is expected is that you accept, accept tentatively or reject.
  2. Next, sort by sender. The same people will have emailed you multiple times and often you only need to actually deal with the most recently received. The rest can be filed or deleted en masse (as per your usual strategy).
  3. As needed, group by conversation. Occasionally you’ll come across a long, complicated conversation thread. Again, you’ve been away so you can probably save time by skipping to the most recent instalment or two and ignoring the rest of the conversation. No one likes the bastard who returns from holiday and presents everyone with a point-by-point treatise on the entire email chain.

Pretty simple, but sometimes the simple things make the most difference. Next time you have a mass of inbox processing to do, try looking at your email sideways to shrink it.

* Please note: I have both RSI and Carpal Tunnel Syndrome so for me using a Blackberry (and most other computer equipment) really is painful. This was not a slur on Blackberry interfaces in general 😉

Principles of Project Management

Principles of Project Management cover I’m pleased to announce that one of my own projects has just come to fruition. My new book, The Principles of Project Management has just been published by SitePoint. It’s a short book aimed at folks like myself who have come from a technical background and are increasingly finding themselves in need of project management skills — whether to officially take that role or to help make the hard work they put in as developers or designers actually mean something, by ensuring the project is delivered properly.

The book was expert reviewed by Kevin Lawver and Drew McLellan who both did an admirable job of ensuring that the content stayed applicable to all sorts of projects and teams, both big and small. They also bravely took on the role of managementese-weeding and survived with remarkably few lasting scars 😉 Drew has written some thoughts on the book on his own blog. I thoroughly enjoyed working with both Drew & Kevin, as well as the team at SitePoint.

If your interest is piqued, then check out The Principles of Project Management book page or download a sample chapter. You can also buy the paperback or Kindle version on Amazon.

In the interests of full disclosure, I would highlight that all the links are affiliate links — i.e. if you buy the book via that link I will both be able to track it and get something back 🙂

Deadline First, Plan Second

I’ve just invented a new acronym (yeah, yeah, I know, like the world NEEDED another acronym, right?!): DFPS (Deadline First, Plan Second).

Deadline First, Plan Second describes the all-too-common phenomenon of project deadlines being set before any of the planning and estimating has been done. We’ve all been involved in or heard of such a project — the kind precipitated by a big announcement that The Next Big Thing (TM) will be delivered by March 1. Post announcement, a team is pulled together tasked with actually making it happen.

This throws many good project management practices straight out the window. It doesn’t matter if you do a proper plan, involve the team in estimating and figure out that the project will REALLY take 9 months instead of 5. The announcement has already been made — pointing out that it’s unrealistic is only going to get you accused of not being a team player. Alternatively, your management may view it as a crafty way of getting more money or people. So you may go in trying to convince them that it’s not going to happen and come out with twice the money, but you’re still signed up to an impossible deadline.

The good news? People who pull deadlines out of the air often don’t really understand the intricacies and complexities of your project. Duh, right? If they understood, they wouldn’t be setting impossible deadlines! Although this may sound like I’m just hammering home bad news, there is a flip side to this coin. If the deadlines are arbitrarily set, they are quite unlikely to have a detailed understanding of the scope of the project.

Reality is that you can probably negotiate your way through on all the other project variables – cost, quality & scope – you just need to accept that someone high up has nailed their future to a deadline and so now that is set in stone. So long as there’s a big “we did it” announcement on March 1, the definition of “it” is probably fairly fluid.

My advice? If you blatantly need more money or people, go the “it’s impossible” route at first. Get some extra resource thrown at you. Then, very helpfully, start preparing plans of what actually IS achievable for a Mar 1 go-live. Aim low at first — your project board or management team are going to be horrified at how little you’re saying can be done, so they’ll want to argue you up to more stuff. But be very aware of where your limits lie. Plan to under-promise and over-deliver. Give them something that works, but doesn’t sing, dance & play the ukulele. By then they may well realise they don’t need all the singing and dancing anyway!

PS If you’ve been keen to find a way to introduce a new approach, like Scrum then a DFPS situation might be just the leverage you need. Worth a try!

Outsourcing and Test Driven Development

I imagine that most of you have aleady heard of Test Driven Development (TDD) where the tests that software should pass are written BEFORE the software itself is written. The list of tests is essentially just a formalised way of listing success criteria (and indeed requirements) very precisely. More than precision, this approach gives you a very fast indication of your REAL progress, since the newly written code either passes or fails the tests*.

Test Driven Development is a software development approach usually associated with agile development methods such as those championed by the Agile Alliance. It is usually assumed that agile development requires a team to be collocated, working intensively and exclusively together, and so little attention has been paid to the role of these methods in outsourced development.

For better or for worse** however, many of us are on one side or the other of an outsourcing arrangement. I discovered in my work that using test driven development as a mechanism for both validation (are we building the right thing?) and verification (is it working?) can be hugely powerful.

There are a number of reasons for this:

  1. Well-written tests can explain requirements much more efficiently than traditional requirements documents. Even when there are misunderstandings, the SUM of the different tests specifies the right functionality.
  2. Tests are technical and so can overcome communication barriers with added precision. Even just not sitting next to your developers (or designers) can cause communication issues. When you add the moder-day reality of offshoring as well as outsourcing, this can be exacerbated.
  3. “The customer” (whoever they might be) can be involved in the creation of the test suite. This helps to ensure that the right functionality is being created in the first place since we can check that what the software does is what the customer desired/expected very easily.
  4. Showing the number of tests passed can be a much better indication of progress than the traditional “percentage of task complete” measure. You know exactly how much of the programme actually works at any given time.
  5. Tests can be automated. Then you essentially end up with an automatic checklist of desired behaviour, so that every time a change is made you can pinpoint other areas of the code that might have been affected and refactor quickly, rather than waiting for bug reports to come in from live use.

Hopefully as agile development methods become better and more widely adopted, an increased number of the firms providing outsourced development services will start to use them as standard. In the meantime, it can make a huge difference to your projects if you manage to introduce them ahead of the curve.

What have your experiences been with test driven development and outsourcing? Share in the comments.

* Provided your tests are well written, that is. Of course, writing good test cases is a skill all of its own!

** The pros and cons of outsourcing your development definitely deserves another post! Or arguably an entire book!

Tips for International Travel

As some might have suspected from the lack of updates here recently, I’ve been rather busy! In the last 5 months I have only been at my office for about 4-6 weeks, spending the remainder of the time travelling in the US, Hong Kong, Philippines and Australia for business and the last month at home in South Africa on holiday.

As a result, I thought I’d break away from productivity and management to talk about travelling for a little while. In future posts I’ll also discuss some strategies for working effectively in teams that are spread across the world!

Without further ado, here’s my common sense list of tips for making international business travel as easy as possible:

  1. Reserve your seats and check in online. SeatGuru is very useful for finding the best (and worst) seats — remember to search for the specific airline as well as the plane model as some airlines have very different plane configurations. Also use online check-in whenever you can. Sometimes it can mean the difference between making the flight and not and certainly helps to make travelling a little less stressful. Even good to do when you can’t print your boarding pass — picking it up at the airport is usually pretty painless.
  2. Buy a compact, any-to-any power adapter. I have one of these but there’s also a version with USB. It’s been hugely better than carrying a random assortment around!
  3. Print out details of your flights and hotels. Carry a folder with details of everywhere you’re staying and all your flights in and out. It’s surprising how important the minor details can be to some immigration officials!
  4. Set your watch to the timezone you’re going TO. Getting a headstart on adjusting to the timezone you’re travelling to can mean the difference between a hellish first day and a productive set of meetings.
  5. Invest in noise-cancelling headphones if you can afford to splurge. These make a huge amount of difference, but are on the pricey side. I personally missed the boat on these — should have bought them ages ago and then they’d have paid for themselves!
  6. Sign up for all the loyalty programmes. Hotels, airlines, everything. Also work out early which airlines are in alliances with each other. It’s often best to just join the loyalty programme of the airline you use most and use that card to collect for every flight in the alliance. This saves you having to deal with the admin of combining your miles/points later when you want to use them. Also, getting even to the first level of membership (whether it be bronze, silver, whatever) can have serious benefits — I’ve been surprised at how often I’ve been upgraded even as a relatively new member of the various loyalty programmes. Any excuse, presumably!

What are your tips for hassle-free travel? Share in the comments!

UPDATE (21 Oct 07) As Tim Beadle reminded me in the comments, Dopplr is a great tool to use when you travel frequently, both as a reminder to visit friends and colleagues in the cities you are going to and also to help you run into fellow travellers who happen to be in the right place at the right time! For the Dopplrites amongst you, you can add me and maybe we will meet up one day. For those seeking an invite, leave a comment and I’ll get you one 🙂

PM Overview on SitePoint.com

My first SitePoint article has just been published — Effective Project Management for Web Geeks. For those of you who found this blog because you saw me speaking about Project Management somewhere, it may well sound quite familiar, but I think it’s a nice round-up of some PM basics and the basic toolkit that I recommend everyone get familiar with if they want to keep their projects under control.

Go on over and check it out and let me know what you think!