THE INCREASING RELEVANCE OF DESIGN FOR SOFTWARE ENGINEERS

As software adapts and evolves, it seems design is becoming a first-class citizen in software companies. So it should. You can make the snappiest, most reliable software out there, but if nobody can work out how to use it, is it really that good?

Likewise if something is beautiful and well thought-out, but constantly errors and is unusably slow, will anyone care how great it looks?

Creating software that’s both snappy and stunning is easier said than done.Over the last few years I’ve seen firsthand the clear differences between development and design. Trying to learn and merge the two skills takes time, patience, and a whole bunch of determination.

Related:Designers and developers collaborate better with these 5 adjustments

The differences between development and design

If you’re a developer who’s never properly dipped your feet into design, or a designer who’s scurried away from development after seeing a block of code, there’s probably a reason for that.

The fact is, they’re totally different skills. Both are creative, but that’s about where the similarities end. It’s all about boundaries.

Programming gives you clear boundaries.

Like math, the answer is either right (it compiles) or it’s wrong (spits out many, many errors). Sure, you can come up with a better, more sophisticated solution—and this is where the creativity kicks in—but in the end it’ll either work or it won’t. You’ll need to debug and log stuff out to the console to figure out what went awry.

“Creating software that’s both snappy and stunning is easier said than done.”

Design—that’s a whole different story. There are no boundaries in design.

Designing an interface or illustration takes a huge amount of creativity. It’s totally subjective, too. What might look amazing and work perfectly for one customer could be the worst solution for another. I’ve seen a few designs recently that have made me wince, but the gushing reviews from other designers tell a different story.

All designers really have to go on is their own experience and work from leaders in the space. Is it okay to use harsh, bright colors in this? Should I add shadows? Are thick borders cool anymore?

image

Given these fundamental differences, how do you fuse together these skills to become a developer who’s also great at design? How do you make sure not to step on your designers’ toes?

Creating boundaries for designers

The fact that design has no boundaries can create big problems for developers. What may look fantastic in a mockup could be rather difficult to implement in code.

Let’s look at a fictional example. Our designer wants to add an account switcher in the profile menu, since many of our users tend have multiple stores. Users will be able to quickly switch between their ecommerce sites so they won’t have to log in and out each time.

This looks like a great user experience. The user just selects the store they’d like to switch to, a new screen shows up to confirm, and voila!

Trouble is, this is a lot of work to implement in code.

  1. There is currently no way for each user to be part of multiple stores, so the whole login system will need to be reimplemented
  2. There’s no automatic colored avatar for stores, so that will need to be created
  3. There’s no screen for the switching and no neat animation to make it look awesome

So which party is to blame here? I’d say neither.

If the developer knew a little more about design, they could have given constructive feedback in the design stage. Maybe in the first version you could do without that confirmation screen during the switch?

If the designer knew more about code, they could’ve toned it down a little and thought up something easier to implement for a first run.

So as a developer, what could you have done to make sure this kind of thing didn’t happen? Set clear boundaries beforehand. This could be done by creating a clear, concise plan of what the first implementation needs to do, maybe some user stories. Then, the designer could iterate on that to mockup a second, third, or even fourth version.

“What may look fantastic in a mockup could be rather difficult to implement in code.”

Of course, this is way easier if the developer has design experience. Knowing what makes sense for the user will create a better plan for the designer. This way the feature can be shipped without delay.

Making minor tweaks along the way

In every design implementation you’ll inevitably make changes that weren’t in the mockup. Perhaps something else was shipped in the meantime which got in the way, or the browser unexpectedly made the design look terrible.

This is when your design skills as a developer really come in handy.

Instead of waiting for your designer to adjust a mockup, you can sit and adjust the design together. Explain why certain elements didn’t work during the implementation, and suggest alternatives that could improve it.

**Related: **Get over yourself—collaboration is the secret to great products

Not only will this save you both a bunch of time, but you’ll learn new skills from one another. What looks better and why? What needs to be on the screen and what doesn’t? How is CSSwritten? How does styling work in React?

Making the last 10% count

Whether you’re designing or developing, the last 10% always seems to take the longest. Maybe after weeks of working on a design, you’re getting exhausted and just need to get it finished.

Or you’re near the completion of a feature and ironing out the small, pesky bugs you put off until later. Now it’s later, and you’re regretting that decision.

It’s in that last 10% that having design skills helps you push something really amazing out, instead of something mediocre.

Things like subtle animations don’t take too long anymore in development thanks to CSS3, but knowing when to use them is still tough. Since it’s not always easy for designers to mock up animations for an app, being able to trust your own judgement is a huge plus.

Obviously having everything animate in an app could be incredibly frustrating for the user, but having subtly animated box-shadows or borders when hovering on a button can take your user experience from good to amazing.

Level up your style guide

When your app starts to grow in size, having consistency in your design is essential. If a user flicks to another page, they’ll expect similar elements to work and look the same.

For instance, when a setting can be updated, make the save button clickable. When it can’t, disable it. But be sure to be consistent—if the user navigates to another page and there’s a save button that’s always clickable, it’s just plain confusing.

By teaming up with your designer, you can create styles to add to elements in your app to make them look and work great. Working from a shared library of design elements will save you both countless hours in the future.

**Related: **The benefits of shared design systems

Designers can use symbols in their design software to easily drop in reusable elements, so there’s no need to create them one at a time. Then as a developer you can easily add classes to your elements to give them color, shadows, and animation without much bother.

“Having consistency in your design is essential.”

As the developer, you’ll know right away whether an element will or won’t work in the app. Given this insight, you can steer your designer in the right direction and create something that everyone in your team can feed off. Next time it’ll be easier than ever to make something look incredible.

The future of software development

In 5 years time, who knows where software development will be? And who knows how design and development will stand side-by-side?

With tools for designers to create websites without code, will the software developer cease to exist? Or with the increasing push to help people learn to code, will the designer role merge with the front-end developer role?

Either way, it’s obvious both developers and designers have something to learn from one another. By pairing with a developer and tweaking the last part of feature to make it just right, a designer can pick up a few things to make it easier for the developer to implement their mockups.

A developer can learn from a designer by understanding when something is cluttered, overcomplicated, or just plain wrong-looking. This’ll help them push out better, more rounded code.

[原文链接](https://www.invisionapp.com/blog/design-for-software-engineers/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342