I've been an iPhone developer since early June. Lots of people are
talking about what a pain it is to deal with Apple as an iPhone
developer, from the stifling NDA to the slow and capricious App Store
approval process. The thing that's bugging me the most right now is the
bug reporting and resolution process. Here's how it goes.
Step 1: Write some code. See that it fails.
Step 2: Spend hours trying to figure out what you did wrong. Look at the sparse documents and sample code. You can't ask questions of fellow developers because of the NDA, so it's all up to you. Eventually, you decide that the bug isn't your fault.
Step 3: Report the bug to Apple. Explain briefly that when you do X, Y happens, and Y is not good. Explain in some amount of detail so they know what you're talking about, but don't spend your entire day working on the report because surely someone else has already reported this bug.
Step 4: Wait. Budget at least a week. Meanwhile, you want your app to do this thing that doesn't work, so either put that feature on hold or try to find some other way to do something that accomplishes approximately the same thing.
Step 5: Get a piece of email from Apple saying that they need sample code that demonstrates the problem.
Step 6: You don't want to send them your entire app, because it's much more complex than what is needed to reproduce the problem and you've spent weeks or months on it and don't really like the idea of packing it up and shipping the whole thing to Apple. So, now you get to spend some ridiculous amount of time writing a minimally complex app that demostrates the problem. This takes anywhere from an hour to an entire day, possibly even more.
Step 7: Add the sample code to your bug report.
Step 8: Wait. Again with the waiting. By now, you've probably found some other way to do whatever isn't working, or yanked that feature, or put the whole app on hold to work on something else.
Step 9: A week or two later, you get another note from Apple saying that engineering looked at your bug report and sample code and decided they already have the bug in the database. So, now your bug is closed and you have no direct way to track the status of the other bug. Maybe the other bug was actually submitted after you reported the bug, but you're left out in the cold anyway.
Step 10: Don't bother waiting. Apple's not going to contact you again. No one will ever look at your bug report or tell you what happened with the issue.
Step 11: After you've gone through this process enough times that you have a list of these things, try sending email to Apple asking how those issues are going.
Step 12: Wait. I have no idea how long this step takes, or if I'll ever hear back. It's been two weeks since I sent email asking for an update.
Now I have more bugs I'd like to report, but frankly my enthusiasm is waning. Why should I spend hours or days of my time to report issues to Apple, just to have them trick me into writing sample code, dupe my bug, then never send me an update?
Apple should want these bug reports. The bugs are there, they are slowing down development of iPhone apps, and it's probably not just me. But this whole process is so broken, I'm probably not the only iPhone developer that is not reporting the bugs that are getting in my way.
Step 1: Write some code. See that it fails.
Step 2: Spend hours trying to figure out what you did wrong. Look at the sparse documents and sample code. You can't ask questions of fellow developers because of the NDA, so it's all up to you. Eventually, you decide that the bug isn't your fault.
Step 3: Report the bug to Apple. Explain briefly that when you do X, Y happens, and Y is not good. Explain in some amount of detail so they know what you're talking about, but don't spend your entire day working on the report because surely someone else has already reported this bug.
Step 4: Wait. Budget at least a week. Meanwhile, you want your app to do this thing that doesn't work, so either put that feature on hold or try to find some other way to do something that accomplishes approximately the same thing.
Step 5: Get a piece of email from Apple saying that they need sample code that demonstrates the problem.
Step 6: You don't want to send them your entire app, because it's much more complex than what is needed to reproduce the problem and you've spent weeks or months on it and don't really like the idea of packing it up and shipping the whole thing to Apple. So, now you get to spend some ridiculous amount of time writing a minimally complex app that demostrates the problem. This takes anywhere from an hour to an entire day, possibly even more.
Step 7: Add the sample code to your bug report.
Step 8: Wait. Again with the waiting. By now, you've probably found some other way to do whatever isn't working, or yanked that feature, or put the whole app on hold to work on something else.
Step 9: A week or two later, you get another note from Apple saying that engineering looked at your bug report and sample code and decided they already have the bug in the database. So, now your bug is closed and you have no direct way to track the status of the other bug. Maybe the other bug was actually submitted after you reported the bug, but you're left out in the cold anyway.
Step 10: Don't bother waiting. Apple's not going to contact you again. No one will ever look at your bug report or tell you what happened with the issue.
Step 11: After you've gone through this process enough times that you have a list of these things, try sending email to Apple asking how those issues are going.
Step 12: Wait. I have no idea how long this step takes, or if I'll ever hear back. It's been two weeks since I sent email asking for an update.
Now I have more bugs I'd like to report, but frankly my enthusiasm is waning. Why should I spend hours or days of my time to report issues to Apple, just to have them trick me into writing sample code, dupe my bug, then never send me an update?
Apple should want these bug reports. The bugs are there, they are slowing down development of iPhone apps, and it's probably not just me. But this whole process is so broken, I'm probably not the only iPhone developer that is not reporting the bugs that are getting in my way.