Posts Tagged ‘User experience’

I can’t hear you, I Want to see you

November 12, 2011

This extremely funny clip serves as a good demonstration to the state of the art in conferencing. But if humankind can ride 30 meter waves, maybe there is a chance we can improve here as well.

Video conferencing is going to hit mainstream – the technology and bandwidth are available for couple of years , but now the software and hardware are also ubiquitous.

Smart phones and new laptops have an excellent built-in camera and microphone built-in and all the new messengers have built-in Video calling.

I have been evangelizing video usage in EMC Beer Sheva new site, and while it takes some time to get used to , it is hard to go back.

Don’t be surprised if the breakthrough here would come from a new player  and not the traditional players.

Unified Messaging – while there is no technology barrier to get it done, I know very few people who actually get all their email, phone, cellular ,calendar, voice mail and SMS information in aggregated fashion,in the same location and accessible through multiple views and devices. This is quite weird since the technology is around for a long time.

Even my $300 Cisco smart VOIP phone is no smarter than the $100 Panasonic wireless phone at home or the $10 unizen phone. No integration with email and messenger, no integration with cellular , no video capabilities. This seems like a product management issue.  Again, who ever gets it right and create the “DropBox” of unified messaging would “surprisingly” create a huge company.

High (Normal) Quality Voice Conferencing – at least 50% of the voice conferencing I attend have a horrible sound quality. People drop of, people can’t connect , there is background noise from traffic, annoying echoes, low sound quality and the list goes on. While the market is “commoditized” in theory this is , IMHO, BS.  While there are many free conferencing solutions they all suck, pardon my French. To make matters worst , the paid services are just as bad. I would be very happy to pay 10$ a month for a great audio conferencing service that always works, has easy sign on,  great sound quality, built-in recording and email\SMS reminders.

Easy Is Hard, Simple Is Harder

November 28, 2009

It is easy to mistake a programming task to be simple. This is especially true in user interface.

The executive is looking at the “trivial” two fields login screen and innocently estimates it to be a two hours job.

This is a common mistake, similar to some extent to The Three Body Problem in physics. Taking a simple, solvable problem and changing one parameter can result in an exceptionally complex problem. While the two-body problem is integrable and its solutions completely understood, solutions of the three-body problem may be of an arbitrary complexity and are very far from being completely understood. See a nice graphic example.

Login screens are not that complex, but take a look at the next example and see how many open questions\bugs can you come up with ?

Simple Login

Simple Login

  1. Is it “Log-in” “Login” or “Log in”?
  2. Is it clear that email is equivalent to user name?
  3. Do you need a “Cancel” button?
  4. Should there be a visible mark for the mandatory fields? Which mark?
  5. Seems like a “Forgot My Password” link and screen are missing.
  6. Is a Captcha needed to fight bots?
  7. Simple Login Form

    Simple Login Form

  8. Is validation done on the client side or the server-side ?
  9. How is the feedback given to the user? Where?
  10. Security demands that we don’t tell the user what’s the exact problem (missing email or password). Usability does.
  11. Where is the sign-up page? Where does Log-Out go out to?
  12. “Email” , “eMail” or “email”?
  13. Nice Login Form

    Nice Login Form

  14. Do we use SSL for the login but move to clear HTTP for the rest of the application ?
  15. Cross browser testing?
  16. How shall we do unit testing for the screen?
  17. It turns out that validating an email address can be a nightmare.
  18. After the user made a mistake, which events clear the warning notification?
  19. Shall we support Hebrew? How about the German umlaut?
  20. Shouldn’t “email” and “password” be left aligned?
  21. Is the colon required after “Login”?
  22. Do we want to limit the length for any of the fields? Minimum password strength?

Notice how we got to twenty non trivial questions without discussing the actual user authentication or the graphic design, which can be huge topics on their own.

My simplistic recommendation is to use of the shelf components whenever possible and go through the annoying step we used to call “feature design” even in this agile world we live in.

Sample Login Screen

Sample Login Screen

The Joy of Instant Gratification

March 21, 2009

My poor employees know that I want everything to be ready right now.It’s a bit childish, but I can’t fight it.

I hate waiting 3:30 minutes for Windows to boot.It’s like watching paint dry.You really don’t have to watch all of the video. But there is a funny cat in the beginning and in the end.

I agonize when I have to work with SalesForce EMEA slow servers.

I want every IT Structures customer to get a 300GB environment, 8GB memory with 15 servers and five VLANS in running in 10 seconds.I spend my weekends reading on RDP registry hacks in order to improve the user experience into instantaneous feedback.

As the great Freddy Mercury said it

I want it all and I want it now

It probably didn’t work that well for him in the end.

It seems that most vendors don’t get the need for instant reward.

It is well known that humans react well to short, timely  feedback  but I just waited 10 seconds watching the annoying hourglass icon  because I tried to install Babylon while writing  this blog entry. My hard disk crashed, so I’m reinstalling everything from scratch….

This brings me to the great next clip by Samsung. This is the hard soft drive that I want !

It fires up all of office applications in 0.5 a second  and would probably never crash on me since there are no moving parts.

And in the same notion , IE8 is finally out so the Microsoft  browser actually makes 6 HTTP concurrent requests instead of two.

