Adventures in Managing Application Data
Among its various provisions, Europe's General Data Protection Regulation (GDPR) includes the interesting requirement that companies and organizations that store data about users or customers must be ready, willing, and able to delete all data about individuals upon request. Shoot! If only it were that easy to deal with the data that piles up in many applications simply as a consequence of using them.
I'd like to make an impassioned plea, in fact, to UI designers everywhere that they put in the time, effort, and testing required to making it easy for users to manage (especially delete, clean up, or archive) older data that piles up over time. I have three examples I'd like to offer based on recent painful experience. Please feel free to chime in with your own comments or e-mails.
Case 1: Your Google Voice Is About to Expire
I signed up for a Google Voice account and associated phone number back in 2009. I haven't used it much in the past couple of years, so this morning I found an email in my inbox warning me that if I didn't visit that account in the next 30 days, it would be terminated and closed out.
Quite naturally, I jumped into the account, only to find it loaded up with old voicemail messages and call history information. Alas, the so-called "New Voice" interface insists that users delete or archive the data it stores — call history, voicemails, and text messages — on a one-at-a-time basis.
With hundreds of items in each category that I no longer wanted or needed, I knew there had to be a faster, more efficient way to clean out the dross. And indeed there is: If you click the vertical ellipsis in the left-hand toolbar in Google Voice, you'll find that Legacy Google Voice is an available option.
If you select that option, then you are shown a checkbox scheme for items you wish to manage (call history, text messages, and voicemails). This lets you dispose of them a page at a time, rather than one at a time. It ended up taking me 5 minutes to clear out the whole shebang, whereas it could've been an hour or more to do them one by one.
My profound thanks to Zubair Alexander, whose blog post Deleting Multiple Items in Google Voice History set me straight on this. It actually works for all the data that Google Voice stores, in fact.
Case 2: POP to IMAP Server Email Leftovers
Last year I switched from POP to IMAP email as a consequence of bundling e-mail into an Office 365 enterprise-level subscription, thanks to my Windows Insider MVP status. Little did I know that would leave thousands upon thousands of e-mail messages on the Spamarrest server from whence the vast majority of my inbound email comes to Exchange.
I have to visit Spamarrest every three days or so, and routinely delete between 3,000 and 5,000 emails (that's what's left after spam gets screened out, and after messages from senders not on my whitelist get shunted into an "unverified senders" folder).
Spamarrest does have a checkbox system, and will even let you aggregate messages into a single virtual page so you can chuck everything in one go. Here, alas, the issue is TCP timeout. When the background Spamarrest servers put together "big pages" (by experiment, I've determined this means pages with 1,200 or more constituent messages presented upon them) it takes so long to build them that TCP times out.
Then, instead of getting the big page later, you get a message that says, "Server took too long to respond. Please try again." For those interested in such things, this is HTTP error code 503. I've emailed Spamarrest and asked them to increase that interval, or to give users the options to create "big pages" with 900 messages each (far enough below the usual timeout threshold to prevent Internet congestion from timing them out when that occasionally occurs).
No response from them ... so far.
Case 3: E-mail on Your iPhone
Because I echo email to my iPhone, I have a problem on that device similar to what I've encountered in Spamarrest. I have to manually fire up e-mail every few days and clear out the incoming messages that I don't want to miss — should I need them on the phone — but that I usually read on my PC on the bigger screen with its real keyboard.
In iPhone mail, you can only select a screen's worth of email messages for deletion at one time. And it's a small screen, so that typically translates into 5 or 6 messages at a go. The interface is clunky enough that a missed touch or swipe can undo all the messages already selected for deletion, so I've found myself doing and redoing this chore on a pretty regular basis.
Case in point: I just looked at my iPhone and it has 617 e-mails on it. History teaches me it will take at least 15 minutes to clear this out. I've gotten in the habit of doing this while waiting for other things to happen: waiting on hold on the phone, waiting in line for a restaurant table, waiting for service at a professional office or the DMV, and so forth.
It's still a pain, however, and I don't like it. None of my research has turned up a workable means to clear out e-mail on the iPhone in bulk, so I'm resigned to doing this two or three times a week until further notice. Sigh.
An Impassioned Plea to Developers and UI Designers
You guys know if your app or application is bound to create or acquire large amounts of data (especially lots of data files, such a messages, e-mails, logs, report, and so forth). Please design in explicit tools for organizing, deleting, and archiving such items as part of the overall application or app.
As our world gets increasingly virtual and digital, this will only become more important to the millions upon millions of users who depend on such things to live their daily lives, get their work done, and keep up with their personal, professional, and civic responsibilities. Thanks for taking this seriously — and thanks even more, in advance, for doing something about it!
I think this is an important enough topic that it should be included in all software design, implementation, and testing/training/education. It's not just enough to create data. It's also essential to be able to manage, control, secure, and even destroy it — quickly, safely and efficiently.