The old paradigms in software design have been on life support for a long time.
Who under 30 can relate to the metaphors many interfaces are based upon: desktops, folders, files, disk icons and cutting and pasting with scissors and glue brushes?
Who in their life has ever kept a file inside a folder, inside a folder, inside another folder? I can’t even imagine what that would look like.
The cloud has promised a lot, and certainly delivered some of it. It is often used as a marketing term to sum up a lot of disparate technologies and a business term to solve all your problems.
For this article, I’ll use the term ‘cloud’ to mean “distributed networks of systems”, encompassing computers, mobile devices and services that you may either have a permanent connection with, or check once in a while.
We’re talking about the kinds of services you probably use everyday, from GMail to Dropbox to Twitter and zillion others.
We will look at recommendations for the experience behind these services, as well as failures, success stories and examples of what could be in the not too distant future.
Hopefully, it might even inform your decisions for creating your own ‘cloud’ integrated services.
Lack of Feedback
The main failing across a lot of these services is the lack of user feedback. Users like to feel like they’re in control (though often in the case of cloud services, they aren’t).
With a lot of cloud providers, it’s usually obvious when things have gone right (i.e. it’s working), but often it’s not so clear when things have gone wrong.
Whether this is a lack of willingness to expose these problems to users, or a simple lack of knowledge on the part of the provider, I’m not sure. Perhaps a bit of both.
To address this, consider adding an ‘advanced mode’ to your services, that offers feedback that is a little more verbose, for those who want it.
Apple’s cloud offering, iCloud, is one of the worst offenders for this, frequently doing absolutely nothing and not informing you, spitting out meaningless error messages or — worse — wiping data.
One of my personal grievances with cloud services — especially those created by larger enterprises — is a lack of consistency or connectivity across those companies’ services.
For example: with Google Books, why can I not just have a folder in Google Drive that is automatically checked periodically to update my book library? Your company may be made up of different divisions, but that is not how the public perceives you.
Always try to resolve such inconsistencies.
Superseding the File system
Let’s circle back to where we began, and look at one of the many things that cloud services are effectively replacing — the file system.
While Android gives you limited access to do what you want in the underlying file system, I would doubt that very many pay much attention to it (except maybe in the growing market of Android media players).
iOS is infamous for actively obscuring the file system, and Windows Phone takes a similar tack.
While it’s yet to fully play-out on the desktop, the trend towards replacing local storage with cloud storage is certainly in full swing. Chrome OS has already done away with it.
Many consumers now require less inbuilt storage due to their increased reliance on cloud services/browsers — which in turn means that many are already ignoring the internals of their devices.
For the most part these services work well, with data flowing backwards and forwards when possible, and generally the most current versions of files waiting for you on other connected devices for when you need them.
If more than one person edits at once there can be problems, but this is file sharing, not version control.
In short, unless you have good reason to expose the entire file system, then just direct your users to what they need to access within your app, at least initially.
Changing the playing field
Another commonality amongst cloud services, is that of constant innovation and change.
However, people get used to things being a certain way, and while we, as technical and product people, love to try new things, it can be disconcerting to many.
Google handles this (generally) well, offering the option to try beta versions of services long before they switch them over for everyone. Consider offering beta versions of your software or services alongside your main offering and give people plenty of notice of impending changes.
Amazon (strange considering their initial business model) was one of the pioneering cloud companies, with its technology now powering a lot of other companies’ services as well.
But who can forget one of the earliest cloud slip-ups when copies of Orwell’s 1984 (Oh, sweet irony) vanished from people’s Kindle accounts.
In the physical world, people buy something and expect that they own it and are able to do what they want with it. (Many of us know that this is not actually a legal guarantee, but that’s another conversation entirely.)
This is increasingly not the case with cloud services, and technology makes it far easier for product owners to revoke digital property when their policies change or they are forced to by external parties.
Whatever your opinion on this new legal grey area is, at least offer a clear legal policy and notify customers when this may be likely to happen.
Location of files
The very nature of the cloud is that digital files are put somewhere — where they are is fairly inconsequential to you. This presents a problem to some audiences, a limited number, but enough to warrant a mention.
There are many organizations who — generally for funding or legal reasons — need to guarantee that their data is kept within national borders.
Whilst services like AWS allow you to choose which data centre you use, very few services that leverage AWS offer these options.
For those who require these options, perhaps consider offering a premium extra to allow clients to choose country options. There are also many who are utilizing data that is too sensitive to trust to a third party, which is also using another third party (etc. etc.).
I don’t necessarily have any concrete solutions to this problem, but it is something to think about.
Offer an offline option
One of the predominate problems with Cloud services is that they work when they’re connected to a network and quite often do very little when they’re not.
This can be very disconcerting to users, but is technically understandable. However, there are ways to make this lack of access more accommodating.
Firstly, if possible, have some form of offline access. Dropbox on a desktop computer has bridged that gap very well by maintaining a synchronised copy between devices and the cloud. On mobile devices it allows you to store certain files you many need access to as an offline copy.
Google also handles this well across some of it’s services (when using certain devices / browsers), automatically caching local copies of files in docs, music in play music etc. This can get complex, but try to offer some form of offline option for any cloud services you offer and make it easy to understand and use.
Cloud services, by their very nature, can be data intensive. This is less of a problem as data limits get larger and cheaper, but not everyone is on a large data plan or understands why they might need to be.
You should ensure that your apps and services are clear about the amount of data they may be using and when they are likely to do so. This information should be provided in a user-friendly and understandable way.
Equally, provide controls for setting options on what types of networks (mobile vs. wifi) your app will attempt to operate over, preferably broken down into sets of features or functionality that make sense to the average end user.
Following on from losing connectivity is the complete and utter failure of cloud services.
This is exacerbated by many services all using the same handful of data providers, so when one goes down, a lot of others go down. There’s not a lot that many service providers can do about in structure failures letting them down.
One recommendation for handling these unforeseen failures is to at least offer as helpful feedback as possible, maybe alongside alternative ways that may be able to access whatever it is you’re trying to access and any contact details that may be available.
Don’t put all your eggs in one basket.
Similarly, never use the same cloud provider for your core service and your support or communication service.
If that cloud provider goes down: not only is your product or service out in the cold, so are you and your customers. If they can’t even get in touch with you they are likely to use social media to find out what’s going on, which could result in a lot of bad feelings.
Instead of closing with criticisms and negatives, let’s not forget that most of the time this new wave of services provide amazing convenience and innovation.
Some services are fantastic examples of ideas ‘done right’. Google Music allows you to mix traditional ‘offline’ mp3s with ‘cloud’ playlists almost seamlessly across devices, and DropBox has almost redefined file sharing into a mainstream service that almost everybody understands.
But there are still improvements to be made, with many larger companies only just starting to understand the challenges poses and many others still not despite repeated efforts.
Developer Relations, Technical Writing and Editing, (Board) Game Design, Education, Explanation and always more to come. English/Australian living in Berlin, Herzlich Willkommen!
Jump Start Git, 2nd Edition
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers