One of the themes I’ve seen developing in stories about Windows Phone 7 is a rhetorical question about whether Microsoft’s next smart phone platform will be "successful." This is something I’ve pondered, and written a bit about, and I’ve gotten a lot of email from people who are wondering whether they should wait for Windows Phone 7. This is a more complex question than is immediately obvious, because the answer hinges on your definition of success. Also it’s worth pointing out that the future is cloudy, and that my record on prognostication is something like 127 to 3, with me being on the raw end of that score. I’m just not good at predictions.
But I think I can have at least a semi-intelligent discussion about success. The success of Windows Phone is, of course, of personal/professional importance to me, and not just because I’m writing this book. In fact, in the grand scheme of things, the success of Windows Phone Secrets is of little importance to me because it will represent only a tiny portion of my income this year. More important, to me, is that Microsoft be able to establish Windows Phone as a credible challenger to the budding Android/iPhone hegemony, one that developers, users, and content providers will flock to. I’ve said many times that the future of computing is both mobile and connected, and if Microsoft is going to continue to have any importance and influence going forward, Windows Phone will be a big part of that. In fact, one might argue that, for Microsoft to be successful in this space, Windows Phone will need to eventually surpass desktop versions of Windows from a units sold and revenue perspective.
But let’s not get ahead of ourselves. Looking specifically at the smart phone market of today and the next few years, Windows Phone needs to achieve success in a number of areas. And while more cold-hearted financial concerns like market share (unit sales in a given time period, usually quarterly or yearly), and profits and revenues need to follow, and are inarguably how any product is ultimately judged when it comes to "success," these other areas are, I think, more important. Not just now, as Windows Phone seeks to establish itself, but going forward too, as the product evolves and matures.
These areas are, in order, developers, users, and content. In this post, I will focus on the first area, developers.
What if a software maker created a platform and developers ignored it? Would anyone even notice if it died? You laugh, perhaps, but Microsoft is, above all else, a platforms maker. And there are some startling examples of recent Microsoft platforms that have gone absolutely nowhere. In fact, when one looks at the software giant’s big-bet platform enhancements on the core Windows product line, there are some absolutely stunning defeats, technologies that took years to build and nurture, but went nowhere with developers and thus withered on the vine. Avalon/WPF. Windows Gadgets/Sidebar. Windows SideShow. XPS. The list goes on and on.
These defeats don’t mean that Windows Phone can’t be successful, of course. And that each of the examples I cited above is tied to the old-guard Windows world is, perhaps, telling in this era of web applications and mobile apps. But the point is made: Before anyone gets too excited about the relevance of providing developers with familiar tools (Visual Studio, Expression), familiar languages (C# now, hopefully Visual Basic later) and APIs, and a built-in audience of over one billion strong, I’d just remind them that these strengths haven’t always translated into success in the past. I’d also remind them that Apple’s horrible developer tools (which are about to be improved dramatically in Xcode 4), a bizarre and unfamiliar programming language (Objective-C), unfamiliar APIs, a reliance on Macs as development tools, and starting over from scratch did absolutely nothing to slow down the iPhone and its underlying iOS platform. There are no guarantees.
(And don’t get me started on Android. Didn’t we write off Java years ago?)
For Microsoft to be successful with developers, it’s not enough for the company to provide familiar tools, as it’s done. It’s not enough to let them develop in familiar languages and APIs, which they’ve only sort of done: I honestly think that the Silverlight/XNA stuff, while excellent, is still a bit unfamiliar to many Windows-based developers. And it’s definitely not enough to ride the Windows brand, given how unsuccessful Windows CE, Windows Mobile, and various other Windows-branded products have done in the past. (Counter-point: KIN hasn’t exactly resonated with consumers either. Making a good brand is hard.)
Does Microsoft need to out-Apple Apple to be successful with developers? We better hope not, as that would be a tough road to plow (or "row to hoe" as one reader pointed out). How tough requires understanding what it is that Apple actually offers to developers. And this starts, as it should, with documentation.
I’m a member of Apple’s iPhone developer program, which, at a cost of $99 per year, provides an astonishing wealth of resources for the budding or established iOS developer. But you don’t even have to pay to benefit from the astonishing amount of iOS-related information out there. The iPhone and iPod touch (and, eventually, the iPad, I guess) are so successful that people are tripping over themselves to get educated. This is an astonishing accomplishment.
Looking just at what Apple makes available online, we find the following:
iTunes U content (free). Apple’s iTunes U service is an under-appreciated resource, providing free classes, courses, and more from educational institutions, museums, and other places from around the world. And there is some amazing free content there if you’re interested in learning how to develop for iOS, not the least of which is the excellent Stanford University iPhone Application Development (Winter 2010) course, which includes downloadable videos and PDF handouts from 45 (!) classes, classes which are taught by ex-Apple employees. However, Stanford isn’t the only source for this information: Several other institutions, including the University of Utah, UC Davis, and many others offering similar classes. They’re all free.
iPhone OS Reference Library (free). Apple provides an exhaustive iPhone OS Reference Library for free, to anyone, which covers the currently-shipping iPhone OS 3.x release. Those that want access to the iOS 4 stuff, for now, need to be part of the $99 iPhone developer program, but of course that will change over time. The sheer amount of information available here is staggering, and those who do pay for the developer program also get access to…
WWDC session videos and handouts. Each year, Apple holds its annual Worldwide Developers Conference (WWDC), and the 2010 show was quite iOS 4-heavy. This week, developers who didn’t attend the show physically gained virtual access to all of the sessions via HD and SD session videos and PDF versions of the presentation slides. I’m talking 160 separate tracks. It’s breathtaking.
iPhone developer resources. Separately from the WWDC content, Apple also offers iPhone (and Mac and Safari/HTML 5) developers with exclusive iTunes-based video content. The iPhone Development Resources content, also on iTunes U, boasts 166 tracks, split into Essential Videos, Advanced Videos, Foundation Videos, and In-House App Development Essential Videos.
There’s probably more, but this is just what I’ve noticed without doing any actual research. It’s pretty impressive. Apple provides developers with a fire hose of documentation, and there is precious little excuse for not finding the information you need. And this doesn’t even touch on the content provided by third parties via books, web sites, podcasts, and even on-site developer boot camps. If you want to get started in the iOS world, you’re covered.
So how about Windows Phone?
I’ve pointed out some developer resources in this blog over time, but I was interested this week to see that Microsoft’s Kenny Spade has started an unofficial list of Windows Phone 7 resources. (Note that this list includes Microsoft and third party resources.) As of today, this list includes:
Windows Phone for Developers. The primary developer portal for Windows Phone 7.
Programming Windows Phone 7 Series. Charles Petzold’s site for his Programming Windows Phone book.
Learning Windows Phone Programming. The site for another book, with some sample chapters available.
Application Certification Requirements. A PDF document describing the technical requirements for app developers that wish to publish their wares in the Windows Marketplace for Mobile.
Application Platform Overview for Windows Phone. Pre-release documentation for the the Windows Phone apps platform.
Windows Phone UI Design and Interaction Guide. Another PDF document, this one describing app UI design.
Designing Web Sites for Phone Browsers. Best practices for the mobile web, in PDF form.
Documentation for Windows Phone 7 at MSDN. Online documentation the the Community Technology Preview (CTP) of Windows Phone Developer Tools.
Of course, this list is pretty incomplete, and there is in fact some documentation out there that offers an Apple-like experience. Microsoft showed off Windows Phone to developers at both MIX’10 in March and Tech-Ed 2010 in June. And the session content from those two shows are available, for free, online. Here’s where to look:
MIX’10 Windows Phone sessions. 15 sessions, available in various video formats and with PPT presentation downloads.
Tech-Ed 2010 Windows Phone sessions. 14 developer-oriented sessions, available in various video formats and with PPT presentation downloads.
Not bad, but compared to what Apple offers, it’s not even close. (And let’s be fair, this list is probably pretty incomplete too. But then so is the list of Apple resources noted above.)
To those who would argue that this is early days and that Microsoft’s documentation can only catch up, I’d say, wake up. When the iPhone debuted three years ago, it was a bolt of lightning in what was then a very immature smart phone world. Three years later, everything has changed, and the market in which Windows Phone will compete is vastly different. In 2010, it is not enough for Microsoft to provide what Apple had in 2007, and this is as true with developer tools and documentation as it with anything else. Microsoft isn’t competing with the Apple of three years ago.
What we need, then, is not a trickle, but a fire hose. We need what Apple offers iOS developers. That’s the bar.
So. Does this mean that Windows Phone is not or will not be successful with developers? No. As I will argue for both the user experience and content as well, Microsoft doesn’t need to match or beat Apple to be successful. But it does need to at least be in the game. I think that what Microsoft has done so far is a nice start, but a nice start only. The key here, is to excite developers enough that they want to create unique Windows Phone solutions and, perhaps even more important, port the key top x percent of iPhone applications to the Microsoft platform.
There are a number of hindrances to this strategy. The Windows Phone development environment (Visual Studio/Expression) is quite different to that of the iOS development environment (Xcode), though the differences are shrinking as Apple moves to more of a Visual Studio-like experience in Xcode 4. The differences between the programming languages (C# in Windows Phone, Objective-C in iOS) are seemingly small (they’re both C-based OOP languages) but, I think, important. Not insurmountable, but the key issue here isn’t so much language syntax as it is the APIs, the libraries that developers use to access specific phone features. These are quite different between each environment, as you might expect. Mac developers will find some comfort in iOS, just as Windows developers should "get" Windows Phone. But moving from phone to phone will be difficult, as difficult as porting a Mac app to Windows.
Documentation-wise, Microsoft has thus far provided the minimum, in my opinion, to be successful. Sure, Windows Phone isn’t even out yet, but the time to attract developers is now, and this explains the dev pushes at MIX, Tech-Ed, and, next month, the developer device seeding program. It’s important that a decent collection of Windows Phone apps and games be available when the phones ship later this year.
So, yes, I think the Windows Phone developer story is already reasonably successful. No, it’s not as good as what Apple offers, but it is familiar to the millions of Windows developers, and, while we haven’t really discussed this, it is also more mature and capable, I think, than the competition from RIM, Android, WebOS, or whatever.
Remember, the key here isn’t that Microsoft "beat" Apple but rather that they can offer an alternative platform that is compelling, capable and successful for developers. It’s like outrunning a bear: You don’t need to be faster than the bear, but you do need to be faster than the other people the bear is chasing.
What Microsoft offers developers is already compelling and capable, and like everything else with Windows Phone, it will get better over time. Ultimately, the success of this developer platform will require unit sales and app success stories, but early success can be measured by the speed at which developers take advantage of the development environment and create unique Windows Phone offerings. I think the parts are in place for that to happen. But looking at the Apple ecosystem, I’d also caution that much more needs to be done. Again, success is all in how you define the word.