Friday, May 13, 2016

Why you need to make intuitive, six-dimensional apps

The following is an extract from the first chapter of ‘Intuitive UX: The Six Dimensions of Mobile User Experience’. The six dimensions are Context, Input, Output, Responsiveness, Connectivity, and Resources. They are introduced earlier in the chapter. In this article I will focus on why you need to use them to create a successful, intuitive, app.

************

Lots of apps have been built without knowledge of the six dimensions of a great mobile experience and have still gone on to have some level of success. To rely on luck instead of striving to make your app the best it can be, and optimizing your chance of success, is a fool’s errand. But how does consideration of the six dimensions lead to a better app?

Consideration of each of the six dimensions with respect to your mobile app leads to improvements in each of these areas. You’ll better meet the needs of the user by first understanding what those needs are. You can help a person make better use of their time by making the app faster and easier to use. You can remove barriers that hinder comprehension and use by adopting common conventions and tailoring the app to the user. You can create real value and grow by word of mouth through a ‘best in class’ user experience.

These points are important because of your app's competition and the expectations of those who are using, or might use, the app.


Competition


Depending on the platform (or platforms) you build apps for you will be competing in the store with as few as several hundred thousand or as many as several million other apps that are bidding for attention and installation. Once you get installed on a device you will be competing with several dozen other apps for use.
Of course it is not that simplistic. You are not competing against all other apps in the store or all the apps installed on a specific device. Very few people will think “Hey, I need a new app. I will go to the store and see what there.” Retail therapy through apps does not work the same way as physical products. The people who do browse the store looking for new apps for fun are part of a small minority. Similarly, people do not typically take out their phone and choose, from all the installed apps, the one they want to use at that point. Unless they are bored.

Boredom

Boredom is a valid use case for many mobile apps, especially games and apps related to social media that let a person browse through a seemingly endless stream of content. Solo journeys on public transport and the period in the coffee shop while you are waiting for the barista to prepare your drink. These are the times that such boredom busting apps were built for.
Being an app that people can use when bored or have a few spare minutes and wish to pass the time is not, on its own, an opportunity to compete. Any game that can be played for a few minutes or even a few seconds at a time meets this criterion and they are not all competition for your app.
If the reason to install an app is that people might use it when they are bored, then it is no different to myriad other apps and so becomes a hard proposition to persuade users to install the app.


People get, and use, apps for specific reasons. If they want to access a specific service, they will look for an app that provides that. If they want entertainment they will look for an app that provides preferred types or sources. If they want to be informed about a certain subject, they will look to apps that focus on that specific area. In all these cases it is not the app that the user desires, but the information, functionality, content or value to which the app provides access.

Alternative apps are just a few clicks away


With over a million apps available in the app store it should be apparent that they are not all completely different. For almost any task you can imagine there are several apps available which will allow you to do some variation of a task. Do you want to edit your photos, record progress of important tasks, track your fitness routine, find somewhere to eat dinner, communicate with friends, meet new people, listen to music, track the latest fashion trends, monitor the status of an upcoming flight, discover new products, see the forecast for tomorrow’s weather, or read a book? If so, you will find more apps providing different ways to do all these things, and many more besides, than you ever imagined possible.

When there are multiple options available to a person, it is necessary to distinguish what you provide from the competition. Uniqueness is not enough to stand out. To really compete your app should have meaningful differences that make the app more desirable. The ready availability of alternatives means you cannot rely on your apps mere existence for success.

Even if there is not an alternative or competitor for an app right now, you cannot rely on this always being the case. New apps are released by the thousands every day. If your app is based on a new or novel idea, there is little to stop someone else coming up with the same app idea. If you have spotted an opportunity for an app, others may also see the same opportunity. In fact, the existence of your app in the store may show others who have the same idea that it is valid and serves a need that people want solved with an app. Furthermore, if you create an entirely new app and it becomes popular, your success will attract competitors who will look to benefit from your success.

You cannot stop people from trying alternatives but you can ensure that the complete experience of using your app is the best it can be so that people come back even after trying alternatives.

Competition is not limited to other apps


