Design Great Tablet Apps By Making Users Forget They’re On A Tablet

Originally posted by Algonquin Studios CEO, Steven Raines, on January 25, 2012 on his blog.

According to Pew Internet, tablet ownership doubled over the 2011 holiday season, with nearly 20% of adult Americans now owning tablet computers. In combination with widespread high-speed wireless Internet service, the market for business-to-business applications for these tablets is set for explosive growth. Targeted sales applications represent a signficant area for innovation since videos, schematics, product specifications, and other documents can be easily transported and presented – either directly on the tablet or to on-site monitors or projectors via optional cables. In essence, it’s a sales manager’s dream come true… especially for organizations that have highly structured sales processes backed by well researched tools.

In a recent brainstorming session with a client, I was asked what features of tablets should be incorporated in the design of this kind of application to really make it stand above other apps or a traditional web site displayed on the tablet (when I say “tablet” I mean the iPad style device with “Apps” not simply a computer without a keyboard.) The client’s question got me thinking about where the real value in tablets lies and how that translates to design. To evaluate this, we have to think first about what it is that makes a tablet special. More often than not, tablets are marketed as being light, easy to use computers. But they aren’t the same as the computers we use for business.

The core value of the tablet is only its form-factor, portability, and battery life. Thanks to solid state memory tablets are light-weight. The limited scope of applications and single-tasking (or more appropriately “serial-tasking”) allow much longer run-times than a laptop. Tablets allow us to have a “book” with a whole library of information stored in something that you can hold in one hand. But to achieve this we give up a lot of great things from the world of PCs and laptops. On tablets:

  • peripherals are limited;
  • virtual keyboards require as many as three clicks to get to essential characters like the equal sign;
  • meta-applications (like plug-ins for the OS’s file manager) aren’t applied to every app that could take advantage of them;
  • devices have small screen sizes;
  • precision control either does not exist (on capacitive touch devices like the iPad) or requires a stylus that is easy to lose and hard to use.

These factors combine with the nature of the applications we’ve come to expect on these devices to create an experience that is wholly unlike the things that make PCs great, such as:

  • True multitasking;
  • dragging and dropping between applications;
  • fine control over drawing / selection (for photo manipulation, CAD, or design work;)
  • context-sensitive menuing;
  • comparing documents side-by-side and referencing the Internet while working on documents.

Since most netbooks and the new “ultrabooks” similarly address portability and battery life nearly as well as tablets but have all the features of PCs, form factor / user interface are all that remain (outside of some hardware that most tablets now have standard like the accelerometer, GPS, camera, and compass.) to differentiate tablets from other computers. Tablet interfaces are significantly less feature rich than even the most basic Mac or Windows netbook. But of course, it IS the form factor and interface that is the whole point of the tablet and that is where the way we think about application design really changes.

Good design for tablets isn’t about taking advantage of some special features only tablets have – it is about providing users with a way to achieve the workflows they have become accustomed to on their PCs while using the tablet. It isn’t about something new, but reinventing something old and something lost in the translation to the new platform. Take Apple’s email interface built into iOS: I can’t count the number of new iPad owners who have complained to me that they could not simply multi-select messages to be moved or deleted. Of course you CAN… but not how you’d expect (instead of dragging to select messages or holding SHIFT and selecting, users click a button and get radio buttons to select multiple messages and instead of dragging to move messages to a folder, users select the action to move and pick the folder.) Apple has been forced to provide an alternate way to achieve something that the interface doesn’t accommodate in the expected fashion.

So the obvious challenge faced by designers of tablet applications is that the expectations left over from the PC experience are many. But a more daunting challenge is that very few new conventions have been set in the tablet world. Without a standard way of replicating the workflows of the desktop, designers are forced to try different things and until a particular way of interacting with apps to resolve a workflow issue becomes dominant, users will be unable to simply “pick up” an application based on prior experience. This prevents designers from relying on user expectations the way they do on a desktop and, to a lesser degree, the web and extends the design process. It also means that application developers will be forced to eventually modify applications to accommodate the dominant convention once it emerges and this refactoring means fewer resources will be available to develop new features for these applications.

The Holy Grail of tablet design is, of course, to develop a way of working that is so intuitive and easy that it makes the transition back to the world of the PC… assuming we still have PCs by then.


Top 10 Reasons Why My Team and I Keep Coming Back to Work

