The Importance of Sensibility in Designers and Developers

A few days ago, I went on a tweeting spree, exclaimingwise words‘ about design, development and shipping stuff. I say stuff, because it can be a product, a feature, etc.

Tweets make you say things in an economic way. They also make these thoughts easy to consume, and easy to rally behind. But that is mainly because they almost always lack a sense of nuance. So let us revisit the core mindset behind those small messages that saw the light of day on the internet that day.

As a preface, I will start off with my last tweet:

I guess what I’m trying to say is: being sensible towards both design and engineering will allow you to work on awesome projects forever.

Design and development as a job on its own is not interesting to me, and I honestly think it shouldn’t be to any designer or engineer. In order to make great products, and continue doing this, it should be more than a job.

Shipping

For one, you actually have to gain the skill of shipping a product — or even just a feature. This is probably the hardest skill to learn. One way to get better at this is being sensible across the aisle between design and engineering.

If you are a designer on an interactive product and you cannot prototype, there is inevitably going to be a ceiling of skill level that you will hit. The same goes for an engineer that cannot ship code that is practical or usable.

Beautiful code is useless if it is not out in the real world.

The vast amount of code I have (seen being) written that has not seen the light of day is baffling. One of the prime examples was back in 2008, when my team at the time worked on an online gaming project for over nine months — we had an insane isometric visual engine in Flash etc. — which did not ship. Millions of beautiful pixels that did not ship. Tens of thousands lines of code that did not ship.

Shipping is important. Look at the original homepage that Twitter shipped, that Square shipped, that Facebook shipped. Hell, the original homepage that Instagram shipped. It wasn’t pretty, but it did what it had to do and got shipped.

Details and Functionality

Hey developers, engineers, Caring about a one pixel highlight is what can make you stand apart from the flock.

This tweet probably did not convey the thing I was trying to say. The importance of engineers caring about how something works — and how to make it easy for people to use — is so undervalued in the engineering community that I cannot even fathom it. And that is exactly why as an engineer you should care about this. And do not forget: beautiful things work better.

Sure, your slider doesn’t have to have that iOS 6 Music app faux light reflection, but as you keep on iterating, functionalities become more powerful and better engineered details better will make a massive difference.

Prototyping, Fear, and Assumptions

This all started after I had just gotten some piece of Javascript to work in our growing front-end codebase at Instagram.

Hey designers, Coding isn’t that hard. Just dip your toe in, you might like the insane rush of building stuff.

If you want to create something, you should learn the basic level of actually implementing it. This goes for handcrafting physical products as well as interactive ones. Sure, it’s scary. Yes, it starts out being confusing. And there is more than a 99% chance that you will fail at your first try.

But we live in an age where the internet offers us frameworks like Django and Rails, and resources like Codecademy. Learning how to hack something together has never been this easy, and it will only get easier as more of these resources see the light of day. There is nothing better for a designer than seeing your ideas in practice. Because if you don’t, every single decision you will have made in your wireframes, your sketches, your vectors and your pixels will be assumptions.

Sure, as you grow as a designer your intuition will grow. But if your intuition over time consists largely of a stack of assumptions, that will not result in the best possible product.

Sensibility and Iteration

When we are thoughtful about creating — when we design, iterate, prototype, iterate — we can create better things. We can create great things.

When we are sensible towards both design and development, we can prioritise features, we have better insight into our process, and we will create a better product with the restraints we have.