Monday, November 15, 2004

Wish me luck

Tomorrow (Monday November 15th) we do our first software release for which I take responsibility. It's taken a while to get my organisation to agree that ad hoc releases where someone decides it's 'ready' and emails a copy off to the customer should be a thing of the past.

I've instituted daily builds based on 'gets' from our sourcesafe database. So far no one's broken the build but it's early days yet - we've only been doing this for about 3 weeks. But it has given me a certain level of confidence - we're now able to get unbroken debug AND release builds. My build script (I'm using Kinook Softwares Visual Build) deletes the entire source tree on the build machine, gets the latest source and recompiles from scratch. Then it builds each install package. At the end of the build process it emails the results to me and each member of the team. Each day I review last nights build results. And each day I spend a couple of hours reformatting the hard disk on a computer, install Windows XP and install our packages. It's not quite as wasteful as it sounds. I kick off the boot from the Windows XP cd when I arrive at the office and carry on with normal work with only the occasional interruption. I probably waste more time stepping outside for a smoke than I do with the clean installs

So far it's looking good (and it's orders of magnitude better than the situation I found when I joined this company).

So tomorrow is crunch day. I do the final build - the final clean machine install - the final functional test. And then I get to do it all again on a machine that didn't experience clean machine install. I get to run it all on a machine that's being upgraded from our old (random) version, to our new standardised version. All being well I'll be burning our CD of the release mid-afternoon.

Don't imagine that tomorrow is the first time I'm doing this . I've been playing this game way too long to fall for that.

Nevertheless things can go wrong. If they do I'm going to dig my heels in and insist that, even though we're two weeks past the initial release date, we DO NOT release. Sure, we might miss a date by a day or more (added to the two weeks we've already missed). Will our customer forgive a bad release because we stuck to a date that we and they pulled out of our bums? I suspect not.

If nothing goes wrong our customer will recieve, for the first time, a set of professionally labelled CD's. None of this cheap memorex CD-R with the name and version of the software written with a felt tip pen. Ummm well it will be cheap memorex CD-R's but they'll be properly labelled and looking professional. What's more, when they insert em and let Windows auto notification take over they'll get a professional looking web page with release notes and install links.

Let's be fair to management where I work (especially since I'm part of management - much to my surprise). They hadn't thought in terms of the oobe. Oobe? Out of box experience. I'll be the first to admit that much of what I do is based on what I've read about how Microsoft manage their software development process. They do daily builds and visit the wrath of hell on s/he who breaks the build. As shall I. And they obsess about the oobe.

Two nights ago I had to reinstall the kids computer. Because it's the kids computer it is always the one that has the spyware/malware/viruses on it. They neither know nor care that someone out there wants to own their computer. So every so often I get to the point of throwing up my hands and blowing that machine away, reinstalling and the whole works. This time I installed WinXP on it (instead of Win2K). Imagine my surprise when, after the install, I discovered that it had gone out and found our network printer and automatically set it as the default. This is what I think of as a good oobe experience. It did the right thing.

I'm disposed to like Microsoft (though I don't want to work for them). Our customer is disposed to like us - if we can get it right. I'm disposed toward Microsoft because, despite their flaws, they get most things right. So I come at this whole thing from the point of view of wanting to impress the hell out of MY customer by looking professional AND by getting most of it right. I don't expect to get it 100% right. But if we can, for the first time, deliver them software that works, whatever its imperfections, that's a big step forward.

No comments: