By David Dick | Fellow
Have you noticed that smartphones are replacing cell phones and laptops? This trend is not likely to change and it is driving opportunities for designing and creating Web applications and mobile websites.
The next time you buy software, you might be renting or leasing it from a cloud provider. You will have fewer applications installed on your hard drive because you will access them from the cloud. Your PC will not require the storage capacity it did in the past because you will store data in a cloud. There will be lesser importance of your software being compatible with an operating system, and greater importance of compatibility with a service provider. This is the evolution in technology that cloud computing is taking us, and it’s changing the way we design software.
It’s In the Cloud
Cloud computing gives consumers the ability to access services located at a data center and connect to them over the Internet. (Consumers, not users, is the term used when writing about cloud services.) If you ever wondered, “What is the cloud?”, I can assure you that it is not a mystical place. The term cloud is a metaphor for the Internet and telephone networks. The cloud makes it possible to connect consumers to services. There is nothing new about this concept except the way we are using cloud computing.
The services provided in the cloud come from multiple organizations. These organizations are referred to as cloud providers. As a result, the cloud has multiple services provided by multiple cloud providers. A cloud provider strives to ensure high availability of its infrastructure. Some cloud providers have the building blocks to create services: software tools, database management systems, hardware, back-up services, and so on. Other cloud providers have suites of services such as accounting, customer relationship management, document management, and many more.
Types of Clouds
There is a cloud to fit the needs of every organization. The two most common types of clouds are public cloud and private cloud. When we access services, we do not think about whether the service is in a public or private cloud; we just know that it’s available and accessible.
Public Cloud: A public cloud provides Web services that are accessible to the public, such as hotels, airlines, email, weather, taxis, radio, social networks, conference services, or a personal calendar. The level of security in a public cloud is less restrictive than a private cloud. The cloud provider will need to segregate private data from public access and use anti-malware, intrusion detection, and authentication to ensure data integrity.
Private Cloud: A private cloud is restricted to one organization. The level of security is higher than a public cloud. Most often that organization is the single tenant. The types of services accessible from a private cloud are corporate email, enterprise-wide systems, calendars, content management systems, and database management systems.
As consumers of Web services, we are concerned about the integrity of data and privacy of our information. Security is enough for opponents to argue against cloud computing. The problem is very real and slowing the adoption of cloud computing. Ensuring integrity of data will mean employing measures to safeguard it. Start with strong passwords.
Usability of Web Applications
Web applications (also referred to as Web apps) allow consumers to connect to Web services from their smartphones. You may have noticed that for every one Web application, there are a dozen similar ones. Do you know what makes a well-designed Web application? Usability, that’s right. You probably have several Web applications on your smartphone and you know which ones you like best. With so many Web applications on the market, it’s easy to delete one from your smartphone and replace it with another. Usability plays a big role in what you keep or delete.
As organizations shift to cloud computing and designing applications for mobile devices, you might assist developers to design the user interface or design information on how to use the application. The following are a few tips for designing user-friendly Web applications:
- Design for compatibility. A mobile website needs to be compatible with any number of mobile device formats and maximum download speed. Use Cascading Style Sheets for the layout to ensure maximum compatibility. Avoid using tables because they do not appear well on a small screen. It is easiest if your site is coded using either XML or XHTML, with your character encoding set at UTF-8.
- Design simple forms. Forms can be difficult to use on a mobile device, so offer users radio buttons and lists for data entry. Reduce the number of screens a user passes through to complete a form. Forms should require the minimum amount of data input and should remember the data for the next time a user visits the site. Most mobile browsers don’t support plugins or extensions, so avoid them if you can. Avoid unnecessary graphics to maximize download speed.
- Design simple workflows. Reduce the number of steps consumers have to make to get to the information they are looking for. The sooner consumers have the information they need, the sooner they can make a decision or complete a transaction.
- Design to accommodate screen sizes. If you want to assure usability of your application, make sure that it automatically adjusts to any size screen. An application that is only compatible with one size of screen is not likely to win over users.
- Design for touch. If you design a user interface that relies on a physical keyboard, you are wasting your time. Mobile devices are driven by touchscreen keyboards and single buttons to execute a program. The user interface needs to be capable of multi-touch gestures such as tap, swipe, flick, double-tap, rotate, pinch, touch and drag, and touch and hold. Buttons should be labeled with the action it performs: back, submit, cancel, and arrows to move forward or backward.
- Design cross-platform applications. HTML5 is a potential candidate for cross-platform mobile applications. Many of the features of HTML5 have been built to run on smartphones and tablets.
- Design for the future. There’s a Web application that guides you on a three-dimensional tour through a museum and provides commentary on the objects you are viewing. There’s a Web application that can convert the spoken word into a document, email, or even translate it into another language. Want to know where your friends are and contact them with a press of a button?—there’s a Web app for that. Cloud computing makes it possible to create whatever you can imagine. Let your imagination be your guide.
The Rise of Virtual Personal Assistants
New to the smartphone is a Virtual Personal Assistant (VPA). A VPA uses artificial intelligence to reason and learn from experience. The wealth of connections available on the Internet makes it possible to create various types of VPAs that can take advantage of those connections. VPAs have a component that is a service much like other services in the cloud.
My smartphone interacts with the VPA component in the cloud. The VPA service in the cloud acts independently. My smartphone’s VPA does not need to know if a service is in a public cloud, a virtual private cloud, or supported by a legacy system at my company. The interaction is similar and there is no need to know where a service is physically located.
Usability will become a critical factor in the design of a VPA by having the ability to learn our accent, dialect, and colloquial slang; our preferences; and the accuracy of answers to questions. The VPA is especially useful for people who are blind or visually impaired by translating audible sounds into text and understanding basic commands and questions.
Summary
Cloud computing is a natural evolution of information technology. It opens up new opportunities to design and deliver services to consumers. It enables small businesses to get online quickly and sell their goods and services. Cloud computing makes it possible to connect to a myriad of Web services, and Web applications facilitate connectivity to those services.
The usability of Web applications will be the deciding factor of what’s successful and what’s not. If an application cannot satisfy the consumers’ needs—they will find a better product elsewhere. Innovation and imagination will drive what’s here today and gone tomorrow.
David Dick (davidjdick2000@yahoo.com) is a member of the Washington, DC Chapter and manager of the Usability and User Experience SIG. David is co-author of Web Services, Service-Oriented Architectures, and Cloud Computing: The Savvy Manager’s Guide. This article is based on the STC webinar, “How Cloud Computing is Changing the Way We Design Software.”
Recommended Reading
Marcotte, Ethan (25 May 2010). “Responsive Web Design.” Retrieved 13 May 2013 from http://alistapart.com/article/responsive-web-design.
Wroblewski, Luke (18 October 2011). “Organizing Mobile.” Retrieved 13 May 2013 from http://alistapart.com/article/organizing-mobile.
Barry, Douglas, and David Dick (2013). Web Services, Service-Oriented Architectures, and Cloud Computing: The Savvy Manager’s Guide. Waltham, MA: Morgan Kaufman.