Skip to content

What makes a user interface good?

April 30, 2015

At its most basic level, a good user interface is easy to use, non-intrusive and has a high conversion rate. In other words, it plays nice with both the people using it and the business behind it. Here are a few ideas we’ve discovered during our time designing interfaces and experiences for clients. We continue to learn about what makes user interfaces (and user experiences, but that’s another story) good by applying them to our projects and observing the results. After all, you can only improve what you can observe and measure.

The samples below represent a very small section of what we’ve learned – we’re constantly adding to this list as new ideas present themselves and are tested.

  1. Use established conventions instead of reinventing the wheel.

Convention is the mother of consistency. If you keep things similar across an interface, people won’t have to struggle as hard and it decreases the learning curve. Because of established UI conventions we learn to close screen windows in the upper right hand corner (more often than not), or expect a certain look from our icons. Of course there will be times when a convention  no longer serves its purpose or gives way to a newer pattern. If you do decide to break with convention, make sure it’s purposefully thought out and with good intention – not just to be different for difference sake.

  1. Use Consistency instead of making people relearn.

Since we’re talking about consistency…

Having a consistent UI or is a great way to decrease the amount of learning a user has to go through as they use an interface or product. As we press buttons and shift sliders, we learn to expect how these interaction elements look and behave. Consistency solidifies the way we learn to interact and as soon as it is taken away, we are then forced back into learning mode all over again. Consistent interfaces can be achieved through a wide range of things such as: colors, directions, behaviors, positioning, size, shape, and labeling.

  1. Use recognition instead of recall.

This is a classic principle of design tied strongly to the psychology that suggests that it is easier to recognize something existing, as opposed to having to recall it purely from one’s own memory. Recognition relies on some kind of cue or hint, which help us by recalling a past experience. Recall requires us mine the depths of our memory on our own. This is the reason multiple-choice questions on exams are faster to complete than open ended ones. Give your users the ability to recognize items that they have been exposed to before, instead of expecting   them to remember everything on their own. For example, if you wanted to ask a customer which of the products they’ve purchased they enjoyed the most, don’t present them with a    question “Which of our products have your most enjoyed recently?” and a blank text field. Instead, show them a sample of the products they’ve recently purchased and ask: “Which of these products you’ve recently purchased have you enjoyed the most?”

  1. Use icon labels instead of just icons open for interpretation.

This was a hard lesson for me to learn personally. I love the simplicity and elegance of a clean icon without the label. And while there are a few icons that have crossed the threshold into universal understanding, the fact remains that what may seem obvious to you or even many people can be    completely misinterpreted by just as many others. Take a down arrow icon   for example. Does it mean to move something down, lower its priority, or download? Or does an “x” icon mean to delete, disable, or close? To make the icons more understandable, they can be augmented with textual labels. By           combining icons with text, you remove the ambiguity.

  1. Use “benefit buttons” instead of task based ones.

Here’s two simple buttons displayed on a webpage. One button tells you that it will “Save You Money”, while the other one asks you to “Sign Up”. I’d place my bets that the first one will have a higher chance of being acted on, as a “sign up” on its own has no inherent value to the user. Instead, a sign up process has the reputation of taking effort and is often associated with lengthy forms of some sort. Buttons that reinforce a benefit will lead to higher conversions. Alternatively, the benefit can also be placed in proximity to where the action button is located in order to remind users why they are      about to take that action. Obviously, there is still a place for task based actions buttons, but those should be reserved for interface areas that require less convincing and are more recurring in use.

This list goes on an on, including even very simple ideas like using bigger clicking areas than smaller ones, using opt-out instead of opt-in, using fewer form fields, etcetera. In a future post I will talk about how elements of a good user interface like these, make up a good user experience.

What is the difference between a networking group and a peer group?

April 16, 2015

Through the development of a few different companies, I’ve been involved in many networking groups.  Admittedly, my objective in joining was business development – which is typically the purpose of such groups.  However, rarely did they amount to anything productive.  Over the years, my focus shifted from a typical sales approach, to that of focusing solely on relationships.  Lo and behold, our business began to grow rapidly strictly through word of mouth.

