When I first started my current position, I noticed our QA team struggling to find hardware obsolete enough to test on Windows 95. Everyone’s busy, and the question hadn’t come up. Part of my job is to ask that question: “does this make sense to support?” I’ve put some thought into it…
Background: My product runs on multiple computing platforms. In this context, “multiple” means not just Windows 2000, 2003 and XP, but also Linux, Mac and the usual gang of brand-name UNIXes (Solaris, HP/UX, AIX, IRIX). A question always vexing us is whether this set of systems is what matters most to our customers. See, each platform we support sucks up engineering and testing resources. Hardware, software licenses, and in-house system administrator expertise add up. Inevitably, and with increasing frequency, one of the “children” has an issue crop up as we try to ship the product. Windows 2000: needs a runtime Visual C library. SGI: statically compile in openGL extensions. Mac OSX: Mac OS 10.4 changed the way it handles symbols in dynamic libraries.
It’s like whack-a-mole.
If there are any platforms that I think I can reasonably drop, I will. It saves me engineering and testing time I can channel into new features, shoring up existing ones, or supporting new ones. It also reduces stress.
With a high certainty that Windows 95 support wouldn’t be missed — Microsoft officially discontinued support for W95 in 2001 — we dropped it from our list of platforms immediately without going through our usual formal end of lifetime notification process.
We also placed Windows 98 and ME on probation (more on that shortly).
It also seemed likely that many of the 32-bit brand-name UNIXes were unused, either, as some were released when Windows 95 hit the streets. Since UNIX users are slower to change hardware, I did a quick survey. Everyone had migrated to the 64-bit versions a few years ago. The 32-bit UNIX versions of my product were no more!
Fast-forward to this January, when my alpha test phase was winding down. I had plenty of Linux and Windows testers, but representation on the other platforms was anemic at best. In particular, I had only one big-iron user, and they were about to transition to Linux.
As we were entering beta testing, our HP/UX machine, sensing our impure thoughts about its longevity, withdrew into the machine-equivalent of a depression. It was well out of warranty, with proprietary hardware and a ginormous lease payment. Snakes on a plane.
Scuttlebutt was we had only two customers on this platform, one of whom wasn’t
likely to upgrade to our latest release anyway. While I was sharpening my platform
machete, I did another, larger survey. (Multiple responses were allowed):
- 69% various Linuxes
- 62% Windows XP
- 23% Windows 2000(!)
- 11% Mac OSX
- < 2% each: Sun Solaris, SGI IRIX
- < 1% HP/UX, IBM AIX
In followup conversations, there were two prevailing philosophies on the
big-iron machines. Either companies were actively transitioning to
Linux or they were waiting until their UNIX machines finally went to the
great dipole in the sky, then they’d move to Linux. However….
enough strategic customers were squarely in the second philosophy,
making it unlikely we could officially retire the platforms during this
Officially, I’ve listed those four platforms as being on “probation” in
the release notes and on the web site. All “probation” means is we
reserve the right to drop support after our software release in 2007.
We want to minimize surprises to customers. Since I’m the marketing dude, I
also reserve the right
to change my mind before the end of 2007, such as would be the case if
someone approached us and said “We are willing to give you these gold
ducats for continued support of IBM AIX through 2009.” However, once
we drop a platform, it’s extremely difficult to pick it back up because the underlying system
has been returned to the collective (UNIX) or reassimilated for some other
purposes (everything else). That would require additional tribute in the form of fine silk.
A curious secondary result of the survey was how many customers were still
using Windows 2000. To be sure, it’s one of the most secure and stable releases
of Windows, but it’s also several years old, and support the consumer edition (unprofessional?)
expired last year. At the time, Vista hadn’t gone into beta, but very few people I’ve spoken with
seemed likely to embrace Vista. (It has some interesting features, but I’m not particularly excited about it.)
With the further delays until (essentially) next year, supporting it and working around the known issues is not a pressing concern.
I was surprised how many Mac users there were in the mix. That platform’s become
a love-hate for me. On the “love” side, the hardware is beautifully designed, it’s
a linux core and stuff just works out of the box.
Although the switch to Intel-based processors is a hassle, the machines are
fast and they’ve managed the transition far better than I could have expected.
Now that Apple has finally come out with a 64-bit Intel Mac, it’s an attractive option
for us to port once, play many. On the “hate” side, each release of their operating system has been
a pain in the X-windows support. We’re clinging to hope that Mac OSX 10.5 will solve more problems
than it introduces. (For example, 10.4 further broke off-screen rendering, letting us crash the X-server at will.)
|Will it be Mac OSX 10.2, Windows 98 or HP/UX?|
Now about Linux… Because there are beau coups of brands/flavors out there, each with its own
slight twist, we’ve historically supported them based on the processor type (x86, x86_64 or ia64), kernel version and compiler version. It works a lot better than I would have guessed, but I am considering picking a few specific flavors/versions for testing and official support purposes.
For example, Fedora Core is the most popular among my customers. Close behind are the popular SUSE and Ubuntu. Based on personal experiences, these linuxes are stable, extremely easy to install and well-supported, often better than some pay-for software! For the others (Gentoo, Mandriva, Slackware, Xandros, Lindows), we’d suggest the particular executables most likely to work, but we wouldn’t spend much time proactively debugging issues.
One disadvantage of Linux’s popularity and stability is we’re now being stretched on both ends of the spectrum. Unless I can welsh out of having to continue supporting the oldest (>5 years) of the Linuxes (e.g., RedHat 7), I’m going to have to add yet another build of both x86 and x86_64) to best support the versions currently available.
Such is the product manager game of platform whack-a-mole.