Lessons from TapeOp

I had a short bit of travel this week, and got a bit of reading done on the flights. I love my kindle, and use it when in the air, but I also pack a magazine or two to read during takeoff and landing.

On the way home, I was catching up on a few issues of Tape Op. I haven’t done much with recording in years, but I still love to read about the process – both the creative and technical aspects are extremely interesting to me. Perhaps I was in a “testing mindset”, but a few of the articles screamed testing at me. I’m sort of tired of the “testing is like …” metaphors, so I won’t stretch this too far, but still felt the need to share.

The latest issue (#84) has an article by Garrett Haines on Building Troubleshooting Skills. Garrett founded Treelady Studios in Pittsburgh, and consistently has pragmatic advice for recording enthusiasts of all skill levels. As far as I know, the article isn’t available online, but I’ll summarize the main points with some testing comments and see where it goes.

Troubleshooting

One of the most important skills for a recording engineer is troubleshooting. If something goes wrong, you can either figure out what the problem is and fix it, or you can send the band home just when they’re hitting their groove. I’ve always enjoyed the troubleshooting aspect of testing. For me, finding the bug is secondary to isolating the bug. I don’t find the exact root cause (or causes), or offending line of code for every bug I find, but I do like to isolate the bug as much as possible.

Let’s say that I get to a login screen and it doesn’t work. I try again, ensuring that my test username and password are correct. I could enter a bug and be done with it, but there’s likely some more I can do (even from an entirely black box perspective). I’ll see if other username / password combinations work, I’ll try variances of case, and compare simple passwords with complex passwords** until I can get some more clues to what’s going on.

Get in the right frame of mind

When something goes wrong (all of a sudden the test code won’t run an half of the machines), don’t panic. I don’t often have days when everything goes perfectly, and I doubt you do to. One reaction is to freak out and claim the sky is falling, but it helps to expect that things may go wrong and just address those issues as they arise.

Recreate the problem

That’s weird – something isn’t working- the first thing to do is reproduce it. I love the example Garrett uses here. “Sometimes reproducing the problem  can lead to an immediate solution – e.g. lifting the mute on the ‘track that won’t play;”

I remember working on a product when a tester ran into a colleague’s office, panicked because none of the audio tests he was running were working. My colleague calmly walked to her office, and had her reproduce the problem. He looked at her computer for a moment and informed her that she didn’t have any speakers connected. This is an extreme (yet true) example, but sometimes looking at the problem – and thinking through how the success path should work is a huge help.

Isolate the root cause

Garrett has a few dozen examples of how to use this technique, and most relate to software testing. Tell me if some of the troubleshooting scenarios he lists are familiar to us in the testing world.

  • Intermittent problems – these are my favorite to debug and isolate (in software, at least)
  • Not understanding the studio configuration – as a tester, you have to have an idea of how the system works in order to isolate many (most?) issues.
  • Invest in diagnostic tools – I couldn’t survive as a tester without debuggers, network sniffers, process monitors and other tools that let me know what’s going on
  • Trace the thunder – this is the concept of thinking through the flow of how the scenario works. The path from microphone to mixer (which may go through one or more effects), is similar to the flow of logging into a system (keystrokes go to UI, which encrypts the credentials, then sends them to a server (perhaps checking a local cache first), etc.
  • Make sure you’ve had enough coffee and sugar, but don’t have so much that you’re twitchy – ‘nuff said.
  • Don’t be afraid to call for help if you’re in over your head – Good advice for anyone.

Repair the problem & test the solution

Not always necessary for a tester to do, but something you can try if it will confirm your hypothesis. Think your problem is due to a missing configuration file or reg key – add the file or setting and see if it fixes the problem. You’ll learn more about the system whether the solution works or not.

Learn from the experience

Garrett says, “Tell your studio mates and colleagues what you’ve learned. Post findings on some of the various discussion forums.” Can you think of better advice for testers?

There’s plenty more to learn, but I think you get the point. Software (like recording studios) are complex environments that break or malfunction – but a structured approach to troubleshooting will minimize downtime (and yak-shaving time) and you’ll make more progress in the long run.

Similar Posts

  • This week’s conference

    Every year, Microsoft’s Engineering Excellence group holds an internal conference – five days of talks, panels, booths and receptions (in other words, it’s just like any other conference, except only Microsoftees are invited). This is the first year since 2004 where I’ve been at the conference and not in the EE group. You’d think that…

  • 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: I installed the build from <build_path> I verified the binaries existed…

  • The truth about meetings

    I’ve been talking about meetings recently at work (I’m still giddy that have far fewer meetings to attend these days). I’ve had discussions about meetings for at least a decade, and they’re all about the same.People grumble about ineffective meetings, while others grumble about too many meetings. Some grumble about who should be in the…

  • What’s Your Super Power?

    When I’m interviewing experienced candidates (for any software role), one question I frequently ask is, “What’s your super power?” I like hearing answers like, “I can learn new things really quickly”, or “I’ve found over 1000 security bugs”, or even “I’m a batch file (or other language) wizard”. Recognizing super (or special) powers in yourself…

One Comment

  1. I agree with this part :

    “Perhaps I was in a “testing mindset”, but a few of the articles screamed testing at me. I’m sort of tired of the “testing is like …” metaphors, (…)”

    I have same feeling. When you read, read, talk or just listen there is so many things that definitely scream testing. On the other hand looking for testing metaphors everywhere is often exaggeration.

    As for troubleshooting for recording engineers I didn’t realize that we (as testers) have with them so much in common.

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.