Fast forward a few years.  In 2012 I was lucky enough to be introduced to Vistage by a friend and colleague, Marc Emmer (  It was through Vistage that I learned what an “executive peer group” was, and how much it could bring to one’s expertise, personal and professional growth, and very importantly, to one’s network of quality professionals.  The best peer groups provide access to non-organizational peers at similar stages in their careers, free of any conflicts of interest, or hidden agendas and harnesses the collective learnings and problem solving capabilities of the entire group as a resource to all.1

I was recently reminded of how significant an impact this has had in my career and the development of the two companies I currently run: Status Not Quo ( and Oddly Even Studios (  I was very pleased to be invited to speak at an event jointly hosted by Executive Next Practices ( and Vistage ( on the topic of “Growing your company,” with my portion focusing on technology.  The other topics addressed were marketing, sales, human resources, and culture.

Being surrounded by over a 100 CEOs, C-level executives, owners, and key people is always an eye opening experience.  Meetings like this are where you grow as an individual, a professional, and as a company.  Relationships and connections are made based on a solid foundation of expertise, common interest, and respect.  In my experience, this leads to the type of relationships where doing business together is a logical outcome.  I wholeheartedly encourage professionals to explore both organizations – and experience the growth across all fronts.

Scott Capistrano


Great Steve Jobs Quote to think about

April 16, 2015

Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it.

~Steve Jobs

Understanding Universal Apps in Windows 10

April 1, 2015

Microsoft has announced the death of the Windows Phone, replacing it with a new initiative to combine their desktop and mobile Operating Systems into one unified platform. This is great! Now I can install my favorite game or program on my phone. Right? Right!? No, unfortunately the marketing message and reality are far from the same. While Windows has begun to merge the code base of the two platforms, the reality is building apps for Windows Phone “Windows 10 for phones” is still its own process.

At a technical level, what Microsoft is providing is the framework to create a shared code base between Windows 10 and Windows 10 for Phones projects. Unless you plan on specifically leveraging their Universal App framework and their allowed programming languages (currently only C++ and C#), your program will not be supported on Windows 10 for Phones.

I applaud Microsoft for its efforts at created a unified Operating System, as well as offering free upgrades from Windows 7 and 8 to Windows 10. This is going to go a great way in creating a stable, modern environment for Windows developers going forward. Unfortunately, the strides they have made are not enough to make significant headway into the mobile market. True mobile-desktop cross platform apps remain Microsoft’s mobile Ace in the Hole. Unfortunately they have not yet figured out a way to make this happen (this would entail figuring out how to run programs written in x64/x86 architecture on an Arm chipset). Perhaps Windows 11 will deliver us true Universal Apps. If it does, Android might be in trouble.


March 30, 2015

I am arguably one of those parents that constantly obsess over their kids’ grades, activities, eating, sleeping, even potty times! Helicopter parenting, hyper-parenting and over-scheduling are all attributes of almost all middle class parents these days. What makes us constantly worry about our efficiency as parents? What drives us to push the kids to the extend they break? May be we lack the confidence that our previous generations had. May be the world we grew up in was a much less competitive place with much lower expectations. Or may be, we are more aware. I see a 2 year old playing violin somewhere else in the world and wonder if my kid can. Can my 8 year old spell Czechoslovakia because some other kid just did? We tend to prepare them to face a safer tomorrow by sacrificing a better today.

There are scores of parenting books that advice how a child should be from the moment of conception. Every development from then are measured and checked for delays. Even the slightest change becomes a reason of worry and is usually dealt with therapies, interventions, medications. Not everyone is born genius. Albert Einstein did not do well at school! Not “gifted”, not “learning-disabled”.


The Cost: Over-Scheduled Families

Mine is a typical example of an over-scheduled family. My kids have scheduled activities throughout the week and the weekends. What do we gain out of it other than fatigue and loss of family time? I don’t get to play with my kids the way my parents did. They don’t even know how to deal with “free time”.


You can either start accepting busy life as the perfect way of living or you can start taking it apart and really start prioritizing. Keep things you know will go a long way and cut short the ones that won’t. Second, give the kids some space to breathe. Let them be kids. Encourage playtime. Grant the freedom they deserve. Stop obsessing over standards and measurements. Easier said than done! But that sure is a good place to start. Let it go!

Xamarin Forms: Implementing Infinite Scroll on a ListView

March 19, 2015

I’ve spent quite a bit of time with Xamarin over the last year. It’s ability to create cross platform mobile applications at an incredibly efficient rate continues to impress me. One feature I find myself implementing on almost every project is infinite scrolling. Today I will walk you through implementing infinite scrolling.

The main goal with this style of infinite loading, is to prevent the user from ever seeing the “end of the page.” We accomplish this by invoking the onAppearing function of the ListView; As you get near the bottom, the web service loads more data in the background. When the changes hit the ObservableCollection, the UI immediately reflects the changes.

You can find the full source here:

    public class InfiniteScrollExample : ContentPage
        private int itemsPerPage = 20;
        private int pageNumber;
        private bool dataLoading;
        private ObservableCollection<TextCellData> UIData;

        protected override void OnAppearing()
            base.OnAppearing ();
            pageNumber = 0;
            UIData = new ObservableCollection<TextCellData>(FakeWebService.GetData (pageNumber, itemsPerPage));

            var list = new ListView ();
            var cell = new DataTemplate (typeof (TextCell)); 
            cell.SetBinding (TextCell.TextProperty, Text);
            cell.SetBinding (TextCell.DetailProperty, Detail);
            list.ItemTemplate = cell;
            list.ItemsSource = UIData;

            list.ItemAppearing += (object sender, ItemVisibilityEventArgs e) => {
                var item = e.Item as TextCellData;
                int index = UIData.IndexOf(item);
                if(UIData.Count  2 <= index)
            list.ItemTapped += (sender, args) => {
                System.Diagnostics.Debug.WriteLine (ItemTapped);

            Content = list;

        private void AddNextPageData() {
            if (dataLoading)

            dataLoading = true;

            List<TextCellData> nextPage = FakeWebService.GetData (pageNumber, itemsPerPage);
            foreach(var item in nextPage)

            dataLoading = false;

public class TextCellData {

        public string Text {get;set;}
        public string Detail {get;set;}

        public TextCellData(string t, string d) {
            Text = t;
            Detail = d;

 public static class FakeWebService

        public static List<TextCellData> GetData(int pageNumber, int pageLength) {
            List<TextCellData> data = new List<TextCellData> ();

            for (int i = (pageNumber * pageLength); i < (pageNumber + 1) * pageLength; i++) {
                data.Add (new TextCellData(Item  + i.ToString (), Infinite Scroll Example));

            return data;


March 19, 2015


Ok, I admit it: I love coffee.

I love the smell, I love the ritual of making it and I love that it wakes me up. I am notorious among my family and friends for drinking coffee all the time. So, full disclosure, part of the reason I wanted to write this story is to protect my own ego — and get everyone off my back when I go for my third cup in the afternoon.

Coffee is not the Evil III that Grand Proprietors of Health like to profess while they are making their organic, herbal tea. In fact, drinking three to five cups of coffee per day is actually good for your heart, according to a new report from the 2015 Dietary Guidelines Advisory Committee. That’s a report authored by a group of highly regarded scientists, with more letters after their names than in them, who assemble the latest scientific knowledge and present it to federal regulatory agencies.

Ah, the clouds part, the angels sing, and glory is forever mine!

But seriously, coffee is a controversial subject. Working class America is busy round-the-clock and we are always looking for ways to increase our productivity.

And so I add to the cacophony of how to be your best, most productive self by cheering a trip to the coffee room. The report says that there has been “consistent evidence” to indicate that coffee drinking adults tend to have lower risks of type 2 diabetes and cardiovascular disease. Coffee drinking is also a buffer against Parkinson’s disease, according to the report.

To be fair, the report also says that excessive calories coming from cream and sugar that is usually put into coffee is never good. I like my coffee black, a smooth espresso over a green tea any day for me but every now and then I will add some creamer when I’m in the mood to have a cheat day. So, there you are, tea-drinkers with your puffed chests scoffing at the lowly coffee drinkers, you are free to scorn me for the cream in my coffee, but not the coffee itself.

Haters gonna hate. Now, stop yapping and someone join me on a Starbucks run.


Get every new post delivered to your Inbox.

Join 339 other followers