Alternatives do not just exist in the form of apps. Many apps are created for use as an alternative to a website or other computer system, or as alternative to a manual or paper based system. Imagine going back to using the website of your social media network of choice rather than a third party client that does not have every feature you require. Or consider a remote worker who finds it easier to record information on paper and later enter it into a terminal when they return to the depot rather than struggle to enter the details on a mobile device they carry with them.

Switching to any of these alternatives may be simpler for some people than changing apps. It is, therefore, important to be aware of alternatives and ensure your users’ experience is sufficiently more preferable, so that people start, and keep, using it.


Experience still matters even when there is no competition


Two scenarios exist in which there are no alternatives to your app. This is not an excuse or reason to ignore the experience of the person using the app, and a full consideration of the six dimensions is still important in these scenarios as it is good for the person using the app and ultimately the business providing the app.

The two scenarios without alternatives are:

  1. The official app of a service for which third party apps are not available.
  2. Internal enterprise apps. (Also known as ‘line-of-business’ apps.)
For an app that is tied to a specific service, the experience of using the app is directly tied to the service in the mind of the user. Consider an online movie streaming service. No matter how good the backend servers or the range of titles available, if the only way to watch the movies is via a slow, clumsy app, it provides an unpleasant experience, and the user is not going to think ‘the service is good but the app is poor’. The user going to think that ‘the whole service is bad’. In such a scenario the concern should not be that person will start using an alternative app, the concern is that the person stops using, and presumably paying for, the entire service. They may then go to a competitor.

For apps that are only used internally within a business the incentives for a high quality experience when using the app are different, but just as important. For a long time, and in many situations, there has been an argument that the experience of enterprise apps does not have to be good and people will use them as they are because they have no choice in the matter. Here are some of the reasons why this should not be the case:

  • Such apps are typically tied to productivity and if an app is causing the person using it to do their job slower it can have a financial impact on the business. On one app I worked on I made changes such that an often repeated task could be done one second faster. The consequence of the time saved, when multiplied out across the number of times the task was performed, and the number of people using the app, resulted in a change was worth the equivalent of around $15,000 per day (or approximately four million dollars a year) to the business.
  • Apps that are difficult to use can frustrate or annoy the user. It is generally accepted that you do not want to annoy or upset your staff if they will be representing the business to customers, as their negative feelings may be projected on the customer or potential customer. I have seen, first hand, the negative implications of a member of staff complaining about the app they have to work with in front of a potential customer and the cost that had to the business when they did not win that customer’s business.
  • Unduly complex and complicated apps require training. Not only does this have an initial cost to the business but also adds to the cost of onboarding new staff and ensuring temporary and cover staff are able to use the app correctly.
  • Repeatedly having to use a tool that frustrates users can be bad for emotional happiness and morale. There have been numerous studies that indicate happier staff work harder and are more productive. Giving staff tools (apps) that makes them less productive and not work as hard does not make good business sense. Additionally, studies also show that unhappy workers also end up taking more time off work due to illness. Again this has a financial impact on a business.
Hopefully these examples clearly demonstrate to you the importance of creating apps that fully consider the experience of an app, and that it is not sufficient to have an app that is merely functional.


Expectation


It is very rare for any app you build to be the first ever app that a person uses. Because of this your app will be compared with other experiences. This includes the operating system and the apps that come with a device.

People have been spoilt. They have been exposed to a wide variety of very high quality apps and other software experiences. In light of this, any app you create will not just be judged on what it does, or on how it compares to other apps in direct competition with yours, but with every positive experience they have had. You may create an app that is a million times better than your competition, but if it is not easy to understand or use in comparison to other apps used on a regular basis, it will not be seen favourably. Being the best of a bad bunch is not good enough. You should strive to be one of the best. Period.

Users have learnt to expect more over time. Go back what is a relatively short time, to the start of the millennium, and the majority of software was not great. PC software was mostly the same and a series of battleship grey forms. The rise of mobile phone apps over the last few years has changed all that. People want and expect something fast, beautiful and easy to use. It should help them achieve their desired task and get out of the way. It should improve their life or at least make it simpler or easier, and it must never frustrate or prevent a person from doing what they want.