Everybody has reasons for showing up to work everyday besides the nice piece of paper you receive every other week with a bunch of numbers on it, otherwise known as a paycheck. I recently spoke with my fellow Software Support team members and, together, we came up with a list of our Top Ten reasons why we keep coming back:

  1. We actually enjoy the people that we work with! We don’t just sit here and stare at our computer screens waiting for a phone call or email to come in; we interact with our coworkers to make our work environment enjoyable. Of course, we have to balance our interactions well, in order to make sure we get all of our work done in a timely manner and that all our clients are happy but we have a good time at work. That’s really important.
  2. If we don’t know the answer to a question, we can ask anybody that we feel might, even if that person is the CEO or President of the company. Having access to people at all levels of the company not only makes us feel like we’re part of a real team, it also means we’re always learning and growing.
  3. We love receiving phone calls from our clients, who are a joy to talk to and who always brighten our day.
  4. We actually enjoy digging into reported issues, figuring out why they occurred so that they can be prevented in the future. Knowing that the work we do helps make a better product for our clients is incredibly rewarding, in and of itself!
  5. That one Friday a month where we have a F.E.A.S.T. of food.
  6. We love helping to develop the new features that will make the lives of our clients easier and enable them to work more efficiently.
  7. And, we get a sneak peak at all those new features once they’re ready to be rolled out to clients! Part of our job is to test those new features, making sure they work as designed and that they don’t have adverse effects on existing items in current applications.
  8. We love the feeling we get when we’ve helped a client who called in with a support issue and she hangs up happy, because we were able to solve the issue and send her on her way. Even when the solution isn’t an immediate one, knowing that we have a team of support reps and developers looking into the issue helps us feel confident that we’ll be able to follow up with more information and the client will be happy very soon!
  9. We enjoy contributing to the Knowledge Base Articles we use when we come across questions or issues that we haven’t dealt with before. Chances are, somebody on our team has walked through the problem before and the Knowledge Base provides us another option to get to the root of the issue and help our clients solve it.
  10. The candy machine that sits on my desk. It’s just what it sounds like-people stop by my desk throughout the day feeding their pennies (or other change) into the machine and getting back a few pieces of candy to make them smile. I think candy machines make everybody feel like a little kid who just hit the jackpot.

What are the greatest perks about your job or the company you work for?

Time For a Redesign? Get to Know Your Users First.

There are several good reasons why you might decide to redesign your web site and Steve Kiernan II was nice enough to detail them in an excellent blog post recently. To paraphrase Steve’s points, it really comes down to this: if your current web site isn’t effective, it’s time to redesign.

But how do you determine if your site is effective? Start by understanding your users.

First and foremost, your new design needs to cater to your users. Understanding who is using your current web site and how they are interacting with your content is crucial. Once you understand why users are coming to your site (or why they aren’t) and what they’re looking for, you’ll be able to make decisions about what content should be pushed to the forefront and drive the redesign.

Web Site Reporting

You can use tools like Google Analytics to learn more about your user base, including where they’re located geographically, what technology they’re using, and how they’re getting to the site. You can also see what pages your customers are viewing and how they’re engaging with your content.

Customer Polling

You can reach out to your clients via email, phone, or postal mail, or you can use services like SurveyMonkey or Wufoo to set up questionnaires to gather user demographics and feedback. This will allow you to ask targeted questions and gather feedback from actual users. To capture feedback from the widest audience, you should use a variety of methods to communicate with your customers.

User Groups

To go a step further, you can set up user groups and watch how customers interact with your web site. Ask users to complete common tasks (i.e. find the company phone number, add a t-shirt to the shopping cart, etc.) and observe how they complete them. This will allow you to see what tasks users struggle with and where the web site suffers (or flourishes). You’ll also have a captive audience so you’ll be able to ask questions and gather feedback.

So, now you understand your users. What’s next?

Review Business Objectives

Once you gathered that information, you’ll need to answer two very important questions:

#1 – Do the business objectives for your site align with actual user engagement?

If they do, then your redesign should focus on improving what you’re already doing well and refreshing visuals as needed.

If they don’t, then your redesign should push users to the content that will help you achieve those goals while still allowing users to efficiently access the content that they’re looking for.

For example, let’s say you sell t-shirts and sneakers. You earn more money on sneakers, but you sell a lot more t-shirts. As a result, you may want to push sneakers in your redesign, but you shouldn’t make buying t-shirts difficult. Selling t-shirts should simply be the second priority of the new design.

#2 – Do your actual users align with your target audience?

If they do, then you’re in good shape. Your redesign can focus on small improvements and new graphics and you don’t need to make sweeping changes.

If they don’t, then your new design should cater to the desired audience, but still be welcoming and accessible to the other users.

Let’s say you’ve got a site dedicated to promoting your region or city as a vacation destination and you offer information about local attractions and events that visitors may be interested in. But, Analytics shows that a large segment of your site traffic actually comes from area residents looking for exciting things to do on the weekends. When planning your redesign, you could consider adding a “staycation” section designed specifically with these people in mind. While the main focus of your site can be attracting out of town guests, you’d still be able to offer the valuable information so many people are looking to your site to provide.

Determine Priority Content and Design the Site Around It

Simply put, you need to determine what content is most important and build the design (especially the Home page) around that content. See my blog post on this very subject for additional information.

Get Additional Feedback

Once you’ve gone through the design phase, put it in front of your users and get their feedback. Before you commit to the costs of development, you’ll want to make sure that current users won’t have trouble interacting with the new design.

Setting up a small focus group, rather than a large pool of users, may give you the most valuable feedback because you’ll be able to see individual reactions and speak to users one-on-one.

Continue Monitoring

