Browsing Tag

apple music

Main

About Apple Music, edge cases, and functionality failures

This blog post link is going around today, in which the writer describes how he signed up for the Apple Music subscription service–and it promptly torched all local music files on his hard drive, including stuff he’d downloaded directly from artists’ websites, and stuff he’d recorded himself.

And I’m seeing a bunch of people on my social media feeds instantly leaping to the conclusion that iTunes and Apple must suck in general, and that OHNOEZ APPLE IS EVIL!!!! Which, no. That’s not a justified conclusion.

Because this isn’t an iTunes issue–I know a bunch of people who’ve told me that iTunes has caused them a bunch of headaches, but this isn’t actually iTunes’ fault. This is Apple Music’s fault.

For those of you who aren’t Apple users, Apple Music is not the same thing as iTunes. It’s their music streaming subscription service, akin to Pandora or Rhapsody. The entire idea here is supposed to be that it can give you access to all of your music on all your computers and devices. Nice idea in theory, but in actual practice, it’s an implementation nightmare–if you’re one of the people falling into the edge case that that blog post describes. A whole bunch of users of the service are never going to have this problem, since they’re probably buying their music from the iTunes store regardless, and that’s the userbase Apple’s trying to target here.

But if you do fall into that set of edge case users, if you’re somebody who frequently buys your music from other sources (say, directly from artists on Bandcamp), and even rarer, if you’re somebody who records your own music and you’ve got that on your computer along with stuff you’ve bought commercially… then yes, this is a huge problem.

What’s happened here is that this particular guy fell into that edge case, and it revealed that Apple’s failure to gracefully handle the problem is a spectacular failure indeed.

But at the end of the day this is still just a spectacular functionality failure, not a sign that OHNOEZ APPLE IS EVIL AND IS GOING TO STEAL MY MUSIC. And I’m not saying this just because I’m a generally loyal Apple user who thinks Apple can do no wrong. This is a spectacular failure and I’m absolutely willing to call it out as such–in no small part because I’m also a QA engineer in my day job, and I am now cringing at the thought of how their QA people must have reacted to this edge case before the service shipped.

What is an edge case? Let me explain by telling you a bit about how a software development cycle works. It goes kind of like this.

  1. The Powers that Be in a software company says to their engineers, “we want a feature that does X”.
  2. The engineering team goes “okay, we’ll do X!” They start doing some designs as to what the feature will look like, and drawing up a specification for the details of how the feature should work.
  3. There’s often some debate between designers, developers, and QA (quality assurance) as to what can and cannot be implemented to make the feature work as requested.
  4. A schedule is worked out as to how long it will take to do the work. A target release date is settled upon.
  5. Developers build the feature and start handing pieces of it off to QA so QA can test it and make sure it actually works as requested, according to the designs and specs.
  6. QA files a bunch of bugs about anything that’s broken.
  7. Development fixes those bugs.
  8. QA verifies that the reported bugs have been fixed.
  9. Repeat until the release date is achieved.

Now, sometimes QA will find issues with a feature that are problematic, but only for a small likely percentage of users. This is called an edge case.

When that happens, the team as a whole has to decide whether it’s appropriate to spend time fixing that edge case, even if QA has already said that this is going to be a problem for X number of users. Even if it’s a serious problem. If the problem only affects a small number of people, then some decisions have to get made as to how the team will proceed.

Sometimes they’ll say, “We can’t code a solution for this edge case because if we do, it’ll keep us from shipping on time and we’ll have to swing back around and fix it later”. And sometimes they do just that. But sometimes “later” never happens. Sometimes teams decide that they just can’t spare the time to fix that edge case, because they have other higher priority work they have to be doing and they don’t have enough people on the team to do everything.

Problem is, sometimes that edge case they didn’t fix will come back to bite its creators in the ass. This is one of those times.

Remember, folks: computer software is written by people. People are fallible. Therefore your software is, every so often, going to fuck up. Sometimes it’s going to fuck up spectacularly. This does not mean that the creators of that software are evil. It just means they’re people.

But at the same time, if a spectacular failure like this happens to you, you’re totally justified in being upset. It’s absolutely frustrating when you lose a bunch of your personal data like that. Certainly if I’d been in the shoes of the blogger I’m linking to above, I’d have been equally pissed off.

Just try to remember if you can that the people who made that software on your computer are still people just like you. They’re really, really not out to destroy your data personally. “Let’s destroy all our users’ data” really doesn’t work as a successful business plan, after all.

Also remember: for gods’ sakes, do backups. If you’re a Mac owner, Time Machine should already be doing this for you. If you’re a PC or Linux user, and you’re not already running regular backups, find out NOW how you can do so. And regardless of what kind of computer you use, if you have super-critical data like personal creative output you’ve done, do extra backups of that stuff.

For example, all of my writing work, in addition to getting backed up by Time Machine, lives on my Dropbox account so that I have backup copies of that not only separate from my computer, but also separate to my house network. If you’re a creative person of any stripe–artist, writer, musician, whatever–I strongly encourage you to consider similar strategies for your creative output.

For more on this, I direct y’all over to Dara’s post on this topic, too. She’s got some in-depth analysis of why Apple chose to implement the Music service this way, and how she and others at the time it rolled out complained about this very edge case. Worth reading if you want a more technical look at how this all works.