Key Requirements For the Cloud
Now that the holidays are behind us and we look forward to another year, we’re all back to work trying to build the next big app that will springboard our businesses in 2012. For me to consider your app to be in the big leagues, there are several features I think you should support. In my previous post, I began listing these features. They 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
As mentioned in the prior post, a local backup of critical data serves as a data insurance policy, ensuring I always have a copy of my data in case you go out of business or when the cloud is unavailable for any reason. Local access should also allow me to view the data when I’m offline and need to make business decisions. If I have access to the data, I should also be able to integrate that data in my environment using a web service you provide. This helps me eliminate redundant data and processing throughout my organization.
Advanced Offline Features
Now that you gave me a local copy of the data and let me view it or move it among my own applications, take it another step further and let me make changes to the data when offline. Rapid adoption of HTML5 and other design techniques make this possible and will make your app stand out from your competition.
Providing an offline version of your app could be a premium feature that improves customer satisfaction as well as generating more revenue for your business. Similar to offline viewing of data and reports, this is another opportunity to promote your brand when offline and remind customers how critical your app is to them. I’m not asking for full functionality when I’m offline, but the ability to perform routine maintenance or changes to customer data or other common functions would keep me productive regardless of connectivity. Once I log back in to your app, you can batch process the updates immediately before I start to use the online version of the app.
A key consideration here is to track conflicting changes and flag any made offline that would overlay those made by another user when they were online. Managing data changes against an audit log would ensure conflicting changes were identified. Before the change is committed, it can be approved by a data manager or administrative role specifically defined to referee these types of conflicts.
Audit Trails & Regulatory Compliance
Large enterprises and any publicly traded organization must comply with several requirements related to data management. These can be associated with the handling of personal data, financial record keeping or other regulatory concerns. When those organizations and their data are in the cloud you manage, they need assurance that you understand and address those requirements as well.
Details of those requirements typically include the need to track when key data fields change, who made the change and the content of the old and new values. New record insertions to the database as well as deletions are tracked in audit files. Omission of these features would cause an application to fail an IT audit that large organizations must periodically conduct. And that will keep large organizations from adopting your app into their environment.
IT audits are performed to ensure critical business processes are controlled and managed. The end result ensures critical business data maintains its integrity. Data changes must be approved using controlled processes and an audit trail reports those changes. Unknown or undocumented data changes are unacceptable. In many ways IT audits are similar to financial audits with the end result being the identification of either weaknesses in critical business processes supported by IT or outright violations of compliance requirements.
A significant amount of information is available identifying how to manage data and what internal controls are needed. The COBIT Framework is an excellent resource used internationally and explains how organizations should handle IT governance. While the COBIT framework may look overwhelming, one of the key features can be summed up by the need to keep audit records for critical data changes and log approvals.
In several consulting engagements, I observed clients rushing to the cloud to save money and improve IT solution delivery time. Internal business partners demanded rapid implementation timelines and often engaged cloud solution providers directly without an understanding of IT audit and compliance requirements. Critical business data was moved outside the organization’s control and in some cases co-mingled with the cloud solution provider’s other clients. That can be a very serious breach of compliance especially when dealing with sensitive data.
To address data audit requirements, solution developers should familiarize themselves with COBIT or other IT governance frameworks. Building audit trails and reporting into the application should be part of your feature list and you should highlight those features if your client is a large or publicly-traded organization.
As both the mobile and cloud computing industries evolve, it’s getting more difficult to distinguish between the two. Personally, I can’t imagine a cloud app that doesn’t have a mobile feature as part of its requirements. And a mobile app that doesn’t interact with the cloud just seems very “old school.” Even those angry birds connect to the cloud to share scores with the rest of the community of players.
Further evidence supporting the need to integrate mobile and cloud platforms is the rapid rise of mobile devices. Morgan Stanley published a mobile industry analysis report in late 2009 predicting that mobile devices connecting to the internet would outnumber desktop devices doing the same by 2015. Gartner Group believes this scenario will occur as early as next year!
The rapid migration to mobile devices for internet access means that cloud solutions must consider mobile platforms as a primary user interface for a major segment of their users. But how does this really impact the way developers build their cloud solutions?
In 2007 I managed the development of a salesforce.com-based app for a large client. One of the key pages used by field users was a customer information page displaying nearly all the data sales teams needed prior to a customer visit. The application was designed to efficiently make one call to the database for all relevant customer data and display it on one page. Data was not replicated or displayed on other pages since each page was, in general, a unique object to improve performance.
When iPads and iPhones were deployed to the same field sales teams in 2010, many of them began using those devices as their primary method of interaction. While the iPad worked for many, the iPhone interface was too small.
We recently enhanced the app by breaking up the customer data calls to specific types of data. The mobile version of the app has unique calls for each type of customer data (i.e. customer demographic, sales history, current orders) focusing on the most common types of functions performed by the sales team. Rather than pull all of the customer data, the calls are efficient and pull a smaller set of data to allow for the mobile environment. Pages are also designed specifically to display effectively on the mobile device by being platform aware.
The bottom line is that the app works on any platform, but has features specifically designed for mobile devices. Your customers expect you to support them on all devices and not penalize them (i.e. slower performance on mobile device due to large data objects) for using mobile devices.
Our industry is maturing so rapidly it’s difficult to predict what the next big feature will be. But history has a tendency to repeat itself. The lessons learned in the past as we moved from mainframes to client/server and then to the early web will be applied more rapidly in the cloud. That’s called progress.
What features are you implementing in your cloud app to make it stand out from your competition? Are there other requirements you think we need to adopt in order to improve the quality of the cloud? I’d like to hear your feedback and discuss it in another post. Thanks!
Cloud Blocks Image via Shutterstock