ship it!

Here's a secret of software development. You're never actually done with your software. There's always one more feature to add, one more button to tweak, one more change to make.

The end of a cycle is an odd time. Everyone is hard at work. The developers are finishing up their features and fixing bugs. The testers are ruthlessly hunting down bugs. The program managers are prioritising those bugs. The user experience researcher (hey, that's me!) is planning the final studies of Office 2008 for Mac.

But there's a problem. The people involved really love their jobs and have an unparalleled passion for excellence. 'How can that be a problem?!' I hear you ask. This is a problem because of feature creep. I hear it all the time. 'You know, if we just had a couple more days, we could do [more cool stuff]. What's a couple more days?' The devs come up with these ideas as they're working on the code. The testers come up with these ideas when they find a bug and come up with an elegant solution to the problem. The PMs come up with these ideas when they look at the lists of possibilities for their areas. And yes, I do it too: I conduct a usability test and think of a great approach to a particular scenario that I observed in the lab.

The end of a cycle is hard because you have to clamp down on these kinds of things, and it's hard to say no to a good idea from someone who deeply cares. Several feature creeps have crept into my office in the past month, brought in by people who have great ideas and want to get a UX perspective on their idea. Each of these feature creeps only take a couple of days, maybe a week, to fully realise. But the sum of all of these tweaks and additions and improvements that have crept into my office is easily six months, and I know that I haven't heard all of the ideas that have come up.

Creating a suite of products that have the scope of Office for Mac is a difficult mission. To make this mission somewhat easier, we have to decide how we're going to focus our efforts. This is decided early on in the project and is based on lots of research to understand and prioritise user needs and requests. It gets refined as we go along. When ideas come up, aside from considering their impact to the schedule, we have to figure out how they fit into our focus. If they're not quite on target with our focused priorities, the end of the cycle is when we're more likely to regretfully say 'no'. If the idea is on target, then a hard conversation starts: how do we fit this great idea into our product without having a significant impact on our schedule? It's always a delicate balancing act, and it gets more and more delicate as we get closer and closer to launching Office.

There's a growing refrain in the hallways whenever feature creep rears its attractive and tempting head: 'Ship it!' I'm hearing it more and more. We've all heard Steve Jobs' legendary "real artists ship" -- and that spirit is alive and well here and now. It's really hard to say no to cool things even when they come late in the game, but at some point, you have to realise that you don't have an infinite number of hours in a day and that you can't do everything that you want to do. This time.

Every day, we get closer and closer to being able to ship it. I'm looking forward to that day. Until we ship it, we have to avoid the siren song of feature creep. The good part about your software never being done is that some of us are already working on the version after Office 2008 for Mac, and all of these (and so much more!) will get their due consideration based on research and customer feedback (isn't this where I came in?).