PBKAC?

Yesterday, I read a mail sent to an email alias I’m on, where the author was asking why tool X wasn’t enabled on his latest build. The mail looked something like this (genericized to protect the innocent).

foo.service doesn’t appear to be working

Repro:

  1. I installed the build from <build_path>
  2. I verified the binaries existed <where they should exist>
  3. I queried to see if foo.service was running – it wasn’t
  4. I queried another way, and it didn’t show anything either
  5. When I run my tests, they fail and tell me that the service isn’t running
  6. I thought the service wasn’t started, so I tried starting it, but that also failed (error text: Failed to retrieve the fizzbaz from the bogatorium)

On first glance, it looks like there’s a real problem here. I try to avoid the “works on my machine” comments, but I thought it was strange that nobody else had seen this. I assumed the Problem was Between the Keyboard And the Chair (PBKAC).

At first, that seemed to be exactly the problem. You see, there is no foo.service. It’s actually called fizz.service, but it’s run as part of the foo toolset, so it’s an easy misunderstanding. If they would have queried for fizz.service, they would have seen it happily running.

Their tests failed because they had an invalid command line for their test (or more specifically, they specified an invalid address for the machine where they wanted to run the tests).

And then they got that strange error message attempting to start the service because they were attempting to restart a service that was already running (interesting, however, was that they did manage to try and start the fizz service rather than the foo service at this point.

Three errors, all different, yet relatively easy to see as symptoms of a common problem. Except they weren’t.

Absolutely, definitely, beyond a shadow of a doubt, PBKAC.

But maybe not. Actually, definitely not. The princess is in another castle – or between a different keyboard and chair.

PBKAC was definitely in play when the user tried to query for the wrong service. My service names above are silly, but our service names are actually nearly as confusing. You only make this mistake once, but it’s not too difficult to make.

When the tests failed, the error said the service wasn’t running. The error was 100% accurate (the service wasn’t running because the user connected to the wrong machine). What if, as a courtesy, that error message said something like, “The service isn’t running. Are you connected to a valid target machine”? I bet that would have set off a few light bulbs rather than generated more confusion.

That message about the fizzabaz and the bogatorium isn’t far from what the user actually saw. What they saw was again, a 100% accurate statement of what went wrong – it just gave no clue of what may have caused it.

Granted, these were internal tools, but that’s a horrible excuse to confuse someone. I bet I’ve seen hundreds (if not thousands) of error messages like this – but very few that offer even the tiniest bit of trouble shooting or diagnostic advice. It’s easy to blame the user when they do something “wrong” (or unexpected), but ultimately, it’s rarely their fault. And in the end, if they can’t do what they want to do with your software, they’ll take their business and money elsewhere.

And then, it’s your problem alone.

Similar Posts

  • Getting back to work

    I’m back working again – or I guess I should say je suis de retour. I took a few weeks off in southwestern France, one thing led to another, and I decided to stay a bit longer than I originally planned. I’m working remotely for a week or two before returning stateside. It’s nice to…

  • The Myth of the Myth of 10x

    I first heard of “10x” software development through the writings of Steve McConnell. Code Complete remains one of my favorite books about writing good software (The Pragmatic Programmer, Writing Solid Code, and The Clean Coder are also on that list). Steve McConnell’s rarely updated blog (titled 10x Software Development, contains the following tagline: Numerous studies…

  • |

    Five for Friday – May 4, 2018

    It’s Star Wars Day! Here’s what I found interesting this week. Quote I’m pondering (or quote within a quote, as it’s the authors of The Coaching Habit who are quoting Bernard Shaw): “Bernard Shaw put it succinctly when he said, “The single biggest problem with communication is the illusion that it has taken place.” Book…

  • What is Testing?

    Despite the lame title, this isn’t yet another post attempting to describe what testing is – it’s just something I wanted to share inspired by a small discussion last night (although if you browse the testing blogosphere, you’ll find a lot of good discussion on this topic lately). I went to Seth Eliot’s talk at…

  • The SDET Pendulum

    At a recent internal forum, I hosted a panel discussion comprised of “senior” level testers at Microsoft. The panel was evenly split between managers and non-managers and we took random questions from the audience on career paths in test. The testers in the panel had experience ranging from 11 to 24 years in test. Some…

One Comment

  1. I’ve just read that post after reading the “More Tester Exploration” post, https://angryweasel.com/blog/?p=619
    The funny thing is – that the 2nd part in the comment I left there – is quite relevant to this post, while they posts seem to be quite unrelated 🙂

    Lately I am a bit worried that we get to those “PBKAC” issues which suggest or reveal real issues just by fluke of luck – since we are too experienced in the Tech side to make the same mistakes a normal user would do…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.