Apprentice – X/Y problem

Recently, I came across the XY problem

The XY problem is a communication problem encountered in help desk, technical support, software engineering, or customer service situations where the question is about an end user’s attempted solution (Y) rather than the root problem itself

The XY problem obscures the real issues and may even introduce secondary problems that lead to miscommunication, resource mismanagement, and sub-par solutions. The solution for the support personnel is to ask probing questions as to why the information is needed in order to identify the root problem X and redirect the end user away from an unproductive path of inquiry

My apprentice is terrible for this as he comes to me with vague problems without telling me what the context is. Many times he has asked me to diagnose errors and then I realise that he isn’t even configuring the correct thing, or someone has told him the hard method of doing something.

Example 1:

He was following some instructions to set up Online Requests. The “offline” version requires no configuration, but the Online version goes out to an API and requires configuration.

Apprentice: “I don’t have the users tab that step #6 refers to”

Me: “not sure why it says “bottom of the screen”. Isn’t it a large panel to the right?”

Apprentice: “Yes!”

Me: “So you ignored the large panel?”

Apprentice: “Nah, I carried on but still couldn’t create the Online Request”

First of all, it’s usually pretty vital not to skip steps when setting things up, because if it wasn’t a prerequisite – it wouldn’t be on the instructions. Also, the next steps involve configuring a URL, username and password which he never asked for.

Me: “but this is the X/Y problem again. You have a problem doing something a certain way, but we don’t know what the “something” is”

Apprentice: “The something is me wanting to make an Online Request but haven’t been told that it has to be done the way it does”

Me: The something isn’t the Online Request, but WHY you want to make an Online Request. Do you have a Bug to fix? a Test Case to run? What is the actual main objective?

Apprentice: I’ve been asked to look at a Bug yes, debug and provide the root cause of the issue and yet haven’t been able to recreate because I haven’t been able to create an Online Request

Me: What’s the issue?

Apprentice: Essentially, have been struggling to create a Online Request only to learn I probably couldn’t have done anyway lol

Me: We still don’t know the Bug number though.

He finally provides it. I read the bug description and realise that he doesn’t even need the API configured. He just needs the “offline” functionality which I could have shown him within seconds.

Instead, he spent an hour trying to find and follow instructions for the “online” functionality. Then I spend time giving him more background info on how we set up Online functionality. Then after asking him to keep giving me info, we find out that it’s all been a waste of time.

It definitely was the X/Y problem.

Example 2:

In this example, the Apprentice was following a wiki to set something up. However it had links to other resources and the servers that hosted them had been decommissioned. He wanted to know where they were migrated to so he could update the main wiki. I don’t know what Bug he wants to recreate, or how he found this wiki. There’s no context provided to me again, so I have to ask questions to get the info out of him.

Apprentice: Is there a definitive way of checking if docs like the below were migrated? And if so, is there a methodical way of checking where exactly said docs will have been migrated to pls? (sends broken link to the old Environment Store wiki he wants to find)

Me: why do you want to add Test Environment details to the Environment Store anyway? XY Problem

Apprentice: I don’t even know what you mean by that.

Me: I’m saying you have decided you need these docs but are blocked by the fact you can’t find them. But what is the actual problem you are trying to solve which led you to the conclusion that you need these docs? Maybe you don’t even need them.

Apprentice: I just thought I’d replace the docs links with the correct one
I’m not working on the actual item yet anyway

Me: What are you currently working on then?

Apprentice: After my Agile Development Training, I can work on my current bug fix. But if you’re sure I don’t need those docs, I’ll leave that be.

Me: I don’t know what document you have

Apprentice: So why are you so reluctant in my getting to the bottom of ensuring the docs have the right links?

Me: you were desperate to know the location of another wiki that I didn’t think you needed because it would be unlikely you would need to add an environment to the Environment Store. If you are trying to keep documentation up to date, then great, but I don’t even know what this documentation is that you have.

Apprentice: I’m not sure what another wiki has to do with this one, but if I’ve been given a doc, with a Bug Report, and told to follow that up, I’m obviously going to want to replace the broken links within that doc aren’t I mate.

Me: I don’t think you had told me much, that’s why I have to keep asking questions. You still haven’t told me what doc it is after all these questions🤷

Apprentice: I only wanted to replace the links for the next person (who may not have someone like you to help them). These are the docs I’ve been given for the Bug Report:
(sends documents)
I thought maybe I could get a headstart on the Environment setup but that link wouldn’t work

Me: you just need to ask your Testers if it is set up somewhere already

Apprentice: This is the Bug Report: (sends link to the Bug)

Me: this guide is written from a Tester’s point of view. You can just set this up on your machine and skip the Environment bit.

It’s really hard work isn’t it? All that back and forth repeatedly asking him what his objective was, and he just wanted to update a Wiki that he didn’t even need to read. (-‸ლ)

Example 3:

Apprentice: Is there an Installer on RDA?

Robert: RDA?

Apprentice: I’ve connected to the Server as I need to switch to a specific environment

Robert: Are you developing against the tester’s Server? Why do you need to switch from the Server?

Apprentice: I’ve only been asked to get myself connected so far. I tried to through the Installer on my own computer, but it wouldn’t and then Becky said I need to do it through the Server

Robert: What is she wanting you to do? I’m not sure i follow.

Apprentice: Don’t worry geeza, I’ve messaged her – but thank you of course.

Me: sounds like an XY problem again.

Sometimes I think people like Becky just say some words to the Apprentice, then he just says an interpretation of those words to us, and we are like 🤷🙃

Apprentice: RDA is my fault. I thought it was called Remote Desktop Application

Robert: Ah RDP

We still didn’t know what he actually wanted to do.

Conclusion

I think the X/Y Problem is a great thing to bear in mind when asking for help. Make sure you explain the root problem, then describe your attempted solution. You might not need help with your attempted solution, but help coming up with an alternate solution to fix the root problem.

Leave a comment