The following was sent to me by a software developer who wishes to remain anonymous. Top reasons (not excuses) for why so many buggy apps are showing up in the AppStore-
* Only 5 months to write a complete app. with a completely new User Interface and using a completely new language (Objective-C/Cocoa) and hardware. (Applies to non-Mac devs.)
* Only 5 months to write a complete app. with a completely new User Interface with a different way of thinking (mobile vs desktop). (Applies to Mac devs.
* Palm and WM users are not used to the iPhone/Apple UI, which is more focused on drilling down for data, rather than on minimizing taps (Zen of Palm).
* Only 5 months to write a complete app (see above).....using dev tools (writing and testing) in beta with incomplete documentation. Maybe the apps passed testing on the beta tools, but with mass adoption, more bugs surfaced?
* No beta testing method available, especially since apps can only be installed via iTunes after paying (and store wasn't even open).
* A change in the way things have worked before on other mobile platforms:
(Note: the best devs don't follow some of the practices mentioned, but others do--everyone has probably run across some of these practices before.)
a) The "ship it and fix it quickly immediately following" model is no longer an option since the release queue for updates is no longer DIY and bottlenecked (if 500+ apps release 2-3 updates=1500 apps in review queue).
Old Way: Dev releases new app to ESD, ESD reviews and approves for sale. Dev releases point release updates on his own. Missed bugs in 1.0 are quickly fixed and everyone moves on.
New Way: Dev releases new app to Apple. Apple reviews and approves for sale. Dev finds bugs and releases point releases, but Apple must also review. Apple takes weeks to release bug fixes to store, and by that time several additional point releases are in the pipeline.
Result: Buggy apps were released and remain so for too long. Users freak (and devs too).
b) The “beta test in the wild” with a 1.0 version is no longer possible because trials have been eliminated.
Old way: Users trial app, find bugs, may report them, and figure it's the software wasn't quite ready and try again later. Users did not spend money, so no hard feelings.
New way: Users buy app, find bugs, get pissed, write bad reviews, write off the dev and spread the word.
Result: Dev loses rep and revenue because of paid buggy app (and probably won't get good feedback).
* The seductive lure of being in the AppStore on opening day, buggy or not. (And heck, I can always quickly release updates if needed, can't I??)
* Apple's desire to have a huge catalog on day one, so didn't reject too many apps (who even knows what the criteria is?) so buggy and UI-gly ones got in.
* Five days notice for final release to get in on opening day. (See above.) Maybe testing wasn't complete, but close? Hard to “wrap things up” and get out a well tested release in 5 days. (Devs and engineering types are apt to keep refining and adding features until the product is going out the door. Most devs probably kept writing until they got the official deadline to tie up loose ends in time for release and by then there wasn't enough time.)
* No direct customer communication
Old Way: Devs could contact customers directly to inform them of bugs, to release updates and delays, to explain how things work.
New Way: Devs have no idea who is buying (or reviewing) their apps. Users can find the dev (link is in iTunes), but requires effort.
Result: Devs have to find creative ways to communicate with customers.
* Some devs tried to release more than one app at a time on opening day. (Not enough resources.)
You can to chalk a lot up to an AppStore 1.0 release--from store functionality (sort/search/naming/reviewing), to the excitement of getting your app in on opening day (in whatever state it happened to be), to the logjam for releasing updates (and new software), to the problems with lack of proper beta testing, to the elimination of the shareware business model (trials), to the "newness" of the whole Apple-encouraged UI experience, to a whole lot of other market forces going on.
Things will settle in time. Both Apple and devs will make improvements:
Apple will release 1.1 and 1.2, etc. of the AppStore, they'll hire and train more people to review software or streamline the process. They'll tighten their standards. They'll allow for a better mechanism for users to communicate with devs for bug fixes (and feature requests). A beta testing method will appear, and maybe(?) even free trials. All in all, now that the AppStore is released, Apple will have to evaluate how an app store should properly run and make improvements.
Devs will adjust to the new business model, better understand the release process, and the testing tools will improve, so less buggy apps will be released. They will learn and discover better ways to represent the new UI. More complex and quality apps that take more development time will appear. The newness will wear off for the less serious developers and they'll quietly discontinue releasing apps.
Both sides have some work to do, but the experience can only improve in the upcoming months.