Charles Peters UI Engineer

Principles of Design

1. Simplify, Reduce Friction, Shut it Down

Complexity is great but user interfaces aren't an Aaron Sorkin film. No one will sit and analyze it to find the deeper meaning of your UI. Simple is always going to win. Users have goals they want to achieve, post an update, change an attribute, see new content, do as little as possible to interfere with those ends. You should be doing everything you can to facilitate them and reduce any friction there may occur.

Time over, I read these posts where statistically users convert better, they stay longer when ambiguity is addressed in the design of an interface: icons versus text, dropdowns UI, placeholders versus labels. These ideas reduce friction for the user. They make it easier for them to accomplish what they came to accomplish.

If you can't reduce friction, maybe you need to shut down what you're doing and go back to start.

2. People Matter

Someone will have to use what you're designing. If someone isn't going to end up using it why are you working on it? Whether that person is another employee where you're working, a person using an older phone at a bus stop on the edge network, a person sitting on their sofa with good wi-fi, someone who only may have handheld device.

Each person has their own needs, concerns and goals. All of those things are variable and subject to change. We can't make assumptions about anything on the other end of the screen, not attention spans, bandwidth or device they're using. Those are just the technical things, but let's not forget about temperament, physical impairments, literacy level, and the list goes on.

People matter, they're the reason we're doing any of this. It's important that we remember that the fewer assumptions we make about the other end the better.

3. Bananas are Fucking Awful

This is an example of an opinion. This an opinion based solely on personal preferences. You should have them and identify them as such. Strong opinions are great, they mean you stopped to think, process and form a conclusion. But opinions (like most things) have a context. In the case of the bananas, it's personal preference; not a matter of ontological truth or gospel.

Opinions are not high deities. Share them with the expectation they'll change and that others may influence your thinking.

4. Abstraction is Your Friend

In terms of computer science, when programmers refer to abstraction they mean an instance being separated from a specific implementation. This is a valuable idea to apply to design. Having good abstractions make building systems easier and more congruent. Embrace this idea, let it sink while you're working.

5. Leave Things Better than You Found Them

This is a quote from the Lord Baden-Powell, "Leave this world a little better than you found it." He founded the Scouts and was British. I thought it was an original idea from the early Barney the Dinosaur videos from the early 90s. You know what, you learn something new everyday; thanks Internet! Regardless it's still great advice.

6. Name Your Open Source Projects Obscurely

Come on, this is just good sense.

7. Break Things, Set Them On Fire If They're Bad

There's this propaganda from Facebook known as 'Move Fast & Break Things', now that may not be how they currently operate but it's the idea that you should sacrificing for the immediate goal. This idea can be healthy in given situations, but I like a different concept: break things and set them fire if they're bad.

This idea is different, it's the idea that you should see if things can break easily you should identify them and if they're bad get rid of them. Ideas that can be broken easily aren't worth repairing if they're failed from the start and you'll waste more time in the long run justifying them. They're dead weight in pursuit of a focused goal.

8. You're Still Doing it Wrong

When you start doing anything, you will do it wrong. It's an inevitability of being novice at anything new. At times it can be healthy to have a critical analysis of what you're doing and assume as an intellectual exercise that you're still doing it wrong. You can pinpoint areas and ways you maybe failing and highlight ways you're succeeding.

9. Give it 5 Minutes

Anything complicated or new or strange that you need to work with or adapt to is going to foster some frustrations. Sometimes those frustrations grow and erupt. But anything that frustrates you in that way is probably worth doing and worth doing well. So when you get to that point, give it five minutes, just 5 minutes. Get up, walk around the block, make coffee, tweet a funny GIF, better yet step away from screens entirely, listen to 'Monkey's Gone to Heaven' by the Pixies (that's not even 3 minutes). Step away, you'll be glad you did.

10. Thoughtful Always Trumps Clever

This harkens back to the first principle. Between Dribbble, Designer News, Hacker News, CodePen and any other Internet thing, there will be tons of clever new ideas or interesting techniques. They may be cool and the desire to implement them in a project maybe strong, but fight it. They may not fit the needs of your project or be clear to your users. Most people aren't inundated with the same type of content you are and that's easier to forget than you might think. Always attempt to be thoughtful and intentional with your design choices.