Hllo,大家好!
本期为大家带来的文章来自于iDi实验室级的学姐—黛西
本次分享是黛西所在的Kp设计中心,讲述如何发现问题,通过设计的手段解决问题,直到影响整个产品设计研发团队的思维与效率、为极致用户体验实践的思考。
作为团队首位「交互设计师」的她不以岗位titl定义自己。而是基于公司阶段,强力发起项目到推动落地,直至产生后续更多的价值,继而应用驱动业务,帮助达成业务目标。通过真实的实践使得岗位成立,也希望可以给业界对交互设计师的定义、与设计师的焦虑提供一些思考。
前言
设计开发语言已经不是一个新概念,早在Yahoo时代就已产出一套完整的YahooUILibrary,而目前很多公司也设立了组件团队UX-EnginrTam来搭建、应用与维护,甚至开发专门的工具支撑。
那么,在Kp发展了3年左右,相对成熟但没有基础中台组织架构人力保障的时候,如何由设计驱动,运用设计开发语言,来解决现阶段产品存在的问题,并创造更多设计之外的价值呢?
背景与问题
从解决问题开始到体系化收益,先看看存在什么问题。
以下是一段工作中的真实对话:
测试:“这个Toast的位置有点尴尬,我觉得放在上方比下方好,你觉得呢?
产品”研发:“在上面好像明显一点?”
产品:“哪里明显就放在哪吧!”
「你觉得、好像、我感觉」我们每天都在工作、生活中做着各种各样的决策,不可避免的容易使用个人主观经验与感受去做判断,而互联网产品设计开发是逻辑严谨而科学的实践。在产品业务刚建立,只有一个产品经理和设计师的阶段,偏向主观决策难免会使得产品带上一些个人色彩。但随着团队的发展,从一人到多人,单业务到多业务,产品复杂度不断增加,加上iOS、Android、Wb、小程序等不同平台的特性差异,公共框架应更像同一个人做出来的,产品设计代码的公共部分应该有更多同质化的合并利用。所以当这些呈现在一个平台客户端之内的时候,如果我们缺乏客观有章可循的设计开发语言,就会产生产品内部、外部的各种问题。
一、外部体验层
外部问题
体验是「感」与「官」的结合,除了视觉观感的体验,如果底层交互行为没有统一的定义就会产生不一致的设计与代码,导致产品设计开发的臃肿,如:
相同场景下的弹窗文案不一致
从基础组件到垂直复杂大体量的业务和横向多条业务线中的体验问题会积少成多越发严重,容易造成用户感知的混乱,折损产品的易用性及用户的使用效率,不利于培养简洁一致的用户心智与沉淀体验品牌。
二、内部协作模式与效率:
内部问题
1.随意新增产品设计行为样式
不断按照个人主观意识去新增样式、放任行为规则,会导致产品功能行为不合理,并产生大量重复的代码。
2.缺乏严谨的底层UX规则
UI底层的产品逻辑结构基础不牢固,UE行为操作与规则定义不统一、不确定。
3.产品设计开发协作困难
当我们对组件规范缺少系统的存储以及迭代机制,内部员工之间以及新增人员,会花费大量的时间在协作上面,造成内部消耗,形成不好的循环。
4.无法快速支撑业务
基础设施资源利用效率低,当面对新业务时,无法应用设计开发语言快速搭建产品,影响构建产品壁垒的速度。
早期业务从零开始建立的时候,需要快速在混战中定位产品、建立业务,业务的体量和产品复杂度小,公司往往是依托某一个业务线生长开来。
单一业务线
为解决以上问题,我们使用搭建设计开发语言的手段,作为平台基础设施的公共资源,强力透传提供给全业务线应用,一定程度上弥补了对中台建设的不足,底层自下而上,从一致科学理性的源头触达给用户。
全业务线应用
无论产品如何升级、业务如何快速增长,界面、结构、操作应该保持一致而收敛,而不是新增、堆砌和过度设计开发。协作产品、设计、开发的角色建立一个更好、更快的产品。「更好」因为一致的体验更容易被用户理解,「更快」因为建立统一的设计开发语言后,面对新需求时可以直接调用,迭代组件时可以全局生效,实现从分业务线单个页面到集群批量修改迭代组件。甚至某些情况下,可以免掉UI设计与标注,业务可以直接根据需求调取代码库组件。
什么是设计开发语言
设计开发语言是通过对具有一定量级的业务功能、内容进行拆解、归纳共性、拼装组合,尽可能从底层上给予标准的定义和场景分类,并进行设计开发的封装,以高效复用,取代重复的一次性设计开发,一定程度上实现组装产品页面。从而在提升效率的同时,保证产品设计的正确性和一致性,沉淀内敛高品质的体验品牌。
设计开发语言本身如何定义其实并不重要,某种角度上来说设计开发语言其实是对多人员行为与协同、业务增长复杂度的一种「人」和「事」的管理规范原则依据和工具。
什么是设计开发语言
一套优秀的设计开发语言在研发团队的配合下将成为产品发展进步的发动机
我们如何理解一个产品所处的阶段,决定了采取对应的工作方式,从而事半功倍。
产品不同阶段的设计开发语言方式
1.新产品建立阶段
在业务最初建立的时候,由于没有业务体量,无法抽取共性,从而无法被组件化。此时只能靠经验丰富的产品、设计、开发进行归纳,不对相同场景的设计增加主观的样式和代码。随着业务量级的增加,从底层基础样式和控件开始逐个明确,根据UE定义,匹配UISymbol,开发进行控件封装,存储在公共代码库,和业务解耦,同时供各个业务调取复用。
2.成熟产品
成熟的产品如果没有一开始就进行组件化,比较适合在一个大版本的时候,进行大规模批量化的替换,从复杂的业务形态中抽取共性框架,强收敛、重统一,从基础元素、基础控件、基础组件,再到业务功能组件,分层进行。
那么,什么方式适合成熟3年左右的Kp呢?
我们没有一个设计驱动的大版本来进行,并且组件化决策是伴随3年阶段,UE角色的加入,设计团队一些新的尝试背景下进行的。因此选择的方式是从感知最明显的基础组件入手,组织设计团队进行内部沟通,并与产品研发团队进行组件评审、封装组件,最后修复替换各个业务线以及公共基础部分不合理的地方,慢慢磨合搭建完整的设计开发语言工作流。以控件为单元,进行两周一次的迭代。
设计开发语言的目标
设计开发语言的目标
设计开发语言的前提是保证体验准确而合理,遇到错误的用法需要进行优化更正。为保证组件拥有尽可能长周期之内的稳定性,以及尽可能广的业务形态包容性。制定组件的时候需要怎么才能治疗白癜风白癜风光疗是怎么回事