Friday, 22 July 2016

On Workarounds and Fixes

TLDR: fixes are important. when we have work to do, sometimes a workaround is more important


One of the skills I think we develop when working with software is a search for workarounds.

I was reminded of that this morning when the start button on Windows 10 refused to work.



The start menu would not appear in response to the windows key, nor could I click on it.




The search for a fix

A quick web search revealed that, surprisingly, this is an incredibly commonly experienced issue.

So common in fact that Microsoft released a troubleshooter software for it.

The software basically said: "You have a problem, we have not fixed it"

Sadly the software didn't tell me, how to fix it.

Under those circumstances I do what everyone does, and search for the new error message

`"Microsoft.Windows.ShellExperienceHost" and "Microsoft.Windows.Cortana" applications need to be installed correctly.`

Sadly, no real new information.

So rather than try all the different options mentioned for a fix, It seems as though the problem periodically gets fixed after an update, and periodically comes back.

I had already lost about 2 hours to fiddling with this nonsense.

I went off to look for a workaround. I'm leaving the 'fix' with Microsoft.

My first thought was a replacement start menu.

I try not to augment my operating system functionality too much in case a later upgrade breaks it.

But in this case, it almost seems like the 'start menu' isn't core to the operating system and is itself an augmentation which is prone to breakage. I couldn't see how I could make the situation worse.

Short story - I installed classic menu and had a replacement working start menu in a couple of minutes.

This also has the option to click through to the windows start menu (which currently doesn't work) so I'll be able to see if a later windows update fixes the problem.

Thoughts

  • The search for a fix is important.
  • A user shouldn't have to search for a fix.
  • If troubleshooting tools know what the problem is, then they should tell you how to fix them.
  • Searching for a fix can take a long time.
  • Workarounds are necessary to keep the work going.
  • Workarounds can add risk. Evaluate risk and make a decision.
  • Time box the search for a fix, then split the team (one part fix, and one part look for workarounds) (I'm delegating the fix to Microsoft, I'm finding the workaround)

I use workarounds a lot in testing. Particularly when I automate the application. I do end up coding around issues (where the fix is taking a long time) to allow the rest of the execution to reach blocked areas of the system and continue to add some value. I sometimes add code in my workaround to detect if the issue I'm working around is fixed and automatically report that by failing execution.

I'm fortunate that I had to learn this early when trying to load games from tape into my ZX Spectrum as a child. We learned to play the volume control and treble during game loading based on the audible feedback and visual feedback of the loading bars on the screen.

I think the search for workarounds is a set of skills that we develop over time.

Like all skills, the more we are conscious that we are using the skill. The more we can deliberately improve it.

This morning I spent too long in 'fix' mode. I had work to do, I should have prioritized the work around.

ProTip: I had to follow the "How to Reinstall the Microsoft Edge Browser" instructions here to get the start menu back (and edge browser, which I hadn't noticed was missing, because I never use it, but I wanted to try the Microsoft Edge WebDriver and couldn't figure out why it wasn't at least starting a browser, until I noticed that manually I couldn't start the browser!)

No comments:

Post a Comment