double+diamond
作为一名设计师,在设计过程中懂得取舍,结合用户的需求,将产品精简化,才会呈现出好的效果,下面这一篇文章主要讲的就是此问题的内容,大家一起往下看,了解更多吧!
![](https://p0.ssl.img.360kuai.com/t015c8006e72acf7e81.jpg)
一、不取舍,做不了好产品
在日常UX设计工作中,我耗时最多的环节无非就是两个字——取、舍。
作为设计师,我要知道产品最重要的用户群体是谁(毕竟在B端G端产品中,用户角色很多,而且存在网状关系),对他来说最关键的需求是什么,哪些功能是核心,而哪些是次要,甚至是无关紧要的。
说白了,目标明确了,才能分清主次。分清主次了,界面设计才能重点突出,层次清晰。
没有对比,就没有设计。
Edwin Land
而如何“取舍”,在产品设计阶段就得明确。只取不舍,就会把功能做的大而全,把界面填充的满满当当。厚重的产品只会干扰用户对产品价值的感知,即使咱们先不考虑溢出的开发成本是否值得。
二、不取舍,达不成一致目标
意识到取舍的重要性,我们也有些改变。其中一个挺大的进步是,从无效的需求评审(仅讨论功能逻辑)进阶到到有效的需求评审(从论证“需求价值”开始)。
但评审过程依旧耗时费力——在被参与者问到“为什么需要这个功能?能不能砍掉?”时,产品和设计的回答经常是“不能,因为用户可能需要”。
这很主观,不是一个有说服力的论据。
“可能需要”是多需要?有较少可能还是有非常可能?是锦上添花还是没有就不能工作?是少数人需要还是大多数需要?是偶尔需要还是经常需要?
如果产品和设计在需求的合理性、必要性和紧迫性等维度提供了令人信服的论据,大家就不用在泥泞的讨论中消耗这么久。
我用了“泥泞”这个形容词,因为通常为了证明一个尚未立足的“论点”,(不管谁)会甩带出来更多缺乏说服力的“论据”。互相“证伪”的讨论令人疲惫。
关于需求价值的论证,咱们得理清楚边界——
- 需求设计者有责任“证实”,
- 其他参与者有义务“证伪”。
- “证实”先于“证伪”。
三、取舍很难
为什么“取舍”很值得一提?因为取舍很难,而且“舍”比“取”更难。或者说,做减法比做加法难,而且难多了。
战略的本质在于选择不去做什么。
Michael Porter
做加法只要扩大范围,考虑“可能需要”。做减法还得考虑得更完整(遗漏可不是减法),更深入更透彻,比如:
- 为什么可以减掉这个?而不是那个?
- 减掉有什么直接影响和间接影响?
- 从哪些角度分析利弊?角度是否有疏漏?
- 确定减无可减了吗?
只有掌握全貌、解构复杂、洞察关键、权衡利弊,才能做好减法。
减法很难,没有一个千篇一律的简单模型,不过我们可以探索和学习。
四、还有一点
作为设计师,我还关注的一点是,有哪些可视化的工具或方法,可以有效呈现“取舍”的过程和结论,帮助团队成员聚焦核心、快速达成一致。
1. 双钻模型双钻模型 Double Diamond (design process model),可以用来辅助在问题定义和解决方案的两个阶段,充分拓展范围并找到关键。
![](https://p0.ssl.img.360kuai.com/t01cc7796c8bf21fea2.jpg)
《How to Implement the Double Diamond Model Process for REAL》BY SOUMYADEEP AUDDY
2、用户故事地图用户故事地图 User Story Mapping,可以用来全面理解用户需求,辅助团队梳理出需求场景的冲突点、复杂性和优先级。
![](https://p0.ssl.img.360kuai.com/t01a07a9d09456aba73.jpg)
《User story maps: Tips and tricks to get you started fast》By Eben Halford
3. 用户体验可视化还有用户体验可视化的各类共线图(例如客户旅程地图),帮助团队将观察视角从开发者转换为客户,共情客户的感受和期望,更好的满足客户需求。
![](https://p0.ssl.img.360kuai.com/t01cf9845f8d7154cc8.jpg)
Coffee Shop Customer Journey Map Example 《How to create a customer journey map》By Lucid Content Team
还有其他吗?欢迎小伙伴们在评论区补充~
本文由 @杜大大杜 原创发布于人人都是产品经理。未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
","gnid":"92e59e60384cd211f","img_data":[{"flag":2,"img":[{"desc":"","height":"420","title":"","url":"https://p0.ssl.img.360kuai.com/t015c8006e72acf7e81.jpg","width":"900"},{"desc":"","height":"432","title":"","url":"https://p0.ssl.img.360kuai.com/t01cc7796c8bf21fea2.jpg","width":"1080"},{"desc":"","height":"720","title":"","url":"https://p0.ssl.img.360kuai.com/t01a07a9d09456aba73.jpg","width":"1080"},{"desc":"","height":"758","title":"","url":"https://p0.ssl.img.360kuai.com/t01cf9845f8d7154cc8.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1702111980000,"pure":"","rawurl":"http://zm.news.so.com/009a0f5035a29679e9077ec20788a519","redirect":0,"rptid":"01683dd383730d45","rss_ext":[],"s":"t","src":"人人都是产品经理","tag":[],"title":"具备这个能力,一看就是高手
淳严真1330c++中double什么意思? -
张凡恒17192396528 ______ double是双精度浮点类型 sizeof(double)是返回double类型的字节长度 (double*)是把malloc返回的void*指针转换为double*型指针,然后才能赋值给x 这个句子就是分配一个长度为n+1的double型数组,并把数组头地址赋给x
淳严真1330设计一个函数double add(double a[],int n,int m)求数组a中从下标n开始的连续m个元素的和. -
张凡恒17192396528 ______ 这个,stl的accumulate一行代码就搞定了啊! double add(double a[],int n,int m){ return std::algorithm::accumulate(a+n, a+n+m, 0.0); }
淳严真1330double 的return 用法 -
张凡恒17192396528 ______ return f; 和 return(f); 是一个意思 就是终止当前函数,并返回你调用此函数所需要的返回值 比如一个加法函数 int Add(int a,int b){return a+b;} //或者return(a+b) int sum;//和 sum = Add(a,b);//返回a+b的值 另外 return();有强制转换数据类型的作用 比如 double Add(int a,int b) { return(a+b);//这里得加上(),否则编译器会报警告或错 } 两个int型a和b的和也是int型,但是函数的类型为double,则在return的时候强制转换为double型
淳严真1330定义函数模板实现对int型数组和double型数组的累加 -
张凡恒17192396528 ______ // C++ idiom template< class T, size_t N > T accumulate( const T (&arr)[N] ) { T v = T() ; // 支持对对象相加 for( size_t i = 0 ; i < N ; ++i ) v += arr[ i ] ; // 要求实现+=操作 return v ; } int main() { int sz[] = { 1, 2, 3, 4, 5 } ; double dz[] = { 1.2, 2.32, 4.01 } ;...
淳严真1330double add(double f1,double f2)是什么意思
张凡恒17192396528 ______ 这个出现在C语言里面:double的意思是指将变量i 和变量s 定义为双精度实型变量,一般为64位.add 是实现相加的函数,如你所说的这个就是实现double f1+ double f2 虽然double f1 和 double f2 本身就是两个函数,但是在这里,它们又是add函数的两个参数.综上,你所举例的这个函数是一个复合函数,第一个double把add(double f1,double f2)这个整体定义为双精度,add把双精度的f1和双精度的f2相加
淳严真1330定义一个double类型具有10个元素的数组,从键盘输入10个成绩保存到这个数组当中,然后求这个数组的最大值 -
张凡恒17192396528 ______ #include#include using namespace std;void main(){ double a[10],s=0,av;...
淳严真1330C语言问题,使用DOUBLE为什么会四舍五入 -
张凡恒17192396528 ______ printf限定位数输出时是4舍5入.double->float,是不会4舍5入的,直接丢弃尾部的参数.
淳严真1330java 赋值 数字+d是什么意思 -
张凡恒17192396528 ______ 1、这是一种简便的写法意为表述值的类型2、举例:long型数据可以表示为数字+l,double类型可以表示为数字+d,float可以表示为数字加f等.
淳严真1330java boolean 能否参加运算 double a=4.3; boolean b=true; double c=a+b;为什么是错误 -
张凡恒17192396528 ______ 类型不对,boolean 只能使用运算符 “或|| 与& 非!”
淳严真1330在Java中定义double+db=143426d其中末尾的d是甚么意思?
张凡恒17192396528 ______ double双精度浮点型数据