Have you ever found a bug in program? If so, did you try to tell the developer about it? If so, you have my sympathies.

The problem with developers (and I'm pointing a finger at myself here as well), is we like our routines. And the one routine we hate dealing with is bugs. To get around our hatred of dealing with bugs, we've created elaborate bug tracking systems whose common characteristic is they all have horrible user experiences. It takes special knowledge to create bugs in these systems and retrieve them.

Oh, and it takes a login and password.

A consumer has no patience for this. The train of thought goes like this: "You want me to create an account on your system, wait for the account to activate, create the bug, then go through several iterations of questions for you to tell me that it's 'User Error'"?

Um, no.

"Instead, I'm going to go into the Android Market (or Apple App Store) and give your app a 1-star review. Then, in the box where I give my review, I'm going to describe my bug, and press 'send'".

This happens thousands of times every day. Some consumers do it out of laziness or because they were raised by wolves.

And that's the problem that needs solving here. Market reviews are not an actual indicator of how good an app is. It's a constant battle between groups whose motives are not to tell other consumers about the quality of the app. There are developers who have fake accounts that they use to post positive reviews for crappy apps. There are users who give 1 star reviews because the author is from a country they hate. And there are users who are frustrated by bugs and use 1-star reviews to catch the developers attention.

What if it didn't have to be this way? At least take one of those warring parties out of the fray. Some consumers could be great testers if they had the ability to do so in a consistent and painless process. Instead of going to the developer site (which may not exist) and having to interact with bug tracking systems, consumers should have an easy bug feedback system built into the Android Market that doesn't take its toll on rating data.

OK, some 1-star reviews for bugs really are valid. If the app is so badly done that it needs to die, then it's perfectly valid for users to rate it so. But if you have an otherwise good app that has a minor problem (or user error), the developer should have a way to resolve valid customer issues without getting dinged in their ratings.

Google maintains the relationship at both ends, but doesn't provide the ability to connect the consumer to the developer. For bug reporting, that's exactly what needs to happen. I understand there are issues to solve to keep abuse from occurring, but that's a very solvable problem. Microsoft did this how many years ago with Dr. Watson? Granted, most Windows consumers didn't allow bugs to upload, but some did, and sometimes those logs actually helped find real bugs.

Here's my proposal. It's not meant to be an architectural thing because I really don't know how these systems are implemented, but just consider it an overview…

On the consumer side, modify the Android Market client to allow someone who has an app installed to submit a bug report just like they can submit a review. This is an opt-in experience and has to be enabled explicitly. The user experience would allow the consumer to free-edit some information on the bug such as how it was triggered.

The Android Market client would collect some information the developer needs, such as device type, OS level, and carrier. There are different levels of bugs, so it's going to be hard to come up with a strategy that gets useful diagnostic data. Some times it's nice to have kernel panic logs or stack traces, but it's going to be difficult getting that on a consumer device in a consistent manner. It might have to be enough for now to just let the consumer give a narrative.

On the web site, again allow consumers to submit bugs because often it's just easier to use a browser than a phone or tablet for writing a narrative. Because of the nature of the web, controls need to be put in place to prevent malicious submissions and abuse. Something that Google has done in other systems and understands how to do.

On the developer dashboard, the tool provides the ability to manage the bug queue. The developer can handle it through the dashboard or they can export it to their own system. The Google Code site already handles issue tracking. The Market backend system could generate a schema and XML with the data so clever developers can write import scripts for bugzilla or JIRA.

Here's the important part and where Google can use their ability as the middle man to make the connection. The consumer can opt to just submit the bug report and that's it. No identifiable information is presented unless they did it in their bug report. Or, they can choose to give their contact information (gmail address) to the developer. At this point, Google is out of the loop and it's up to the dev to start a conversation (or not) with the consumer. Or, they can opt to allow conversation with the developer, but they can revoke that connection at any time if it becomes abusive. This is with Google handling the conversation through a proxy system. Craigslist uses such a mechanism to provide some level of anonymity.

The developer would have the ability to perform automated screening or reject users as abusive. As a developer, I sometimes found certain users who couldn't be satisfied or were just difficult to work with. By opening this channel, Google would be creating a great opportunity for both parties, but it needs to ensure that abuse on either side can be dealt with easily and without fear of reprisal.

So here's the final link. The app submission system has the ability to connect bugs to a new release. The consumer who reported the bug in the first place gets a notification that their issue was addressed. With this connection, the developer has another chance to have a happy (and hopefully paying) customer.

I've talked to enough Android developers at conferences to know there is a need for a system such as this. Maybe it's already under development and it just hasn't been announced yet. It certainly needs refinement by people who understand the details of how the Market works, but consider it as a concept.