Slashdot Mirror


Ask Slashdot: How To Get Non-Developers To Send Meaningful Bug Reports?

DemonGenius writes "I'm in the midst of a major rollout of one of our primary internal applications at work and we have a beta version available for all the staff to use. The problem here is most of the staff don't know how to send reports meaningful enough to get us devs started on solving their problems without constant back and forth correspondence that wastes both developer time and theirs. Some common examples are: screenshots of the YSOD that don't include the page URL, scaled screenshots that are unreadable, the complaint that wants to be a bug report but is still just a complaint, etc. From the user's perspective, they just send an email, but that email registers in our tracking system. Any thoughts on how to get the non-devs sending us descriptive and/or meaningful reports? Does anyone here have an efficient and user-friendly bug tracking system/policy/standard at their workplace? How does it work?"

64 of 360 comments (clear)

  1. Make it send data to you by jhoegl · · Score: 5, Insightful

    Make your software send it...

    You can not teach the world, so why try?

    1. Re:Make it send data to you by Anonymous Coward · · Score: 5, Insightful

      Just gunna point out that I regularly have to post meaningful bug reports for a lot of the important software I (and probably you) use every day. I wouldn't say the people that made it failed.

      What they do get wrong is using the bug reporting systems like bugzilla. I look at the pages for those kinds of system and feel like I'm going to have a heart attack. And I'm the guy that could write it.

    2. Re:Make it send data to you by werdnapk · · Score: 5, Insightful

      Yes, a crash report can be sent by an application, but a non-crashing bug? If the bug isn't caught by tests (automated or manual) then the software won't know to send an issue like that, otherwise it wouldn't have been a bug in the first place.

    3. Re:Make it send data to you by Anonymous Coward · · Score: 4, Funny

      Make your software send it...
       

      I recommend call information, web history, and keystrokes. For more information check out carrieriq.com

    4. Re:Make it send data to you by Mr.+McGibby · · Score: 3, Insightful

      It's called a "report a bug" menu item that automatically compiles as much data as you can think of that might help, including making the user include a description of the bug. Also, there's nothing wrong with just going over to the coworkers desk and working it out. Or schedule a day with the users when you'll be in their "area" to address issues and watch for bugs.

      The reality is that most bugs *aren't* intermittent, and if you can fix all the bugs that aren't, then the intermittent ones tend to go away. The remaining stuff is tough to deal with, but certainly manageable.

      --
      Mad Software: Rantings on Developing So
    5. Re:Make it send data to you by corporateminion · · Score: 2
      Yup. Most applications are session oriented. At the point you encounter an error, you know all of the following crucial pieces of information:

      * the userid of the user (in case the error is role / security related)
      * the date/time of the error down to the second
      * the incoming request parameters that triggered the work that encountered your error
      * the error itself
      * which server executed the request (in case the code issue is server specific)

      The only thing missing is some information about the intent of the user at the time they submitted the request. In a Java app, you could do something like this:

      * have every command action in your application throw a special myappException
      * define the myappException by extending the standard Exception and add the above fields
      * catch that myAppException in your main event loop
      * when caught, display a form that prompts the user for any additional explanation they might want to supply
      * email the content of your myappException fields and their form-entered text to a dist list for your app support team

      The resulting email will point your app support team and developers directly to the proper point in your application logs to figure out what else may have contributed to the error without being sent on a wild goose chase based upon bad timestamp information or incomplete text of the error / exception encountered.

    6. Re:Make it send data to you by pthisis · · Score: 2

      That's fine and all, and what I was going to suggest, but what happens when it's intermittent? What the hell exactly do you log? Do you have access to core dumps?
      You log every single exception or, from a core dump, stack trace, and all the local variables at the time it happens. And as you accumulate them, you get a sense for what more global info you need (in OP's case he mentions URLs--if it's a web app, the complete incoming request, including form variables and cookies and session info, is a no-brainer).

      Then you delete old info yourself on your end, but keep a lot more than you think you'll need.

      Bugs that don't result in a crash are the harder ones; ideally you have some way to flag a user so that they get traced pretty fully, so if someone calls in a bug report you can turn on tracing for them and log a ton of crap. And it's often worth having the logs generally be a lot huger than you'd anticipate (even for general users who you haven't flagged for special debugging). But it's tougher than debugging the crashes, for sure.

      --
      rage, rage against the dying of the light
    7. Re:Make it send data to you by Narksos · · Score: 2, Funny

      Make your software send it...

      I recommend call information, web history, and keystrokes. For more information check out CarrierIQ
      (this time I'm logged in)

    8. Re:Make it send data to you by Slavik81 · · Score: 5, Funny

      Put 'report bug' as an option in the help menu. And make sure your bug-reporting mechanism is the best-tested portion of the entire piece of software.

    9. Re:Make it send data to you by Anonymous Coward · · Score: 2, Interesting

      Keep a circular buffer of the last 100 (or 1000) commands the user issued - that should give you a good idea of what they were doing when it crashed.

    10. Re:Make it send data to you by frisket · · Score: 4, Insightful
      Bug reporting systems aimed at developers should not be available to end users. They ask for (and expose) all kinds of irrelevant things that confuse the user.

      Instead, use a form that automatically picks up as much information as it can about the application, platform, and environment, and then asks what happened to make the user want to report it. Allow a screenshot to be attached (warning that unreadable shots can't be used). Don't try to gather information that the end user cannot be expected to know. By all means provide a link to a developer-oriented bug reporting system, for users who do know what they are doing, but for the end user Keep It Simple.

    11. Re:Make it send data to you by OeLeWaPpErKe · · Score: 4, Interesting

      Exactly. Make those people a browser extension that captures a screenshot, lets them paint a big red rectangle, a comment field, then annotates with things like all cookies for current page, browser history (on the current site), user email address, ...

      Then teach them "something goes wrong, push the button".

      And use a general exception handler that makes damn sure that the user id cookie is available inside the exception.

    12. Re:Make it send data to you by SQLGuru · · Score: 2

      How do you log a bug report on the bug reporting feature?!?!?! :D

      Actually, yes, provide them a button to submit bugs that grabs a lot of context data but lets them type in a description of what they were doing. The more you lead them, the better their input. In other words, don't give them a box that says "Additional comments" give them multiple boxes.
      What business function were you performing? What was your expected outcome? What other programs did you have running? Is this the first time you've experienced this problem? etc.

  2. Pray? by mirix · · Score: 3, Insightful

    Either that, or send them all to reeducation camps.

    Try not to stress about it, it's hopeless.

    --
    Sent from my PDP-11
    1. Re:Pray? by moderatorrater · · Score: 4, Insightful

      We've had success by making it very clear what information we need. We've given them the baseline information (username, account, environment, etc) that they have to send with every single bug, and we've made it clear that the steps they need to give us need to be something we can follow exactly and get the error every time.

      Obviously there are exceptions, and our user base includes people who are actually technical enough to exercise judgement over what we need, but for the most part it's just training and education. They can't know what information we need, so we need to tell them. It's a hard problem, but not unsolvable.

    2. Re:Pray? by rwven · · Score: 3, Interesting

      Definitely not hopeless. The main thing is that you have to set expectations. They will do what you let them do. If a bug report is inadequate, it's bounced with a request for more information, highlighting specifically what is needed.

      Our company has also instituted a layer of BA's that sit between the devs and the clients and have thankfully done a fantastic job of training the clients what they need to provide when they submit a bug report. Our BAs also know what we developers expect and nothing gets passed along to a dev until there's enough information to get started on it.

      It's also very important that if a client is just complaining, their complaint is either rejected due to lack of "whatever's missing" or it's turned into a new feature request.

      Even more important is letting the client know, with all due respect, that if they can't get you what you need, then they aren't going to get what they want. They need to understand that they can be wrong too, and all the arm waving and shouting in the world won't help if they don't give you what you need to do your job.

  3. More pressing question by Anonymous Coward · · Score: 5, Insightful

    A more pressing question is how to get developers to stop ignoring bug reports.

    1. Re:More pressing question by jhoegl · · Score: 3, Insightful

      I laughed, because its true.

      I have ignored bugs, not because it doesnt need to be addressed, but because it is low priority.

      This is just how things work.

    2. Re:More pressing question by WeirdAlchemy · · Score: 5, Insightful

      This. In my experience, dealing with bugs is very much a two-way street. If you want users to submit better bug reports, you need to be responsive to them so that they feel like they're getting something out of it. Imagine yourself as a user who takes the time to prepare a nice bug report, then waits a month to see any progress. How much time are you going to spend on your next bug report? Either way you behave, it ends up as a feedback loop -- your choice whether it's a positive of negative one.

    3. Re:More pressing question by Anonymous Coward · · Score: 2, Informative

      Sometimes bug reports are just feature requests. e.g.: a Thunderbird bug report is rapidly approaching its 10-year birthday because nobody at Mozilla thinks it's a bug, despite it operating contrary to most user expectations - and because it's behaving according to RFC definitions.

    4. Re:More pressing question by phantomfive · · Score: 2

      How do you get people (customers, bosses, etc._ to prioritize things like bug reports as anything other than "highest"?

      When I get in that kind of situation, where the managers aren't setting priorities (which happens, but is also a sign of a poorly run company), I try to do everything. When I can't, and someone comes with a new bug, I tell the person,

      "If I work on your project, it means Person Xs project will get delayed. Would you please go inform Person X of this fact?" If it is important enough to them, they will.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:More pressing question by DeBaas · · Score: 3, Interesting

      A more pressing question is how to get developers to stop ignoring bug reports.

      You'd be surprised how much proper bug reports have to do with developers solving your issues quickly in stead of ingore it.

      I'm a test manager and new testers in my team are trained to to follow strict rules for bug reporting. I find proper bug reports possibly more important deliverables then test plans and test reports.
      Since we started adhering to strict rules the developers started to handle our issues much faster as well as much better. Not only are they much more inclined to help you if you take the effort to make proper report, but also they have to spend _much_ less time on it. I've once calculated that a bad report can esaily cost more then 8 times the time it would have cost. And also they often otherwise fix the wrong thing. Why does it take so much more time? Because they first waste time to find out what's wrong, then they contact a designer, who does the same, wasting more time. Then they contact you again and as you probably logged it days or weeks ago, you do the same again. And before you know it, something that takes 30 minutes to fix caused 10 hours in work.
      If you're the only doing it right, you may see your developers picking yours up asap as the cherries.

      Basic rules for reporting:
      - always provide steps performed (bulleted!)
      - always provide expected result
      - always provide actual result + the base for expecting this (i.e. see design page x or this is not right because...).
      - if not plain obviuos explain why actual result is not correct
      - alway provide test data used (i.e. username, customername, results such as logs xml messages)

      If applicable (nearly always)
      - provide a screenshot

      NEVER:
      - never try to their work and tell the developer things like: the code is probably wrong so and so or the database should do this and that. Describe the behaviour, not the cause. The biggest problem with this is that they may take you seriously and could fix it in the wrong place. They are better suited to determine what the cause is for certain behaviour.

      --
      ---
  4. It's no secret, but underused by Anonymous Coward · · Score: 2, Interesting

    For Windows developers at least, there is one spectacular piece of the OS to make use of for bug reports. Mini-dumps. So awesome I wish Linux had an equivalent. Makes finding bugs much easier when you can load a mini-dump and break into it with a debugger. Best of all you don't have to host your own server to cache those dumps, Microsoft will do it for you as long as your copy of Visual Studio is legit.

  5. Listen by Moof123 · · Score: 4, Interesting

    Seriously, don't just keep blowing off the important user bugs for multiple release cycles. Once your bugs have been blown off for 6 months you stop submitting new ones.

    1. Re:Listen by Sez+Zero · · Score: 2

      Listen is great advice. You can really save yourself a lot of time by going to see the bug reporter in person. While not always practical, it does increase your visibility and karma with your cow-orkers.

  6. YSOD? by Anonymous Coward · · Score: 3, Informative

    So it is an ASP.NET app? Seriously, override application_error in the global.asax, and just send the emails with detailed error dumps and messages straight to you, in real time.

    1. Re:YSOD? by smileygladhands · · Score: 2

      So it is an ASP.NET app? Seriously, override application_error in the global.asax, and just send the emails with detailed error dumps and messages straight to you, in real time.

      Also, you should look into over-riding other "events" in the global.asax to help with general reporting of app usage while in alpha and beta phase. (also, do you guys have a senior developer, pretty ridiculous you have to ask slashdot this...)

    2. Re:YSOD? by ralphdaugherty · · Score: 2

      My god. We have some dufus complaining about lack of "meaningful" bug reports who bemoans lack of a sufficient YSOD screen capture.

      And he complains about others not being meaningful? You got to be kidding me. Google tells me the PC kiddies call this Yellow Screen of Death.

      This guy is complaining that when his program blows up the user it blew up on didn't do a good enough screen capture for him?

      wow. Slashdot must pay a bounty for dumb questions to drive traffic.

  7. Make the users fill in a form... by jet_silver · · Score: 3, Insightful

    and find out what you think might be wrong, instead of what is wrong.

    Engage the users. It's your problem, not theirs.

  8. Can't happen by YrWrstNtmr · · Score: 2

    General users cannot and will not grasp the finer points of how you need the information. About all you can do is
    1. Ask them to resend, but with specific directions
    or 2. some sort of screen sharing application - "Ok, show me exactly what you were doing when..."

  9. Re:You're assuming developers can send good bug... by Targen · · Score: 2

    This is a great point. The distinction that actually matters is not so much whether the bug reports are submitted by developers or lusers, but whether they're submitted by idiots. The fact that someone's been hired as a developer reduces the odds of idiocy w.r.t. software, but it's neither necessary nor sufficient, and a certain degree of optimism is required to assert even the correlation. Likewise, it's plausible that lusers are more likely than developers to be idiots about software, but exceptions exist.

    The real, general solution to this problem is, of course, to get rid of the idiots on both sides. The solution to this problem is left as an exercise for the reader.

  10. Have a template for them to fill out by mattack2 · · Score: 4, Informative

    I admittedly didn't read the full thread so far, and I know at least some of this was covered.

    But have either a web site or a bug reporting facility in your app filled with a template that the user can fill out. Something like:

    Brief description of problem:

    Steps to reproduce the problem:

    What you saw:
    include crash logs, snapshots, etc

    What you expected to see:

    Severity: Crash/UI/Performance/etc..

    Version of app/configuration info (filled in AUTOMATICALLY if possible).

    and of course do NOT make them fill in every single field (if it's not reproducible, they won't have exact steps.. but you might be able to narrow down on the problem with multiple different bug reports).

    Personally, I hate these templates in our bug system, and cmd-A, and type over them, since I already know what kind of info to put in.. but it is useful for regular users (or even developers, if there are special steps, like special debugging tools for your specific app/tools).

  11. increasing signal to noise with business triage by Anonymous Coward · · Score: 4, Insightful

    I've had success by educating a small group of business users to serve as triagers of bug reports - it's a lot easier to have them enforce your rules about what a validated bug looks like, particularly when you've armed them with a template to check against (example - without a screenshot including a URL, time of incident, browers/OS, the report gets sent right back at them) or have them validate the issue on their own before an engineer even looks at it. Eventually the business users get good enough to aggregate incidents together to locate true bugs and also can shoulder some of the prioritization burden. Remember that its in their rational best interest to care about software quality even if they can't speak about it in a sophisticated way.

    We have also posted examples of good bug reports and a wall of shame for bad ones - if you can get incentives together (or punish those that resist reeducation) that helps too.

    1. Re:increasing signal to noise with business triage by caitriona81 · · Score: 2

      This is great, and exactly what one organization I once worked for did. We had "business liaison" positions within every department, and "application owners", which were dual roles - these people were generally business users, with extra training so that they could work effectively to bridge between IT and the userbase. As part of these dual roles, they were included in the IT decisionmaking and change control process, so that they knew what was up before it happened, rather than finding out afterwards, and so that they could advocate for their department's needs ("You can't change payroll the day before we run it!" "Tuesday doesn't work because that's year end closing!")

      We also filtered everything IT through the helpdesk, from change controls, to access requests, to outage notification & paging, to trouble tickets and support requests. Problems which weren't reproducible were stopped there. Things that seemed to be user education would either be handled by the helpdesk, or assigned to the appropriate business liaison to see if there really was a problem and gather more details. Remote control sessions were utilized by the helpdesk to gather screenshots. Intermittent problems were weeded out unless they recurred, in which case the previous calls were referenced to verify that this really was recurring. We leveraged our engineering and operations teams for troubleshooting when appropriate to gather logs. Only after we had concrete, conclusive details of a problem did something get passed to developers - and when we did, it was handled quickly, because we'd gathered all the information efficiently and correctly.

      As a result, the developer teams were able to focus on fixing bugs, not triaging problems. The helpdesk always had ready access to all the relevant teams via phone, email, and instant messaging, and was well respected within them, because we were their filter, firewall, and front line, as well as their secretaries. (And we had the decisionmaking power as far as who got paged at 3am and who didn't!)

  12. Simple solution. by khasim · · Score: 4, Insightful

    From the question:

    I'm in the midst of a major rollout of one of our primary internal applications at work and we have a beta version available for all the staff to use.

    It's an internal app so just have the app log everything that the user does in that app.

    Then, when the user calls to say there is a problem, the dev team can pull the logs from that machine and recreate the exact sequence of events.

    And don't worry about the logs becoming too large. If the dev cannot figure that out then there are larger problems there.

    Also, have the app check the versions of the libraries and such in the OS.

  13. Re:Mod parent up! by Grishnakh · · Score: 2

    Wouldn't this depend a lot on the type of app, and also on the type of bugs you want information about?

    If it's a C++ app, then sure, having a built-in crash reporting mechanism shouldn't be that hard to build in. But what if it's a web app? Or some kind of low-level or embedded software?

    Judging by the question, it's probably not anything embedded, but web apps are pretty common these days, and crashing isn't even a problem with those, instead it's other problems. Or what if it's some kind of defect in the UI, or some other imperfection that users might complain about? Those wouldn't be handled by an automated bug reporter.

  14. Re:Add a bug-report button by cusco · · Score: 2

    Bingo. One of the main apps that I use has a 'Feedback' button that tech support has hijacked to have users send in bug reports. I'm sure the Marketing department is annoyed, but that just makes it better.

    --
    "Think about how stupid the average person is. Now, realise that half of them are dumber than that." - George Carlin
  15. cheapand dirty by Errosion · · Score: 2

    A system that I've used in the past, that sometimes works, would be to have the users fill out a "checklist" of items/questions when submitting the email. Trouble Url? Error recieved? Complaint or problem? Etc etc. If you know the user base and this is provided up front, it may help with some of that. But that assumes the checklist is viable for them to fill out as well as making the questions answerable and usable from both their and the developers perspective.

    --
    -= My spoon is too big =- Errosion
  16. Re:mark the bug "[closed] can not reproduce" by gtbritishskull · · Score: 3, Insightful

    Or they will just stop sending bug reports. If you are an ass to your users then they will weigh how much they care about the app working vs how much of a pain it is to deal with you. If the app is relatively unimportant to them or you are a very big ass then they will stop sending bug reports (and possibly stop using your app). In which case the dev loses.

  17. YSOD? by Mattwolf7 · · Score: 3, Insightful

    YSOD? Maybe you need to be more clear to your users. I don't know what YSOD is and I work in the industry... Make sure your users understand what a bug report is, and how it helps to give as much information as possible. Avoid using terms they won't understand, and assume they don't know what you want. Some users will try to help if you tell them what you need, but give up if they feel like they have to figure it out on their own.

  18. Re:Step 1: write fewer bugs by Dahamma · · Score: 2

    What a ridiculous comment. You are clearly not a software developer. I guess that's why you posted AC...

    Even the best programmers make mistakes - but they also write unit tests to find them and functional tests to find issues with systems/integration. Even given that, a developer would still need to thorougly test (in various automated or manual ways) their work to make sure there are no bugs in a complex system - and the point of QA is both that they have expertise in that area, and it's not worth higher paid developers' time to go through all of those tests themselves.

  19. "Report Bug" clicky by John+Hasler · · Score: 4, Insightful

    Give them a "Report bug" clicky that brings up a form for them to fill out and which automatically extracts relevant information.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    1. Re:"Report Bug" clicky by Anonymous Coward · · Score: 5, Funny

      Just make sure you ask a zillion questions about what version of video driver they have and if their path info is set correctly. You can never have too much information. Pop up long hexidecimal numbers numbers they have to enter, but can't copy or enter untill they close the popup. Make information that is only available to the developers mandatory.

    2. Re:"Report Bug" clicky by dj245 · · Score: 5, Informative

      I use Problem Steps Recorder on Windows 7 to report problems to my IT department. If you have a problem which occurs when you do a certain thing, it can be a great tool. Especially on web-based software or forms.
      Just type "PSR" into a command prompt or Start->run. It's a great tool.

      --
      Even those who arrange and design shrubberies are under considerable economic stress at this period in history.
    3. Re:"Report Bug" clicky by delinear · · Score: 2

      Weirdly the dev team never get any bug reports about the bug reporting tool not working.

    4. Re:"Report Bug" clicky by ianare · · Score: 2

      It's always useful to compare notes. Sometimes you get so used to doing things one way that you never stop and think about what it is you're really trying to accomplish.

    5. Re:"Report Bug" clicky by Grishnakh · · Score: 3, Insightful

      To be fair, software development is still a pretty new field, and is going through rapid changes. While we've been developing software since the 60s, a lot has changed since then; having an automated way of reporting crashes is actually fairly new, as it was impossible not very long ago before computers were networked or had much power. Of course, this isn't entirely true: we've had fairly powerful networked computers for some time, but they were very large and expensive computers that not that many people had access to; it wasn't until the mid 1990s (only 15 years ago) that these became commonplace for most people, with the rise of the PC. And of course, many lessons learned in the mainframe and other large computer space (like with UNIX machines) have either been slow to trickle over, or were outright re-invented with PCs because the two worlds started so differently.

      Also, a lot of people working in software development came from different fields and may not have that much formal education in it (I started in electrical engineering, for instance), and even those who did, may have gotten a rather poor education from what I'm reading about the way some colleges teach CompSci.

  20. coaching by KevMar · · Score: 5, Informative

    You have to coach them. They don't really understand what you need.

    When I get a email from someone about a bug, I go meet with them. I ask them all the questions I think may be relevant. What were they doing, how were they doing it. Were there any extra small steps or actions that jump out. Sometimes I explain why I'm asking certain questions and relate them back to previous bugs or issues.

    I think what you need is someone to be the go between. Get a tester to receive those emails, recreate the issue, then file a bug report. Don't allow the end user to file bug reports directly into your system. It will mess with your tracking data. A high number of worthless bug reports closed quickly may look good in the reports but does not help anyone.

    --
    Im a gamer, not a grammer major. This post is full of spelling and grammer mistakes.
  21. What have you done so far? by gratuitous_arp · · Score: 2

    You haven't told us anything about what you've done to educate the staff about writing up defects. Have you done anything? Unless they also work as technical QAs, they almost certainly have no idea what is expected in a defect report.

    I'm surprised that the primary problem doesn't have to do with listing ambiguous steps to reproduce a defect. For example, "I went to the page again" vs "I clicked the link again" vs "I closed the browser, reopened it, entered the URL, and then clicked the link on the page again."

    Of the 3 things you mentioned (#1: screenshots of the YSOD that don't include the page URL, #2: scaled screenshots that are unreadable, #3: the complaint that wants to be a bug report but is still just a complaint), the first two sound like *you* are complaining -- if they're not technical people and they don't know how your system works or what you need to see in order to diagnose a problem, then the first two issues should have been expected.

    How do you solve #1 and #2? If you're asking users to perform rudimentary QA, you're going to have to work with them. So, the solution to the first two problems is for you to realize you need to help out in these situations, explain what was wrong and what they can do to fix it next time. They don't know what you need in advance. Progress will be incremental but sure. And if they have to do all this in addition to their other tasks, then be nice while you're doing it.

    How do you solve #3? First, if people are complaining then make sure you're not overreacting to a real usability issue and ignoring it because it's not in the format you wanted. Then mail a template with a description field, a steps to reproduce field, an expected results field, and an actual results field, with a description of what each one is. Have a meeting explaining how to use it. Give examples, especially highlighting the need for detailed and unambiguous steps to reproduce.

    As bad as e-mail is for tracking issues, if this is a short term thing it may be the best approach. If you can see this going on, getting away from e-mail is a very good idea. Having recently been through a issue tracking system transition, getting everyone used to the new systems took some time even though it was handled very well (and not by me).

  22. Re:Hell, you'll be lucky if QA can do that by gratuitous_arp · · Score: 2

    Sometimes that's because the difference between a defect and a feature request is only identified by the requirements document that was never given to QA in the first place. But yeah, it happens sometimes.

  23. Re:You Don't by rwven · · Score: 2, Insightful

    That's a cop-out....and completely unrealistic.

    Finding a decent way to look through GB of logs to find something that happened a week ago is going to be MUCH more of a challenge than just arguing with any client to get the information you need. Not to mention, the only way you're going to trace any random malfunction back to any random source is if you have so much logging that half your computation time is spent managing your logging system and the needed disk writes....and let's not talk about the volume of log data THAT would produce.

    Logging can, and should, only do so much. You can't, and won't, catch everything with it.

  24. Re:Developers don't read bug reports anyway by spongman · · Score: 4, Insightful

    If the software is working the way its designers and architects intended for it to function, there's no bug.

    absolutely correct, unless you consider usability to be a feature.

    if you do, then every time a user is confused about your application, it's a bug. it may not be easy to fix. but if you don't consider it a bug, track it, prioritize it and potentially fix it, then you don't care about usability.

  25. Re:Mod parent up! by Dyolf+Knip · · Score: 5, Informative

    > If it's a C++ app, then sure, having a built-in crash reporting mechanism shouldn't be that hard to build in

    That's precisely what I do. The default exception handling routine sends an email to me with the app, version, username, machine id, error description, call stack, and any useful data that that I saw fit to include while coding. It has saved me mountains of pain over the years, and also fuels my reputation as the all-seeing eye.

    --
    Dyolf Knip
  26. Try Pavlov, Too by Bob9113 · · Score: 2

    I have seen several good ideas in this thread already. Here is another that may be useful.

    Try to find a way to associate the outcome the user is hoping for with the behavior that you are trying to engender. The user is hoping for their problem to be resolved quickly. The behavior you want to engender is a complete, yet concise, description of the problem and the steps to reproduce it. Make the connection between the former and the latter in the user's mind, and you'll have a self-motivated convert.

    When you get a clear and concise report, be sure to thank the submitter and help them realize that the clarity and brevity made it easier to solve the problem. They'll feel good about it, and you might even be one of the few on the tech side to have ever said, "thank you" to that particular end user. (we can be an ornery lot)

    When you get an incomplete or vague report and have to ask the user for more information, be sure to explain that a more clear bug report will make it easier for you to solve their problem quickly in the future. Make sure it comes across as, "I want to solve your problem more quickly in the future", not, "You did it wrong."

    When you get a rambling, nitpicky, or pure-complaint report, you'll have to use a bit more judgment to figure out how to guide the person for future reference, but you can usually find a way if you think about it.

    Really it's just programming -- most end users don't exactly have a complicated UI. Be nice, help them understand how satisfying your needs will benefit them, they'll do it. A nice bonus is that they'll be better end users for every subsequent support person, and they will feel good about doing it.

  27. Re:You Don't by shish · · Score: 4, Insightful

    Finding a decent way to look through GB of logs to find something that happened a week ago is going to be MUCH more of a challenge

    I'm running a website with 2-3k concurrent users; using web server access logs for read-only users, and a more detailed custom logging system for any interactions that any user makes, only generates ~100GB of logs per month. In the grand scheme of things, this is a tiny amount (grep from the command line is still perfectly adequate). For someone who can dedicate a day or two to writing a log browser then I'd expect the search to be even better, with graphs and automated anomaly reports and such (As someone who actually has done this, I'm not sure whether to find your comment of unrealism worrying or complimenting :P).

    --
    I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  28. Re:Mod parent up! by mhotchin · · Score: 2

    Here's one I've been using, it worked well for my purposes:
    http://www.codeproject.com/KB/debug/crash_report.aspx

  29. Re:Mod parent up! by FireFury03 · · Score: 2

    Same. You can only get so many "I clicked X and an error popped up" bug reports with no information beyond that quote in the bug body before you look to a real solution.

    You get information like "I clicked X"? The reports I get don't usually even tell me that much.

    I tend to get "the internet doesn't work" (I write and manage proxy and email systems). This can mean various things:
    1. The whole internet connection is down (why are you calling me? I'm not your ISP...)
    2. I can't access my webmail
    3. I can't send an email from my MUA
    4. Someone on the other side of the planet sent me an email literally 2 seconds ago and I haven't received it!!!!
    5. I can't access any web pages (any error messages that are appearing would be helpful... There's a big difference between "your account has been blocked" and "the proxy server has crashed")
    6. *no one* on site can access any web pages.
    7. I can't access a specific web page.
    etc.

    And inaccurate information also doesn't help - a reoccuring one I get is customers telling me that no one can access any web pages (maybe they think this makes it sound more urgent?) when actually it is one specific site that is down (usually because that third party website is actually down and therefore beyond my control, rather than a fault with the customer's systems).

    The ones that bring a smile to my face are the customers who phone me up ranting about how I haven't responded to an email they sent complaining that their internet connection was broken.... (this email usually pops into my inbox shortly after their internet connection is restored and their MTA flushes its queue out onto the internet)

  30. MadExcept! (your app should send bugreports) by Barryke · · Score: 2

    Have your application send bugreports.
    If your application is coded in Delphi there is MadExcept: http://madshi.net/madExceptDescription.htm

    Whenever my apps crash, hang/lockup or throw an exception, MadExcept steps in and the user will simply see:

    "This application had an unexpected error. Do you want to:"
    [SEND BUG REPORT] [CONTINUE] [CLOSE]

    When they chose send bug report, it asks for their name and email adress (minimum user incentive IMHO), asks what they where trying to do, and then asks them if the shown screenshot (of the apps state) may be send along. And i allow the user to edit the screenshot before sending it.

    Its free for non-commercial usage so you can test it yourself: it sells itself.

    But asking the right questions like http://askmebetter.com/ helps too.

    --
    Hivemind harvest in progress..
  31. Re:Mod parent up! by jonbryce · · Score: 2

    Bug reports are often "when I do this, it doesn't do what it is supposed to do (or what I would like it to do)" rather than crashes or error messages.

  32. Re:Mod parent up! by Smallpond · · Score: 5, Funny

    > If it's a C++ app, then sure, having a built-in crash reporting mechanism shouldn't be that hard to build in

    That's precisely what I do. The default exception handling routine sends an email to me with the app, version, username, machine id, error description, call stack, and any useful data that that I saw fit to include while coding. It has saved me mountains of pain over the years, and also fuels my reputation as the all-seeing eye.

    I do much the same but include credit card information, mother's maiden name and social security number.

  33. There are no bugs, there are no requirements by gr8_phk · · Score: 4, Insightful

    I've had enough of software folks looking for requirements and now good "bug reports". Users/Customers do not have requirements they have PROBLEMS. It is up to the developers to create tools that solve those problems. The user doesn't even know what's possible or easy or hard to implement, so they can't tell you what the requirements are. Same for bugs. The user can't tell you details about which internal parts of your code have a bug, they tell you (at best) what they were doing when something happened. They don't know a crash from accidentally closing a dialog box. The solution - especially for internally developed software - is to go visit the users and have a conversation. Talk to them. Understand how they view your software and you can then understand their explanation of what it did wrong. This will also give you insight into how to make it better. Stop expecting detailed bug reports and start understanding users.

    1. Re:There are no bugs, there are no requirements by nahdude812 · · Score: 2

      At first I thought you were going for funny. But your points seem serious, so I don't think so any longer.

      To a certain extent you have to know your users. Some classes of user are simply not of the mindset to give you requirements or meaningful bug reports. The responsibility to bridge this gap belongs to the project manager or some designee if the project is of sufficient scale. Sometimes for small projects, the developer is the project manager, so that's the developer's responsibility.

      Users/Customers do not have requirements they have PROBLEMS

      Right, and the PM first details those problems, then propose to the users possible solutions for those problems. Depending on what level of knowledge the users have about the type of system you're going to be creating, this is voiced to the users in various levels of technical detail. If the user is your grandmother trying to create an online space for her knitting group, you avoid jargon and talk about things at extremely high levels, "post pictures of their projects," "have a calendar of upcoming get-togethers and whose house it's at," etc. If the user is the CFO of your company, you talk about GL, profitability reports, and so forth. If the user is the head of operations you talk about data centers, topology maps, border routing, and stuff like that.

      This is why there's a difference between user requirements and technical requirements. User requirements are meaningful to the user, and technical requirements are meaningful to the developers. Users inform the user requirements, user requirements inform the technical requirements, and technical requirements inform the developers.

      Of course not every project is of a scope and scale for all of this to be formal. Sometimes it's ok to just sit down with the user, get some thoughts together, bang together a POC, and ask the user for feedback, polish, feedback, repeat. But the different types of requirements still exist, they're just in someone's head instead of on paper, and they may be a continuous work in progress. You can't create something new without knowing what it's supposed to do though.

      Likewise for bug reports. If you have incredibly intechnical users, you're never going to get a meaningful bug report from them. But you can educate them on what things would be useful. However, if they have a hard time with copy & paste, you're not going to get a stack trace or a screenshot from them. You do have to go sit with them to watch repro steps. There are products out there that can help with this though. For example, Atlassian Bonfire is a great way for users to submit bug details without having to be too technical. Or you can use something like Adobe Captivate and they can record a repro session (so you can watch the steps asynchronously).

      Almost all users can be educated in the ways of better bug reporting, however no user will EVER always give you all the details you need. Even developers can't always do that without more often than not providing too much detail. I have found that although bug reports from untechnical users are the least detailed, they're also usually the most flexible with their expectations (not always). You may have to do a lot more user babysitting to extract detail, but you probably will also have fewer feedback cycles on the back end. More technical users have a stronger idea of how things ought to work, and so you'll spend less time up front, but probably more time walking in a specific requirement.

    2. Re:There are no bugs, there are no requirements by Quirkz · · Score: 2
      I don't think you understand the scope of how bad bug reports can get. I've had some that are unintelligible. For instance one (and this was just a copy edit) where the entirety of the message was:

      you've got a place where it should be "an" but it says "the"

      No amount of understanding the user will allow me to figure out what the hell they're talking about, other than their giving me the context in which to find the line of text.

  34. You're right by bigtrike · · Score: 2

    We do this and it works great. We additionally send along some system data, such as last 5 actions, a URL (we're web based), and some other debug data.

    It has saved us endless hours in finding the exact conditions needed to replicate a problem so we can fix it.