It is also the case that what was once the high quality exception soon becomes the norm, and people want better still. Consumer expectations are high and are likely to only increase. A desire for continuous improvement has been set in people’s minds.

This comparison and level of expectation is not limited to just the consumer app space. The experiences people have outside of work inform their opinions inside work too. It should not be the case that people bemoan the fact that the apps they use at home or on their own devices are easier to use, faster, better or in other ways more preferable than what is provided as part of their jobs. As I mentioned earlier, when looking at alternatives, such negative app experiences can be financially bad for a business.


Planning for success


The software business is more like any other kind of business than many people wanting to create apps realize. At some point in time it gained a special place in the mind of the population as being a special case. I suspect it was due to the early stories of the success of a few developers. That anybody can have an idea, build an app and make their fortune overnight is an appealing story. It has led to the idea that anyone who can write some code can build an app and be a success. Ultimately though, this is unrealistic for all but a few lucky exceptions. If you have the expectation that you just need to write some code to be successful then now might be a good time for a reality check. To achieve success without doing the work to help achieve it is like buying a lottery ticket as a retirement plan. There is a tiny chance it may pay off but is not something I have ever heard anyone recommend.

Beware treating a mobile app differently to other products

The idea that a mobile app is special has thrown up some curious assumptions by those creating them.
Compare an app with a website. The technical knowledge and skills to create the two are roughly similar but you would not hear the developer of a website blaming a search engine if no one came to a new website they had built but had told no one about. For many people creating apps though they seem justified in blaming the store if few people download an app they have made but not promoted.
Imagine a friend told you they wanted to leave their current job in a bank and start a business making and selling loaves of bread. You would probably have lots of questions for then. Such as the following. Lots of companies are already making and selling bread. How will you compete with such large, established competitors? Many types of bread exist. Which will you make? How will you persuade people to buy your bread? How and where will you sell it? How much will you charge? Will you be able to make enough money to pay your bills? And so on. These are all reasonable and sensible questions to ask when starting an endeavor with financial considerations. If you were the friend hopefully you would ask these questions of yourself too. Now consider building a mobile app. There are a lot of similarities here. They are both probably low cost, low margin products with lots of competition. Both will require making something remarkable or sufficiently different from what already exists to be successful. Both products will also require lots of effort to tell people about the new product and persuade them of the benefits of purchasing. The questions you would ask you friend are equally valid for both scenarios. Do you consider such questions when thinking about creating a mobile app or game?
Treat a mobile app like any other product. Expect that making money and being a success with it will require just as much effort as if it was any other kind of product.

“Failing to plan is planning to fail” is a modern day proverb attributed to, the well-known author on time management, Alan Lakein. It is a phrase that is used often, in a variety of situations, and I believe it is appropriate to the business of mobile apps. There is also a corollary which is even more relevant, and that is that success which is not defined in advance is harder to achieve. If you do not define success at the start of the project, then when you come to measure it you are making a judgement call based on what happened. It is the same as waiting to see what happens and then deciding if you want to call it success or not. If you define what success will look like for you, you can do things that will help you work towards achieving your aim.

At the start of this chapter I gave you the formula for app store success but did not define success in and of itself. What you consider a success might be different from what someone else would consider as success. That is perfectly fine. What you consider a success today may be different from your idea of it next year and will also likely vary between projects.

Whatever your metric for success you can achieve it in your apps if you provide value, use the six dimensions to create and excellent experience, and do all you can to maximize your chance of luck.


************

Competing with competition and the expectations of app users can be challenging, but once you appreciate the importance of this you should be motivated to respond accordingly. Creating an intuitive experience is the response I recommend, and through the rest of the book I will show you how to do that.  I will provide the background knowledge to understand why each dimension matters, and how you can apply them broadly in the future.




Wednesday, May 11, 2016

Windows 10 Embedded Mode - Because IoT isn't the only solution for a dedicated device

In the past, having a device that only ran a single app (often called "kiosk-mode") was limited to certain hardware or relied on software from third-parties.

