Counting Down to Seven: Charlie Kindel and the Windows Phone 7 Team’s Focus

"Counting Down to Seven" badgeTime for another installment of Counting Down to Seven, a series of articles about mobile app development that I’m writing as we count down the days to MIX10, when we reveal more about the up-and-coming Windows Phone 7 Series.

If you’re following what’s happening with Windows Phone 7, you should follow Charlie Kindel – both his blog and Twitter account. Charlie is one of the people behind the new “Phone 7” experience; I don’t think he’s exaggerating in his Twitter bio when he says “The future of application development for Windows Phones is in my hands.”

In his latest blog entry – Focus, Focus, Focus – he writes that the reason that Windows Phone 7 seems atypical of Microsoft is the power of “no”. The Windows Phone team didn’t just decide what they were going to build, they also decided what they were not going to build, and work around the “5P” framework of:

  1. Purpose
  2. Principles
  3. Priorities
  4. Plan
  5. People

Here’s the Windows Phone developer experience team’s stated purpose:

Our purpose is to harness the energy, talent, and attention of developers and designers with a platform and ecosystem that delivers on the developer experience end to end; that, combined with the phone’s end-user experience, results in a winning virtuous cycle.

From that purpose, they derived some principles, among which are:

  • Every decision we make must be made mindful of the effect on end-users. Simply put, the end-user is king. 
  • We will do a few things and do them very, very well; we are better off not having a capability than doing it poorly. There are always future versions.
  • No API will be created or documented without a clear use case; “build it and they will come” APIs almost always do nothing but create bad legacy.
  • We will build on the shoulders of giants; where possible integrate instead of create.
  • We will strive to not show our organizational boundaries to developers.

What’s truly interesting is the list of Windows Phone 7’s targeted developer segments. This is an ordered list, with the highest-priority segment listed first:

  1. Consumer Developer – Pro Devs who build products that are sold directly or given out for free to general public end-users.
  2. Non-Pro Developer – Non-Pro Developers building products for academic/personal use.
  3. In-ROM Developer – Pro Devs who build products & technologies that are sold to mobile operators or device manufacturers.
  4. Enterprise Developer –Pro Devs who build apps & technologies that are sold to corporate clients and businesses.
  5. IT Developer – Pro Devs who build apps & technologies that are only for use by their own corporation.

I have often quipped that sometimes using Microsoft stuff “feels like eating from the dumpsters outside a cubicle farm”; that is, that their software targets enterprise and IT first and small-shop/indie coders like I was last. This list inverts the priorities I image the Windows Mobile team had, and my response to that is “good”.

Charlie makes a point of saying that the prioritization is temporal; over time, the priorities may change and they will serve some of the lower-priority segments, but all the while adhering to the purpose and principles listed above.

Then there’s the plan. The plan is to have Windows Phone 7 ready for the MIX conference, and it looks like that will happen. “Events,” Charlie writes, “are great forcing functions for engineering teams”.

Finally, the people. The Windows Phone 7 team is a diverse bunch coming from all across Microsoft – the Xbox people, developer division geeks as well as members from Windows Live, Exchange, Windows OS, Office and Developer and Platform Evangelism.

Go check out Charlie’s full blog entry, which describes the Windows Phone 7 team’s purpose, principles, priorities, plan and people in greater detail, and check in on him often. If you’re planning on building apps for Windows Phone 7, he’s one of the people to follow.

This article also appears in Canadian Developer Connection.