I’ve made it a goal of mine to get SharePoint developers to think more about the user experience of their solutions. By this, I mean not just the user interface, but the way the solutions behave, ‘feel’, and perform. And by performance, I don’t necessarily mean technical performance. Read on and I’ll explain what I mean.
As SharePoint solution developers, at least at the stage you should be if you’ve read this far in the issue, we should allow ourselves to focus more on the user experience of our solutions.
In Chapter 3, I argued that we should endeavor to pull our users into our applications more like modern platforms do. However, that kind of user experience is just one aspect of making our users efficient.
Keep in mind that our value as developers is not just in churning out code. The value we represent to our clients, employers, or users is in our ability to turn our experience and knowledge into efficiency or opportunity for users. To accomplish this, we should focus in much greater extent on how our solutions can be made as efficient as possible.
I’m not talking here about code performance. In the grand scheme of things, the performance of our solutions is measured in money and time saved or earned. We can have the fastest rendering of a screen in the known universe, but if our users still can’t do their jobs faster, more accurate, or better, then saving CPU cycles is pointless.
Note: Keep in mind that I am talking about SharePoint development, or even business application development.
When talking to developers, I often find that the focus on great code is on things like readability, testability, the efficiency of performing some computation, the reduced resource use, and so on. We are focused on technical performance more than we are on user performance.
Another factor in user efficiency is how easy a solution is to learn. For any task, if you train long enough, you can increase your performance by an order of magnitude, but will the investment in training ever pay off? Better yet, can we make our solutions so easy to use that our users will be productive while they are learning?
Think about how Angry Birds makes easy a rather complex idea of combining physics, gravity, impact velocity, angles of attack, and turn it into an experience that can be understood within a couple of minutes. You may need a long time to perfect it, but you grasp enough to become entertained quickly.
Wouldn’t it be great if we could have user experiences and interfaces that were as easy to learn as a modern game?
Think also about the fact that the default user experience in SharePoint is the lowest common denominator for a range of tasks the user must perform. For its purpose, to be a single type of interface for any task, it works great, but it’s far from efficient and not very intuitive.
As developers, we should be thinking about how we can make our solutions far more user friendly. In SPInvoices, the user will build invoices, which is something that very few users perceive as an item in a list with a bunch of columns attached. They definitely don’t think of it as a table of invoices with a related table of invoice rows.
Instead, users think about invoices like they see them, usually on a paper of some kind or hopefully in an electronic document. Wouldn’t it be much better to give them an interface that closely resembles that which the users see and imagine when you tell them about invoices?
I’m not going to claim that SPInvoice in any way is a perfect example of a user interface, and I’m not even going to take credit for that interface. The interface, in fact, was built by someone else, but I thought it was a very nice way of implementing what might otherwise be a rather complex task.
Note: Chris Coyier made the interface. You can find the original HTML design here: http://css-tricks.com/html-invoice/
However, as an illustration of what I mean by having an interface tailored to the task the user performs, I think it serves its purpose. It should be clean, efficient, and close to what the user will associate with the task at hand.
I want to illustrate what I mean with a clean interface that allows the user to focus solely on the task at hand, and have as few distractions from anything as possible. I don’t want any menus, I don’t want any options that aren’t immediately visible, and I don’t want a complex learning curve.
Let me fill you in on how I converted the HTML invoice template to a SharePoint application.
Found this article valuable? Want to show your appreciation? Here are some options:
a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.
b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.
c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!