Specifically, for the past month I’ve had two programs with issues on Vista – the Logitech mouse driver and Apple iTunes. While Logitech had a Vista ready update to setpoint.exe up on its site January 29th, Apple is warning its Windows customers not to install Vista iTunes is not compatible with it.
In fact, Apple says none of it’s Windows software is Vista ready. Not QuickTime, the iPod shuffle reset utility, Bonjour for Windows, AirPort for Windows, the iDisk utility, AppleWorks for Windows, nor Apple Software Update for Windows. The stand-alone iPod updater for iTunes 6 for Windows also isn’t ready for Vista.
At least, that’s Apple’s message as filtered through the Mainstream Media who boil it down from some fairly nasty incompatibilities unless you run as Admin in comparability mode (and even then there’s a gotcha if you pull password protected content down into iTunes from say GTD Connect – the compatibility mode dialog box OK had better get clicked before you need to reconfirm accessing GTD Connect’s feed or iTunes locks up with two modal dialogs and you have to kill it.)
Nor have the tech blogs been kind: more than a few speculate it has more to do with Apple’s pending release of OS X Leopard than any other reason.
I’m not privy to any inside information, but it’s clear that Logitech had just as many codebases to revise, that Logitech probably has fewer programmers than Apple to do it, and that both vendors probably got all the help they wanted from Microsoft who has a vested interest in seeing both peripherals and Apple software working with Vista.
So what went wrong for Apple?
While company politics and FUD-slinging might be the cause, I think this episode costs Apple more than it does Microsoft, and Apple’s execs from Steve Jobs down would have realized that. Afterall, this adds another doubt in the minds of potential iPhone buyers, and Apple doesn’t need that.
I suspect this embarassing situation is actually the result Apple still writing software as if it’s still the 20th century: teams of programmers are formed who against unrealistic deadlines and at great personal cost hack together software that works and then someone else fixes the bugs that inevitabily crop up. The “someone else’s” as they dig deeper and deeper into the codebase find more and more crap that was done to Meet The Deadline!, are treated like second class programmers, are starved for headcount and are far removed from customers.
In my opinion, software and the operating systems software runs on have become so complex the only way to write good software is to write the unit and interface tests alongside the software. Call it Test Driven Development, call it what you will, but programmers – including micro-ISVs – need the ability to automate testing the entire codebase repeatedly during development.
It matters not a whit that you think Vista is “good” or “bad”, what matters is what your customers want and need: your software working on their computers. Logitech understands this, Apple does not, at least not yet.