UPDATE: After flying off the handle in this post, I wrote another post that will hopefully help. It boils down the submission guidelines and categorizes them into a handy checklist.
I really hate complaining about things. If you read through my posts, you’ll see I write almost entirely constructive information and tutorials. My goal with this blog is to build up, not to tear down. But I’ve had it with the Windows Phone 7 app submission process. It is severely broken. And Windows Phone 7 will be a failure as long as it is broken.
If I may submit into evidence the following non-fictional story:
A short time ago, I made an app submission for an app that uses GPS. I got a rejection notice under section 2.10.7 of the Windows Phone 7 Application Certification Requirements, which reads:
Your application must make a privacy policy available to users that informs them about how location data from the Location Service API is used and disclosed and the controls that users have over the use and sharing of location data.
I was a little frustrated. After all, the submission process takes a couple days and we were planning a nice healthy roll-out for this update, which is a pretty major one. Add to that the fact that our Location privacy policy is plainly visible and available via the terms of service, which the tester could find if they had looked at the “Legal URL” field that we provided as part of the application process.
But then I looked on the Marketplace and Microsoft doesn’t publish our Legal URL in the app page. “OK,” I said to myself, “it seems kind of stupid to ask for it if you’re not going to pass the information along, but whatever. Maybe what they mean is that the user should be able to find that information through the actual application itself.”
So I added that information to the application. 2 hours of work. Resubmit. 2 days of waiting. Rejected. This time, the rejection was because of section 5.6, which reads:
An application must include the application name, version information, and technical support contact information that are easily discoverable.
Um… OK. The version that is in the Marketplace doesn’t have that. Neither, for that matter, did the last version I submitted previous to this one. It’s not that adding that information is hard… it took 30-45 minutes. But my last error report didn’t mention that at all. I would have been happy to add it when I put the terms of service in. Is it really too much to ask that they mention both of those things at the same time so that, instead of 2 hours of work, 2 days of waiting, 30 minutes of work, 2 days of waiting I could just go ahead and do 3 hours of work at one time?
Fine. You guys suck. But this is a really important update so I put in the new information and submitted it.
Wait.
Rejected.
Why?
Under section 2.10.7, I need to provide privacy policy information about the Location data.
Microsoft… what the fuck? That shit is in there. I put it in 2 error reports ago. What kind of fucking monkeys are testing my app that they don’t read my “terms of service” when my “terms of service” are both required and accessible. Do they get paid on a per/rejection basis? I only ask because I pay you $20 on a per/rejection basis (free apps have a limited number of free submissions). And when I’ve paid you and met your dumb ass requirements and get rejected based on something that makes it obvious to me that your tester didn’t actually look at my application, I get pretty pissed.
“Why don’t you include detailed instructions into the “Tester Notes” section?” you may ask. Well, I did exactly that when I fixed the terms of service problem. But either the tester was unable to see my past “Tester Notes” or they ignored them. But, for that matter, why should I need to explain that my “terms of service” has the GPS privacy policy in it? Do I need to pollute my application with an explicit TextBlock saying “By the way, Mr or Mrs Tester, in case you don’t feel like looking at my ‘terms of service’ and you are unaware that the ‘terms of service’ is actually a really great place to put the GPS privacy policy, here is a specific button that takes you directly to that very section. Maybe after I do your fucking job for you, I can make you some coffee and get you a bagel.”
Perhaps I need to write a 150 page report, walking the tester through my application as if they were 5 years old, with screenshots of the application, pointing to different parts of the app, and explaining in vivid detail how I am abiding by each and every one of the guidelines. It’s not a huge deal, the guideline document is only 27 fucking pages long (over 2 times longer than Apple’s App Store Review Guidelines) with well over 100 rules that I need to follow, written in the finest legalese.
Do I sound ticked off? I’m pretty ticked off. Does this blog post sound unprofessional? This joke of an app submission process is unprofessional. I’ve always supported Microsoft as a business-friendly company. I love business software, in part because many of my friends work in environments where they use crappy software and I love to try to build good software for businesses that are too small for a major piece of software. Microsoft has always supplied the go-to technology to make that happen. But businesses don’t like waiting 2 days to fix a 30 minute problem. And they like it even less when it takes 2 additional days just to tell the tester that they screwed up, not us. And then pay for the privilege.
Let me be as clear as possible: Windows Phone 7 is the single best development platform for mobile that I’ve seen. Very fast, very easy, excellent tools. Simply amazing. But no one gives a crap if they can’t get their apps out. It’s all bullshit if no one can get to the end product the tools allow me to create. On that count, Microsoft, you aren’t just bad. You are the worst. By a large margin.