We have recently started planning Sparkle's end game: what it's going to take to ship this puppy. (Please don't take this to mean we are anywhere near to shipping, because we aren't.) If you have never shipped a commercial software product, you probably don't realize just how complicated and involved it is. (I sure didn't!) Shipping shrinkwrap software is not a simple thing.

One very important task is determining the final feature list. We have maybe one more milestone of new features and too-potentially-destabilitizing-to-do-during-stabilization work before we start locking things down in earnest. At the same time, we have this more-than-a-milestone's-worth stack of features that we just can't ship without. What's a product team to do?

To some extent I don't care what gets done and what is dropped - guaranteed we will have our hands full regardless of which features end up in the milestone, and none of it is likely to be dramatically harder than the rest. On the other hand, I do care what gets in and what is left out because those choices will affect our customers, and customers are something I spend a lot of time thinking about. I am so not a designer, but that doesn't prevent me from talking with designers, learning how they think, and working to ensure that Sparkle is and does what they want it to be and do.

So we have these seemingly endless add/cut meetings with seemingly endless discussions about the merits and risks and implementation hardnesses about multitudes of features, and mostly I ignore the whole shebang. But I do keep one ear perked for things that just sound wrong.

This situation is an excellent example of what being a tester is all about. You spend most of your time banging on your product and making it break in inventive and nifty ways. But at the same time a part of your brain is constantly thinking about what the customer will do and how they will perceive this feature and whether they will understand that error message and how yummy or icky the overall experience feels.

This variety of tasks is one reason I love being a tester. Testers have to have a broad and deep understanding of the entire application, and the many types of customers, and the umpteen different configurations, and and and .... I guess you could say we are the Renaissance Men (and Women) of software development!


*** Want a fun job on a great team? I need a tester! Interested? Let's talk: Michael dot J dot Hunter at microsoft dot com. Great coding skills required.