With Windows 10 this becomes a lot easier, thanks to Embedded Mode. It seems this feature isn't very well known so I thought I'd share details of it with you here.

What it allows you to do is have the device run a single app. This is what happens with an IoT device. Embedded mode is enabled by default on devices run Win10 IoT Core and can be enabled on Mobile and Desktop devices too. Not only does this let you only access a single app when using the device but also enables other functionality such as background tasks that can run forever.

For more details, see the instructions on the IoT Github site http://ms-iot.github.io/content/en-US/win10/EmbeddedMode.htm


Thursday, May 05, 2016

I'm writing a book and I'd love your feedback


Yes. That's a real book cover! I want to help you make better apps, regardless of the tools and languages you use or the operating systems you target and I thought a book would be a great way to share the knowledge to help you create something great.
Here's the official synopsis:
The UX of your app can help it stand out and be key to its success. This book gives you practical advice and guidance on how to take mobile apps on any platform and make them better.
The book is being published by Manning and as part of their process, new books go through the Manning Early Access Program (MEAP). Through the MEAP process you get access to the chapters as they are written and can provide feedback to help me produce the best book I can.

This is how you can provide your feedback. The book has its own section in the Author Online forum where you can provide comments, questions, thoughts and suggestions.

The reason I'm telling you about this today is that the book is today's (May 5th 2016) Deal of The Day. This means you can get it for 50% off with the code dotd050516lt. Just enter this as the 'Coupon Code / Promotional Code' at the checkout and press 'Apply'. (as below)


You'll then be able to order the book for just $17.99 (which, my UK based friends, Google tells me is the equivalent of £12.40).

I think you'll agree that is a very fair price for my distilled wisdom on creating better mobile apps.

If you've ever spoken with anyone who has written a book you will know that they will tell you it is a lot of work. I really hope this effort is turning into something that is useful to you and I would love to know what you think about the book. Let me know what your thoughts.

Get it from https://www.manning.com/books/intuitive-ux


Friday, April 01, 2016

Xamarin has joined Microsoft - how I'm feeling now

A little over a month ago it was announced that Microsoft were to acquire Xamarin. Shortly after I wrote down some of my thoughts about this. Now the purchase is complete and some of the details of how this will play out have been announced.

The headline news is that Xamarin tooling will be free for all as part of Visual Studio.

Overall this is definitely a good thing. The cost (starting at $25/month) was prohibitively expensive for some developers and so hopefully this will help them. Maybe it was stopping them creating and releasing some valuable and useful apps that will now be able to bring benefits to many.

