Tuesday, November 25, 2014

Why the status bar has to go

The small black stripe at the top of the smartphone of your choice. Home for various tiny icons. Through subtle changes in them, we can decipher what's going on under the hood.


To better understand the status bar we have today, we must look at the desktop computing environment where the convention came from. The following image illustrates how different common desktop environments have solved the status bar. Top or bottom, (left or right. Always visible by default.


That design somehow felt like the only possible solution that anyone could ever come up with. Whenever someone started to design an operating system, they first drew that familiar bar across one of the display edges. Just like small kids default drawing the sun into one of the top paper corners. Only with the difference that kids move on, discovering other possibilities for sun placement.

Then came the advent of smartphones. Everything we got used to in the desktop environment, had to be crammed down to a smaller screen. So that we wouldn't mistake it as something else than a desktop </sarcasm>. A ceremonial bar was again crafted across the top screen edge, to give permanent residence for status icons. And after repeating that design pattern countless times, we should realize that the advent is now gone. It's no more, and here's some further incentive:

  • As a digital medium, software is dynamic in nature. A fixed or static layout is more a design decision, not a requirement. Displays also exist for dynamic content, and suffer from static one. If you haven't yet heard about screen burn-in, well now you have.
  • A small bar is a compromise in legibility. To not waste screen space, the bar height is kept tiny. This results in uncomfortably tiny icons. Some have made the bar automatically hide, to not distract user, but have still kept the bar and icons tiny. Sigh.
  • Lack of structure and meaning. On a small bar, all icons compete with each other for user attention. Since everything is visible all the time, a subtle change in one icon is easy to miss. All icons appear visually equal in importance, even if they rarely are.
  • Technical overhead. This concerns mostly app developers, but they're users as well. No discrimination, please. Better developer experiences are needed as well. Controlling status bar visibility and behavior is yet another thing to be mindful when creating your application. Also the OS owner has to maintain such complexity. Both sides lose.
  • Lost screen estate. Even if little, it all adds up. It's not really a full screen if something is reserving a slice of what would otherwise belong to your app. There is a dedicated full-screen mode in Android, further increasing the technical overhead and complexity, for both app developers and system maintainers.
  • Information overload and "over-notifying". We're bad at focusing on multiple things at the same time. Status bar at the top is screaming for attention and every time you take a glimpse at it, you need to refocus back to the whatever you did before. It's important information no doubt, but user decides when.

Even if mobile devices are almost identical to desktops as computer systems, smartphones are used in completely different way, than stationary desktops and laptops. Smartphone use is mainly happening in occasional brief bursts, instead of long sessions (desktop). User unlocks the device, goes into an app, locks it again and repeats.
It's important to understand that there's a reason for the user to do that. The device is not the center of your life, and is put aside all the time, just to be pulled out again when required.

And before the user reaches that app (or notification drawer/view), several opportunities present themselves to expose user to the system status without the need to make it persistently shown. Like making it part of the natural flow of things.

That is exactly what Sailfish OS does. It solves the aforementioned problem by showing important system information as part of the home screen content, resulting in:

  • Dynamic screen usage, behavior designed for displays
  • Superior legibility due to larger icons
  • More meaningful icons are emphasized, more layout possibilities
  • Less coding leads to faster app development
  • Single behavior is simpler to maintain from the OS side
  • All apps are full-screen by default
  • Less clutter, information is showed on demand

Don't blindly embrace a legacy design as an absolute truth. Make sure you define first what is the problem it solves. Rapid advancements in both software technology and mobile context understanding, can provide you great insight in finding alternatives that didn't exist back then.

And keeping in mind that mobile != desktop will alone carry you a long way. Remember that natural interaction in mobile context needs solutions that desktop didn't have to solve. Use your head.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Tuesday, November 11, 2014

Why do people get into fights with computers?

The internet is full of stories about the volatile relationship between people and computers. It's because by nature, both sides are completely foreign to each other, only separated by a thin layer called a user interface. It communicates the state the software is in, and provides methods for the user to control both software and hardware features of the computer.

To put the role and importance of user interface into a perspective, I'll compare it to an intergalactic interpreter. It's job is to prevent miscommunication and when possible, recover from situations caused by it. It works between two species that have nothing in common with each other. A misunderstanding between such parties can escalate quickly and have irreversible consequences. And naturally there are good and bad interfaces when it comes to doing interpreting. The former takes pride in focusing on efficiently getting the message across as authentic as possible, while the latter focuses on performing party tricks.

I personally value getting the message across. For example, we use a smartphone so many times throughout the day, that it's frustrating if an interpreter doesn't understand you, or treats your hand as something it's notA good interpreter is in tune with you. It knows what you're about to do, understands differences in your tone of voice and body language. A bad one requires constant focus from you, because it doesn't fully understand you or isn't compatible with the way you function. That means neither side can really function efficiently, and mistakes are bound to happen.

And at the end of the day, when machines finally turn against us, I'm confident in pinning the blame for that on the interface between the two. The user didn't understand why the machine wasn't doing anything, and the machine didn't understand why user was anyway doing something. The interpreter was most likely putting on some lipstick when all of that happened, and the resulting nuclear winter allows our kids to make glow-in-the-dark snowmen all year around.

To delay the inevitable, let's focus on both prioritizing and improving the interpreter qualities of user interfaces we build to communicate with machines. These two species so alien to each other absolutely require it. Because with the current rate of technological advancements, the smartphone of tomorrow will be capable of horrors far beyond running a Facebook client.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Wednesday, November 5, 2014

What comes after applications

Over the past few years, there's been a lot of discussion over mobile apps: should there be apps or not? Obviously the question itself is an opinion divider. One side has faith in apps, while the opposition doesn't. This piece by Paul Adams from Intercom, was the latest manifestation I enjoyed. A good read for anyone interested about mobile computing.

This phenomenon is a result of people getting tired of eating the same app pill for every issue they have. The five year old marketing punchline "There's an app for that" really explains the dominant mentality. And with enough repetition, it was rooted deep into our minds. The emerged "app evolution" debate is just an indication, that people have finally become aware of the indoctrination. This post is my contribution to the topic.

Naturally, there's a gray area in between both extremes of the debate. To me, an application is just one of many ways to solve a user problem. When smartphones really kicked off the mobile app business, everyone wanted a piece of that pie. As a result, it became difficult to jump out from the app bandwagon. In addition to the "me too" factor, what makes an app so attractive option, is the degrees of freedom it offers to both the user and developer. However, it comes with a price tag.

Mobile operating systems have grown a lot since those days. They offer much wider range of tools to build engaging experiences. The common mistake is to think you need to implement everything yourself. Below, is my rough categorization of different methods a user problem can be solved; and how "less control" can in some cases increase the value compared to "more control". It's a matter of identifying the problem before finding a fitting solution for it.


  • A background process takes care of performing the task in behalf of the user. It makes the solution feel like magic because user didn't do anything. As this requires an intimate knowledge of the lower software layers and contextual awareness, it's not really trivial to do. Not to mention being forbidden in many systems.
  • A notification uses existing mechanisms in an operating system to promote a functionality or a piece of information based on its relevancy. This can result in genius solutions, since the needed functionality can be conveniently offered regardless of the context user is in. Even if there's not much interface work involved, a reliable context engine is hard to get right.
  • A system integration takes a frequently used functionality and makes it an integral part of the operating system. This makes interacting with such a features much faster compared to an application counterpart. The result is a smarter and more holistic experience. However, this either requires rooting or OS ownership to do, so it's not an option for many.
  • An application is the last step in the scale. Almost everything is possible here. It's very powerful and can be tailored to fit very specific tasks. Using an application as a solution easily adds more steps to achieving a desired result. Repeating these steps frequently to do something feels dumb. Due to the amount freedom it gives, and the amount of work is needed, the application experience is the most vulnerable to mistakes. Everyone can make an app, and it shows.

At the end of the day, it's about thoughtfully choosing and combining methods available to you. It's the next step in building mobile experiences. All these methods have their places in our daily throughput of tasks. So, even if apps are important, sticking with just them is a sure way to forfeit the experience game. Same goes for denying the application as a viable solution. Having a meaningful combination of variety is the key.

Because people are not binary by nature, so therefore solutions we use to respond to their needs must reflect that. There's no silver bullet, or a size that fits all. Using interaction variety in your user experience will make it more natural and approachable. Transitioning from app-focused model to user-focused model will give a reliable foothold in the market strongly profiled by features, hardware specifications and price competition. Finding other ways to create value is essential to differentiate and stay competitive.

The more you understand the platform you're designing for, the easier it is to deliver more natural and smarter experiences for its users.

Apps alone will definitely not be enough.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Tuesday, October 28, 2014

What's the sand in your sandbox?

I was picking up my son from the daycare when I realized something. It took me for a round trip to the days I started at Jolla.

It was early July 2012. I was very excited about everything I had learned about the company over those few months preceding my hire. I was looking at non-hierarchical and self-organized group of talented people; teeming of can-do-attitude, and plenty of enthusiasm to match. With very lean ways of working, Jolla was about to play ball with the big guys. It felt amazing, and I was all game.

I'm a person who lives to do things. I love to study things by taking them apart. Every disassembled object has a story to tell, and those stories feed my obsession to learn and understand how everything works. When other kids at daycare played with their toys, I had a bag full of broken household appliances and power tools to disassemble. As a courtesy of my parents. Otherwise I would've taken apart something that actually worked, much to the horror of my daycare teacher.

Countless dismantled things later, Jolla was the perfect do-all-you-can buffet for me. It was very informal and open 24/7. Everything in that buffet was optimized for doing things together. So many things to take apart an learn from. We all had done mobile operating system work before. This time we just had to do it with a fraction of the manpower, without any hierarchy and management overhead. And the best way to do that, is getting your hands dirty with it. Explore, play, take stuff apart and and put back together. Don't be afraid of mistakes, instead love them for guiding you.

I realized Sailfish OS was the sand in my sandbox. Days on end, I went in to make sense out of things. It was important to work closely with developers, so there was just us and the sand. No matter how long it took, we would keep our hands deep in the sand. It was wonderful that nobody cared if I had sand all over me. Learning and understanding was more important.

I climbed out of my car and closed the door. My son was waiting me at the daycare gate with a big smile - all covered in sand. He doesn't mind the mess. Because it doesn't qualify as one for him. Instead it represents an exiting interaction; a freedom to do anything he wishes. It dawned on me that some people have learned to avoid getting sand on them. For those, I have a secret to share: you can unlearn it.

Learn to tolerate that the sand is messy. It's the purpose of the sand to be all over the place. It's up to you to mold and craft it to whatever you wish. No right or wrong way exist. The only rule there is: you can't make great products without getting sand on yourself. Your ability to do amazing things is only backed up by your relationship with the sand.

So take a look at your sandbox. Whatever it is that sand represents for you, get to know it again. Don't be afraid to get some of it on yourself. Take a look how kids do it. They don't see a mess. They see fun.

So should you. It's time to reconnect with the sand again, just like back in your childhood. Smile follows naturally.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Monday, October 27, 2014

Just asking - a new image series launched

Just asked myself,

Why not to squeeze some of the points I make in this blog, into images that are.. say.. more approachable? I thought it would be a good idea. So I ran along with it and made a few over the weekend.

These two (just added 2 more) are just the beginning of a wider series of images, that either ask a simple question or challenge something in the current state of the smartphone industry. I really want to do this just to see if it's something worth continuing.

As always, the goal is to increase the awareness of more natural user interfaces, through the work we've already done for Sailfish OS at Jolla.



Here's the link in case the Picasa flash plugin crashed and burned.

Anyway, let me know how these work out for you. Any comments or image ideas are also very welcomed, so I can crank out more - or stop immediately. If you already haven't, this is the perfect time to visit the comment section.

Fantastic. Let's do this, since we don't try in Finland.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Thursday, October 23, 2014

Responsible product development. Family style.

When creating something, you sign a responsibility pact.

By respecting that pact, your creation has all the potential in the world. Just like a child has.

The same parenting guideline applies equally for new products. You have already developed a deep understanding between your child, and it's your responsibility to make everyone understand and respect that. A small child cannot yet communicate that. Neither can a new product.

It doesn't matter how many of you there are, you're all mutual parents. The whole company is.

You all have valuable information related to the well-being and success of your child. If you share that information with new people becoming involved in your child's life, everyone greatly benefits from that. Especially your child.

The challenging part is, that most of the time, it's people you don't see. People in meetings you never attend. People in cities you never visit. People in companies you've never heard off. They all have expectations for that potential you've been meticulously nurturing.

Therefore it's important that everyone of you understands their role as a parent. All of those new external expectations can be perfect opportunities for your child.

Just remember to ask and also listen if your child wants to play hockey or piano. Break down those expectations to see how they fit the personality and traits of your child. Don't just blindly decide and demand something.

Because that breaks children, instead of helping them to grow. Don't expect opportunities to create a perfect child for you. That's just horribly wrong.

Treat those expectations as goals. Because they'll help your child to grow; to become stronger by overcoming challenges. However, it works only as long as it's the child who's overcoming them. Everyone else around is just a safety net, allowing graceful failing, and encouraging to retry. It's about honesty toward your child and ones potential.

If you solve a puzzle for your child, it's you who did it. No matter how hard you claim otherwise.

So don't make dishonest promises to anyone. Those just end up hurting both the growth of your child, and your role as a parent. Don't ask your child to skip elementary school in favor of dreaming about university.

People will understand if you openly explain your family values to them. What makes your child behave like one does. Also, if your child suffers from a permanent illness, it's only good if people involved are aware of it.

In the same way, every product has their shortcomings and weaknesses. Be open about them to others, and avoid planning the future on those weaknesses. A lifetime of failure will break children as well.

So remember to listen to your children.

Don't force them into being something they're not. Nobody benefits from that.

Because if you do, I sincerely hope that the responsibility pact in question was not signed in blood.

Our children deserve better.

Both in family life and product development.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.

Wednesday, October 22, 2014

What's wrong with multiple home screens

Quite a bit. Hold on to something.

If thinking critically, what does multiple home screens really add? Aside from multiple screens off course. Is there any explanation for their existence?

I hear this even in my sleep already: "Everyone thinks they're amazing / Everyone is used to them." But, that's just repeating an opinion. It doesn't explain why do people need them?

Another common one is: "Statistics tell us that people like products with multiple home screens in them." With that logic, you can say that statistically people also like seats with feces in them, because they use bathrooms several times a day. Sorry, people would be happier without the poo being involved if it would be possible.

This as well: "We have done extensive consumer studies to prove it's a must feature to have." Sigh. On paper, you can make people like poo just by asking them the right questions.

This comes up every now and then: "It's for everyone to personalize their devices." I'm pretty sure the device is already a personal one, and what user does with it, will make it even more so. Also, there's countless other ways to make the interface a personal one.

But the winner is: "What is this heresy I hear! From the beginning of time as we know it, home screen content has always been arranged in horizontal pages!" From the beginning of 2007. But then why is pretty much every other content browsed in vertical direction? Web pages, content streams, call histories, messages and gallery grids. All vertically arranged.

So really. Why does a smartphone need multiple horizontally arranged home screens? How do they make a smartphone smarter? What is the user need they fulfill?

Anyone?

I think it's actually the other way around. A smartphone would be smarter if it didn't have multiple home screens. The main issue is in the thinking that adding more, automatically equals a better product. And as usual, people are blind to the opposite.

It's a better product, that equals more. Let's try it out.

You give a user seven home screens, instead of five. Did it make a single home screen any better? Is it easier to move or find things between seven home screens? Are seven screens easier to decorate with widgets? Is it easier to find nice widgets that don't look horrible? Is it more personal solution? Did the product become smarter than before? Does it free system resources for actual user tasks?

Nope.

Then try removing all but one home screen. Make that single remaining home screen better. Make it smarter. So that it adapts better to what user is actually doing with the device, removing the need to juggle between multiple home screens. Because everything you did and worked on, is found from the same home screen, everything becomes much faster. You launched a music player, and suddenly the controls are also there. You arrived at work and your email account summary is greeting you on your home screen. Suddenly the behavior feels more helpful and smarter, since you can do more by actually doing less.

Do you spot a pattern? Better, equals more.

There's even the age-old saying about quality trumping quantity. Well, marketing was clearly invented as an counter-argument. Because smart is hard to do. Just adding more is easy. A hammer with three heads instead of a single good one: a great idea everyone can boldly stand behind of. And with a good marketing campaign, nobody notices it's heavy as hell and unbalanced beyond practical. The rendering looks amazing, though.

So compared to doing smart and meaningful things, marketing is dirt cheap. Guess which path big manufacturers favor?

So let's try one more time: Does adding more home screens make a product easier to sell?

Hell yes it does!

If I buy a hammer, I want a better hammer than I had before. One that allows me to work faster, more efficiently and comfortably, not to forget improved safety. I don't want to buy an inferior hammer, just because it's easier to sell to other people; who at the end of the day, would also prefer a better hammer with a single good head, instead of having the option for multiple ones.

That means the product was intentionally made to perform poorly, just to make it sell more. Since the modular-wonder-hammer has the option to add more heads to it, the potential to develop a single good head is lost for the sake of a nonsense feature.

If Sailfish OS would have multiple home screens next to each other, it wouldn't be possible to have cover actions as explained in my previous post. It would mean that the ability for user to interact with tasks would be reduced.

For the sake of having a modular-wonder-hammer, that's heavy as hell and unbalanced beyond practical.

To be honest with all of you. Making a better product is really hard and painful. It's because the industry around you keeps repeating how more equals better. Especially when the rendering looks awesome.

The dumbest thing I've heard.

In the smartphone industry.

Thanks for reading and see you in the next post. In the meantime, agree or disagree, debate or shout. Bring it on and spread the word.