It’s easy to think your project is complete once your new site live, but remember-ongoing user satisfaction is the true measure of success for any redesign. That’s why it’s important that you continue to monitor user interaction even after your new site has launched. You’ll need to make sure that users are still able to accomplish their objectives on the site and determine the effectiveness of new initiatives.

How Can I Help You?

Let’s say you’re in the middle of a project and you encounter a problem with one of the tools you use or services you rely on to get things done. Although it’s easy to immediately lose your temper, remember that there’s probably a team of highly-trained, friendly people waiting to help you, just a phone call away. Of course, talking to “customer service” can be painful in and of itself and so, I present you with some tips to ensure both you and your support representative are smiling when your phone call is over:

1. Remember – The Issue You’re Experiencing Is Probably Not The Fault Of The Person You’re Speaking With

This can be easy to forget when frustration abounds. It’s something everyone does – we hit our boiling point and start looking for someone to blame – but the first person to pick up the phone often unfairly takes the blunt of your rage. Take a step back – did this person personally decide to cause you any grief? Probably not. So, before losing it on the person asking “How can I help you?” keep in mind that he just offered his assistance. Which leads to my second tip…

2. Put Yourself In Their Shoes

It’s important to remember that, at the other end of the line, the person trying to deal with your current issue actually receives phone calls from frustrated, upset customers on a regular basis. Possibly all day long. Imagine for a moment that you’ve been put in his position – would you rather be speaking with a calm, patient customer or an angry, short-tempered one? It’s much less stressful for everyone involved if you can keep your cool at all times. Yelling at your support rep probably won’t move things along any quicker.

3. Give As Much Detail As Possible About The Problem You’re Experiencing

Sure, you might not know what’s causing the problem or even what the problem actually is, but you’re not doing anyone a favor by saying “It’s not working” and leaving it at that. Let the person trying to assist you know what you were doing when the difficulty began. Is this the first time you’ve tried to use the product or service? Or were you, perhaps, interacting with the product in a new or unusual way? Remember, the person on the other end of the line can’t read your mind (but rest assured, we’re working on it!), and while the odds are fairly good that the support representative you’re dealing with has resolved that issue in the past for another customer, the more clues he can get about the issue, the quicker he can help you resolve the problem and get you off the phone and on your way to success.

4. Let The Support Rep Know How You Feel

When you’re nearing the end of the call, give a hint as to how satisfied you are. Odds are,  the person you’ve been speaking to really does want you to be frustration-free so, if you’re happy and everything is looking up, tell him that you appreciate his help and that you’ll give a call back if you have any more problems. On the flip-side, if your problem hasn’t been resolved, or you feel like the support service didn’t meet your needs, make it known. It’s his job to put your mind at ease, even if it means transferring you to someone more knowledgeable.

5. Ask About Changes You’d Like To See

Most products aren’t perfect and there’s always room for improvement. If you’ve got a wonderful idea about how to make an existing product more beneficial for you and the others using it, let the support rep know. While he may not be directly responsible for approving or implementing changes, he’ll probably know who to refer you to or how to pass the message along. Companies should want to hear feedback from their end users – nobody knows how useful or effective a product is like the people who use it on a daily basis. If there are bugs or quirks that should be resolved, mention them! It’ll likely help create a better product in the long run.

The most important thing to remember is that most customer support/service reps really do love helping people. And, believe it or not, it really does make our day when a customer ends a call with “Thank you so much for your help!”

Love your support representative and they’ll love you back!

NoSQL Databases

In a software developer’s world, the word “database” usually means “SQL.” SQL stands for Structured Query Language and, for years, this language has been the de facto language of relational databases. This includes Microsoft SQL Server, PostgreSQL, MySQL, and Oracle.

These database have served us well for literally decades, but there’s something new on the horizon. These days, all the cool kids are using NoSQL databases. NoSQL databases are document based, which means that they don’t have a schema or rely on the time-tested Structured Query Language. This is somewhat difficult for many veteran programmers to process. A big question that’s immediately raised is, “How would one communicate with a database that doesn’t use SQL?”  The answer can vary between the many different databases out there, but we’ll use one in particular as an example: Mongo DB.

Mongo DB uses the popular Object Oriented language JavaScript to interact between the software and the developers. This gives the developer the powerful advantage of using JSON to pass data between the Mongo DB collections and the application interacting with the database.

Developers that have a basic grasp of Object Oriented programming should be able to pick up NoSQL databases very quickly. For example, the SQL query to create a database which looks like this: “CREATE TABLE User (Ident INT IDENTITY, FirstName VARCHAR(50), LastName VARCHAR(50))” can be written simply as this: “db.CreateCollection(‘User’).” Since there’s no schema to worry about, any data points can be added at-will within the Mongo DB collection.  For more SQL to Mongo DB translations check out this mapping chart on the MongoDB site.

NoSQL databases are already in use in many popular applications that are familiar to almost everyone. Facebook uses a NoSQL database called Cassandra and FourSquare uses the aforementioned MongoDB. The list is growing with the popularity of these databases increasing on a daily basis. And NoSQL databases like MongoDB are available for every major system, so it’s possible to put these into production today.