I have some fears though.

  • Many developers will still complain about needing a Mac to build for iOS and will blame Microsoft (and Xamarin) for this. It's Apple's rule though. Expect (unofficial?) cloud based alternatives for this to become heavily discussed. (but not here)
  • Many developers will complain about needing other hardware to test their apps on. I am certain there will be some people who will expect Microsoft to provide this too. They'll probably argue that they gave out Windows Phones when they wanted people to build apps for them so they should give out iPhones and Android devices if they want people to use Xamarin tools. <rollsEyesAndShakesHead />
  • There will be many developers who assume that all they needed was the tools and now they can build apps and be successful. Maybe they were once told that if they could write code they had everything they needed to create a successful app. This is not the case. The most common figure I hear from other people about how much of the effort of a successful app is related to code is 10%. The highest I've ever heard from anyone with a successful app is 40%. You need lots more than code or coding skills to create a successful app.
  • There will be many developers who assume they don't need to know the specifics of the individual platforms they're can now build for. This is not the case. If you want to build apps that feel like they belong on the OS/platform on which they are running you need to be familiar with such devices. (I'm not saying you must but there is a reason I carry and use so many different phones - I'm currently on holiday and I still have three in my pocket! I want to be sure I know this stuff inside and out.)
  • Developers will continue to have what I believe to be unrealistic expectations for Xamarin.Forms. That is, they will expect an impeccable, customized and fully integrated experience with each platform the app runs on without having (or needing) to do any device specific work. There are many reasons why you're highly unlikely to get and probably don't really want this anyway. You just don't know it yet. Sorry, I haven't got the time to go through all the details now though.
  • Developers who previously only released apps for Windows and complained about discovery in the store and the amount of competition in the stores are in for a shocking discovery/lesson.
  • Many low quality and unsuccessful apps that currently exist on Windows [Phone] are likely to get ported to Android and iOS. They'll probably have even less success there and I'm sure the developers of such apps will find a way to blame Microsoft for it.
  • There are still a lack of good resources to help developers in many parts of creating a great app that go beyond coding. (I'm currently working on one such thing--which is a contributing factor in me writing less on this blog lately--but, I believe, many developers need much more help.) 

I still want to look through all the information in detail but right now I don't think I've wasted the last 18 months or so learning about using the Xamarin tooling. In fact, this might be an extra reason to getting round to taking the certification exam. - There might be some more companies looking for help with this soon and my bank balance suggests I should be doing more paid work.


There's probably lots more I could say but I don't know enough details in all areas yet and, like I said, I'm meant to be on holiday. ;)


Thursday, February 25, 2016

Xamarin joins Microsoft - initial reaction

Because I know a little about these things and sometimes people like to know what I think, here are my initial thoughts about the announcement that Microsoft intends to buy Xamarin.*


* I have been asked to only say positive things about this announcement. As I don't work for either company and my value and experience comes from being an impartial outsider. I am ignoring this request and instead providing my honest thoughts, whether they turn out to be positive or not. This will likely be a stream of consciousness type list that I haven't planned in advance. Full disclosure: I use and pay for products from both companies. I also get some products free from both companies as a Microsoft MVP.

Details are scarce at the moment and I know nothing that isn't public.
In no particular order, here's what I think right now:


  • Lots of people have been asking/hoping for this. Perhaps it'll make them happy. (They're developers though so probably not for very long though)
  • Many developers were asking for this because they assumed that it will mean the tools become free (like other Microsoft tools). It might be nice if Microsoft's deep pockets make this possible.  We all suffer if people can't create great software because they don't have access to tools. On the downside it'll mean more developers churning out pointless/poor/low quality apps just because they now have access to the tools.
  • Hopefully Xamarin University will remain unaffected. I'd be sad to see this go, but this isn't something that could easily be scaled up (without greatly affecting qualilty) if Microsoft just made it free to all.
  • This will still not create the panacea, universal WORE app experience that many developers want Microsoft to be provide. Lots of developers seemingly want to be able to build a single package and run it on every device they can think of. (at least: Windows PC, Windows phones, Mac, iOS and Android phones and tablets.) There are two general approaches to such apps. 1. You build enough commonality into the OS of each platform/device to make this possible. or 2. You put a runtime onto each platform that makes the app work on each. Neither of which are possible on all those platforms to a way that is acceptable to most apps or developers. - Sorry, this is too big a subject to cover here. Ask me for more details if you want.
  • Hopefully this will improve the Windows experience for Xamarin.Forms apps.
  • Hopefully this will now incentivize Microsoft to make the changes/access required to get Windows devices in the Xamarin Test Cloud. This should mean improved automated testing capabilities for all!
  • Developers still shouldn't expect that this will get us any faster to a place where Xamarin.Forms apps have a greater level of per device customization and integration without the need for doing that customization yourself. There's only so much automagic detecting of how an app should be customized that's possible.
  • This still makes it incredibly unlikely that it will be possible to build iOS apps without having an actual Mac. The restriction is imposed by Apple and I don't expect a solution (workaround) like you get with PhoneGap build or NativeScript. Developers ask for this because of the cost of purchasing the hardware. They don't see it as an investment. This also ignores the situation that without Mac hardware it also makes it very slow to test running on iOS devices as there's no simulator or on device debugging available.
  • I expect Xamarin.Forms XAML and UWP XAML to continue to exist side-by-side. It might be nice if there was just one that did everything but there's precedent and good reason to have both. Plus, WPF XAML still exists and that has differences too.



It'll be business as usual for the next few months at least, but certainly interesting times for traditional Microsoft and Xamarin developers....