I once hoped it will speed up the Web by 20% . Lets see if it does. In the mean time, maybe I should learn from the French to enjoy the slowness in life.

People reading in Luxembourg gardens ,Paris, leisure in the winter

People reading in Luxembourg gardens ,Paris, leisure in the winter

musicians in Paris winter, Luxembourg gardens

musicians in Paris winter, Luxembourg gardens

boats and ducks in Paris winter,  Luxembourg gardens

boats and ducks in Paris winter, Luxembourg gardens

Give me the head of HP Printers’ Product Manager

January 24, 2009

Or better yet, Bring me my missing USB cable.
In my private life I’m also known as the PC technician for the family.
I just had to install two brand new HP printers this week and I’m ready to explode.
I recommended to my family to buy HP, despite the higher price, because I thought it would be reliable and easy to use.
Both printers came with no way at all to connect them to the laptop !
No USB, No Ethernet, No RS 232.
They did come with 120 pages manual in 40 different languages.

By the way, it is unreadable and useless in each and every one of them.

It also came with ton of useless software that takes ages to install and reboot. Funny, I was under the impression that HP makes the money from the Ink and loses money on the printers.
With 2 Trillion dollars a year, can’t they buy a decent product manager from Apple ?

This post is sent to you from a 1Ghz 256MB PC conencted to a 8 years old HP DeskJet 5150, please ignore the typos. I’m babysitting two two years old twins and a blind cat.

Product Managment For Scissors and Tooth Brush

September 7, 2008
Do you see the brilliance ?

Do you see the brilliance ?

Can you detect the problem ?

Can you detect the problem ?

Where in the world are the great user interface developers? – Part I

January 11, 2008

UI Guru Ad

After a six months long search, we have finally filled our UI Guru position. While recruiting is not easy these days, it is next to impossible to find an excellent UI developer on any given date.

There is vicious cycle preventing good people from programming UI and pushing good UI programmers to other domains. I will try to describe this flawed process and maybe even start a movement to fix it…

Here is how it works:

1. Development managers unusually come from the server, networking, kernel and database walks of life.

2. Software mangers tend to be arrogant .They presume UI programming is easy, boring and can be done by anyone.

3. UI developers earn less money than kernel\networking developers.

4. The best programmers do not want to become UI experts, as there is less money and prestige in it.

5. As most UI developers are not excellent programmers, they write the code in non modular, non reusable fashion. Thus it really becomes boring and manual to fix. Even if an excellent programmer happens to start in UI, he soon wants to move on to the server side, or at least become a team leader.

6. As a result of the above, the development manager belief is encouraged, since most of their UI coders are not very impressing. They pay them less and distance them form the real interesting product decisions.

Examining the myths leading to this outcome, I believe they are flawed and irrational.

“UI is not an important part of the application”– thankfully, people have largely grown out of this perception. The success of Outlook, iPod, Nokia, Google and others has demonstrated that exceptional user experience carries a huge premium.

Even in more traditional enterprise based security software the rule applies.  If the feature does not have a visible, clear, user interface it might as well be removed. When I worked in Check Point, we sometimes tried to roll out features with no UI, because UI always seemed to be the bottleneck. We rarely succeeded.

In one famous case, we added a dialog to features that existed in the product for two years. The interface was simple and we assumed the task would be quick and easy. We were very wrong. Not only the UI was complicated, it turned out the features themselves are not working and need to be designed from scratch.

The features were turned off by default when they were first released, so they never ran in the field. Off course, no bugs came from support and everyone assumed they work well. QA stopped testing them, as they were pushed to the magical “Test Cycle 3” which never actually takes place. Our sales and marketing people did not really promote the features and customers did not even know they existed.

“UI Programming is Easy” – Yeah, right. If it is so easy, how come it is always the bottleneck?  I managed software projects in multiple programming language and various organizational structures. X\Motif, MFC, C++, Java, Swing, AJAX etc. I experimented with UI programmers as a separate group, as integral part of the main application team and as outsourced team. The projects domains were in enterprise, consumer and Telco .The developers were Israeli, American and Belarusian.

The one common aspect was the UI effort was almost always the bottleneck in the development process.

Server developers tend to think UI is easy, because one can create a trivial application very quickly. Sadly, most applications are far from trivial. Generating high quality user interface, which is maintainable, modular & pretty is extremely difficult. Unlike backend programming, every mistake is highly visible and everyone has an opinion on the subject.

“UI Programming is boring, tedious and manual”

Strangely, many people think programming kernel drivers with VI in “C”, armed with printf debugging, is more tedious than writing a modern application in C# & Python, using Visual Studio.Net.  Personally, I find the internals of kbuf, mbuf, ioctl & NDIS tiresome and frustrating. If one wants to hand craft assembly code, he might as well become a hardware engineer.

It’s true the debugging Cascading Style Sheets can be frustrating, but so is analyzing core files on Linux machine and the memory is one big mess. Sometimes it seems that the typical male programmer finds it more prestigious to hunt down the prey with bare hands 🙂

The truth is that UI programming and design can be extremely challenging. When done right there are sophisticated modeling, design and coding involved. There is always some manual, event customized code that needs to be written, and this tends to be less generic than server code by nature. However, the usage of more modern programming frameworks compensates for that and makes it much more fun.

Stay tuned for the second part of the post – Binary search and the UI Guru.

Debugging Core Files