It’s the end of the year and the holidays are almost upon us. The US recently celebrated Thanksgiving and with Christmas coming next, we look forward to giving and receiving gifts. Shamefully, I admit I sometimes pay more attention to the gifts I hope to receive.
Fortunately, most people knows it’s better to give than to receive. And I’m hoping those doing the giving are solutions developers who’ll give me the features I want to see in cloud apps.
Early users of such apps were very forgiving in their requirements for the cloud. They were happy accessing low cost business solutions without the need for extensive infrastructure. As the industry matures, many features we considered basic in pre-cloud environments will become the norm.
That’s what this post and the next is about. I’ll list specific features I want my cloud solution vendors to support in their apps. In my view, these features are needed before large corporate customers facing compliance and regulatory concerns integrate your solution into their business environments. And it’s those organizations with thousands of users who are the real money makers for cloud vendors—just ask salesforce.com and others who target this market.
The features I discuss are focused at the application level where I spend most of my time with clients. These features include:
- local backup of critical application data
- offline data viewing
- data integration tools
- advanced offline features and functionality
- audit trail of system and application changes
- mobile integration
Local Backup of Critical Application Data
I’m sure you regularly back up your customers’ data. Ensuring customer data integrity is a critical feature all cloud vendors must. But many clients find it hard to trust that their data will be available in the event of an incident. We’ve been burned before. We want the ability to download our data to a local backup in case your app or the internet is unavailable when we need it. Or to address an even worse case scenario—what if you go out of business?
What does that backup give us? I call it a “data insurance policy.” It lets us sleep well at night knowing we will never truly lose our data even if you lose your data center. It also ensures that we have access to our data if our internet connection goes down or your app is unavailable. We can still look up our client’s data that we store in your app using the latest backup version.
Finally, a local backup gives me the flexibility to transfer my business process to another vendor if you ever fail me. Maybe you want stronger handcuffs on your clients, but you earn more of my loyalty by delivering high quality service than making it costly for me to transfer to another service provider.
I’m realistic enough to understand that having a local backup does not mean that it will be restored in the event of a loss or error. I’d love to have that but I understand the complexity of designing cloud apps to support this. Most cloud vendors I’ve reviewed store the data for all customers in a collective data store with a customer ID controlling data segregation. Any single restore would potentially impact all customers’ data.
Offline Data Viewing
One of the key benefits provided by cloud apps is that users like me don’t have to install anything on their laptops to use the app’s features. All we need is an internet connection and a browser. That’s great from a system management and infrastructure perspective, but sometimes I want to see my critical data without having to jump on the internet to access your app or my data.
There are often times when I simply want to look up a client account number or some other piece of customer data. If I’m not in an area with internet access, I’m out of luck. I want a utility feature that downloads critical data to my local server or laptop that I can access at any time. You provided part of this with my local backup.
A key consideration here is to clearly communicate to users that offline viewing is truly “view only.” Changes cannot be made offline and then automatically reflected when they next log into the cloud app via the internet. Of course, this ignores the capability of HTML5 or other development techniques where you could build offline features with online integration at the next login, but I’d make that a premium feature. We’ll discuss it in the next post.
If you really want to get my attention, give me a utility feature that allows me to view my data in a user friendly format on my local platform. As a developer, you already know how to pull data out of a MySQL database and view data. But your customer doesn’t always know how to do this or have easy access to anyone that can do it for them. They’re dependent on you for application data.
Give customers a data extract wizard that pulls data from your app and puts it in a standard format such as CSV or Excel—something a typical business person can understand. You can save yourself a lot of development time by providing data in an Excel rather than custom report formats. Provide a standard layout and format of your application data, document the layout and data model in your Help section and let the customer tweak formatting in Excel.
Don’t forget that an offline data viewing utility is another chance for you to brand your app and remind customers how critical your app is to their operation. Place your brand on the form so they always remember it’s your app they’re using. Make it a premium feature to provide more focused reports with less branding. Internet customers have grown accustomed to seeing advertising on free apps and expect less in-your-face branding when they pay for a premium feature.
As organizations move more business processes to the cloud using multiple vendors, data is spread out and frequently becomes redundant. The more cloud vendors in use, the more places customer information is stored. Changing a customer address in one cloud app requires changing it in all apps.
Say that I want an API that lets me pull data from your app to use in my environment. I also want an API that lets me load changes to customer data via batch processing if necessary.
It would be nice if your app met all the requirements for supporting customers, but it’s unlikely. So we need other systems and applications to meet our needs. Provide a tool that enables us to link the data among these disparate systems so I don’t waste time manually synchronizing customer data.
I know it’s a fantasy request, but there are EDI standards for passing data among organizations in many industries. If my cloud vendor conformed to those standards or a similar type of standard, they would rate much higher when I evaluated them at the time of reviewing any RFP.
Learn PHP for free!
Make the leap into server-side programming with a comprehensive cover of PHP & MySQL.
RRP $11.95 Yours absolutely free
Placing specific service level agreements around any external access to your app’s data is critical. Clients should not be able to bombard your server with frequent data requests slowing down the responsiveness of the app for everybody. This is a premium feature and you would want to segment your premium clients to servers that can handle that load. Customers should pay more for this open data access and it could be a key point in your favor when courting new clients.
As with all industries, the cloud computing industry is maturing and more features will be considered basic and necessary for cloud vendors to maintain competitiveness with peers. There are several features I consider to be basic to any software application, cloud-based or otherwise. I anxiously await the day when all cloud solution providers agree with me. Until then, I’ll keep adding to my wish list.
In the next post, I’ll continue this discussion while expanding on what is neccessary for offline capabilities. We’ll also identify how cloud apps should support my need to audit changes to data to meet regulatory requirements. And we’ll discuss how mobile platforms should be integrated as their numbers grow and become the platform of choice for many organizations.
After considering my list, what do you wish your customers knew before they jumped on the cloud with your app? Is there a minimal set of expectations or education that you wish new clients had? Let me know how you would like to educate your customers prior to subscribing to reduce support time and raise customer service scores. I look forward to your feedback.
Although he doesn’t feel that “experienced,” Larry started working in the IT industry when it was cool to code IBM Assembler and NEAT/3 on punch cards and “cloud computing” meant the night shift was smoking something in the data center. Now as a consultant, he’s focused on building actionable IT strategies and delivering new technology to organizations large and small. He’s also an enthusiastic evangelist of the opportunities cloud computing brings to all organizations around the world.
Your First Year in Code
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Jump Start Git, 2nd Edition