一个项目或版本开发过程中,交互设计师50%的时间在沟通,40%的时间在思考,10%的时间在写文档。当然,只是个大概值,不同的工作流程下可能略有不同。由此可见,沟通对交互设计师来说,是一项很重要的技能。前期与产品经理、视觉的沟通,后期与开发、测试的沟通,每个环节都很重要且都会关乎到产品上线后的体验。但今天只总结我(交互设计师)与开发的沟通技巧,与君共勉。
首先,多学善问
毕业刚入行的时候,接到的第一个任务是:优化语音查找异常处理流程。对于计算机一窍不通的自己,对于为什么会出现异常完全不知,然后就各种问导师。导师把我叫进会议室,系统的给我讲解了本地、网络、服务器、服务器反馈、本地反馈整个后台工作的流程,很形象具体,对自己以后处理相关问题都很受用。
上面的故事可能说明遇到一位好导师很重要,但更重要的是你自己如何发掘资源。许多交互设计师可能和我一样,并非技术专业出身,所以刚入行的时候与开发沟通难免有些吃力。这时候你需要多积累一些常见的开发知识,不需要懂代码但需要了解后台处理的流程。平时遇到技术上的问题时多问,问产品,问开发。产品比开发懂交互,开发比产品更懂技术,如果产品的回答不能满足你的欲望,那直接去问开发吧,当然很多时候问开发需要点技巧。
起初,我经常语气柔和的问的“这里为什么不能实现?”,脾气好点的开发会给稍微解释下,脾气不好的开发给你“实现有困难”或“实现不了”。后来的一件事很大的改变了我的沟通方式。
在iPhone平台的一个地图产品项目里,由于当年用户还很重视手机流量且地图产品又很耗流量,所以首次进入软件会弹框提醒用户该软件可能会消耗移动流量。开发过程中,开发反馈了一个问题给交互:有两个弹框一定会重叠,一个是iPhone系统的允许软件获取位置的弹框提醒,一个软件本身的流量提醒。
“为什么会重叠呢?不能控制前一个点击消失后,再出现另一个?”
“不能,前面的弹框是系统的,不可控,并且没有权限获知用户有没有点击弹框操作。”
“为什么系统弹框会出来?”
“因为我们进去的时候需要加载地图,加载地图需要获取当前位置,软件首次获取位置时系统会弹框询问”
“这样,那我想想有没有什么解决方案。”
回到座位上,思考着如何完美解决这个问题,然后突然发现我掉进了开发的思维模式里了。我找到开发,继续追问:
“你是进去的时候就加载地图,同时弹出流量提示?”
“是的。”
“那如果先弹出流量提示框,用户操作后在加载地图呢?”
“就应该不会重叠。”
PS:因为年代久远,具体说话内容不一定完全吻合,但是整个沟通过程大致是如此的。
一般情况下,我们问“为什么”,开发会针对你提的这个问题回答原因,通常一问一答,句子很短。你处于主动状态,开发处于被动状态,而且问到的信息是一个一个的点,比较散乱,需要自己重新梳理。类似“为什么实现不了”这样的问题更让人感觉不舒服,不是语气问题,而是问问题的方式。
我们可以尝试更直接点的问“这个后台流程是怎样的?”或“这个后台是怎么实现的”。这种提问出来后,首先开发将是主导,他会给你讲背后的流程、逻辑,你只要边听边思考就行。而且开发给的是实现的大框架,很多时候他们可以重温开发流程,你或他也可以很快的发现问题出在哪,并学到很多开发实现的知识。如果没有立即发现问题,那就对你有疑问或不懂的地方继续细问,实在没有发现问题,拉另一个开发进来也是件不错的事,因为很多你不懂的,他同伴懂。
沟通除了面对面交谈,很多时候也需要邮件往来,职场邮件也有讲究呦:《职场人必备!如何让电子邮件更给力》
其次,勤于思考,帮助开发解决问题
前段时间做TV项目时,遇到一个问题:交互定义的是搜索结果中需显示所有结果的总个数,但是具体结果只展示99个(具体原因这里先不解释)。但是拿到第一个版本的结果是,结果数值最多只显示“99”,于是找到搜索的开发,然后向他反馈了下问题。
“这里应该是实际的数字不是结果的个数,实际数字更显得我们的内容丰富,现在无论我输入哪个字母都是99,一来让用户觉得内容不丰富,二来会感觉程序出了问题”。
“显示实际个数会很复杂,因为结果可能几十万条,返回结果会很慢。”
“恩。我理解的实现是这样的:用户输入后,我们先去服务器检索,检索完后将所有结果按匹配度排序,排完序之后再取前100条展示,是么?”
“是的。”
“那在将所有结果排序的时候,其实是可以顺带取到这个数值的,因为是对所有的检索结果重新排序,不知道对不对?”
“应该是这样的,我再试试看。”
很多时候,开发不是说推卸责任不想做,而是有时候他们掉进了他们的线性思维里,一时没法跳出来看问题。你需要做的是,多思考问题,帮助他们一起发现问题根源,并解决问题。当看到实现与交互预期不符时,不要用兴师问罪的口吻沟通,尽量心平气和的陈述事实,看是对需求没有理解清楚还是一时马虎或者技术上遇到了问题;当自己的交互流程被质疑时,尽量从用户情景、流程任务或者是产品目标等专业方面解答他们的疑惑。同时由于和开发后期讨论时,大部分是非常细节的问题,要保持自己头脑清醒,时刻记住用户场景、用户目标,防止被他们的思维带着走。
再次,建立与开发的信任
在一个项目中,建立信任很重要,包括产品、视觉、开发对你的信任。信任一旦建立后,一些工作沟通都会很顺畅。如何建立信任?前期多与产品沟通,自己多思考问题,在你做每一步决定时,多对自己问几个为什么,做到有源设计。这样到开发阶段返工、修改会减少很多,当开发向你反馈问题或有疑惑时,自己先认真想想,有疑问的地方先找相关人员确认,然后再给答复。我自己工作沟通中,经常说的一句话是:“我先想想,等会给你答复”。
综上所述,首先多积累知识,设计、开发都要追求有源,与开发沟通时多站在他们的角度思考问题;其次大家都是平等的,敬业且富有责任心的,大家奔着解决问题的目标去沟通;再次,先做好自己的工作,那样大家都可以少干点活。