关于软件配置项的讨论

背景

在部门论坛上转载了一篇关于软件配置项的文章,引发了很多同事的讨论,文章虽简单,但是大家讨论所激起的思想火花值得永久品味和珍藏。

 

原文

去掉配置项,开发自信的软件(http://www.aqee.net/2010/07/04/kill-t … ild-opinionated-software/

你的程序里有太多的配置项,太多的东西需要人去配置。API切入点设置?主题颜色配置?100种不同的字体样式和字体大小选择? 界面色调配置?语言切换配置?

去掉这些配置项,全部去掉。

你的远见铸就你的软件

你是软件的创造者,创造你想要的软件。你的应用程序应该代表你的观点。37signals 网 站的Jason Fried表示了同样的思想。下面就是他在他的第一本书《Getting Real》 说的话:

有些人认为软件应该做成无所不能、没有弱项。他们说开发人员限制或拒绝某些功能需求是完全出于傲慢自大。他们说软件应该具有最大限度的灵活 性。

我认为这纯属胡说八道。最好的软件是有远见的产品。最好的软件是有所舍取的。人们不是要看它有多少功能的,人们要的是达到某些事情的途径和 方式。 人们要的是一种对事情正确的理解。做出你的决定,坚持下去。

请记住,如果有人不认同你的观点,他们会想出千奇百怪的各种意见出来。不要试图取悦所有的人,这样会让你很痛苦。

Jason Fried的这个已经给他赚取了百万美元的网站并没有提供不少人都希望他提供的一些鸡毛蒜皮的功能。 他们的著名应用程序Basecamp 实际上只是在满足他们自己的需 求,他们认为不重要的东西一概要去掉。 Jason把他的团队看作整个软件定义的主导者,一再的删减和修改功能项,让它们回归本质。他们开发了有主见的产品。

减肥

如果有一个设置项既可以设成A又可以设成B,而你习惯于设成A,那为什么不把A变成固定选项、不可变更项呢? 如果你认为A是最好的选择,为什么还让人们去选择B?这样一来,在应用软件排行榜里,人们会抱怨为什么不能选择B。他们会说只能给你一颗星,如果你实现了 B,会给你五颗星。而又有人看到这种情况会要求你实现C和D,因为他们认为C和D也同等重要。

一派胡言。

你是这个软件的开发者。你决定一切。苹果公司 并不听取用户的意见 ,但它是世界上最成功的技术型公司。他们有个无畏的领导,不惜惹恼用户也要把软驱和鼠标上的按钮去掉。 他以大无畏的精神把非常成功的受称赞的产品废弃,一切推倒重来。 他只创建他想要的,他知道自己在创造最优秀的东西。这也就是我们要学习的。

最近,Iconfactory 网站宣布, 他们将重写 和反思 他们的旗舰Twitter应用软件 Twitterrific:

我们之前的设计受到了普通用户(甚至一些专业用户)的极大欢迎,但对于多帐号的用户却变得非常的混乱,因为人们没法分清哪个帐号是用来查询 的,哪个帐号是用来浏览热门帖子的。 而且我们有三个不同的地方来设置偏好选项,很多的设置项都是没有必要的,让大多数用户感到困惑,他们通常会对这些选项置之不理,保持缺省状态。 于是我们做了一个大动作,把所有的偏好设置全给去掉了,只有当我们发现它们有绝对的必要时,才会把它们加回来。

这个是新旧选项设置的对 比图 ,新版本完全简化了。 他们提炼了这些设置项;几乎都不要了。这需要相当大的勇气,而且只有当清楚的知道他真正想要做的是什么软件时他才能做到这些。 你已经在脑海里有了远大的蓝景,你知道这某些方面你不能妥协。 一些很强势的用户无可避免的会感到不适应,但Iconfactory公司追求的是大多数用户的良好用户体验, 它们比那些技术专家们思考出的用户体验更重要。

强势用户并不重要,要为大众做软件

功能繁多和配置项丰富只能让那些比较强势的一小部分用户感到兴奋,而对大多数用户却没多少意义。 通常用户都希望软件能在不经过任何设置下就能出色的、智能的运行。 有一个绝好的例子,我们把Android和iOS 4.0中对多任务功能的支持情况进行对比。 Apple公司并没有急于把多任务功能引入系统,因为Apple不希望有程序能在他们的系统后台消耗电池能量。相反,对于Android:仅仅几周前,Larry Page 报告说如果你让某些应用程序在Android后台运行,它们会把你的电池耗尽 。 Android里的多任务功能只是提供给一些强势用户使用,这些用户知道如何强行关闭后台程序,这样就能够给他们手机上的收音机争取更长的供电时间。 Apple的CEO宣传他要按照他自己觉得合适的模式来增加多任务功能,而不是按照那些发烧友和手机开发者期望的那样。

远见上不能打折扣,观念上你要坚持。如果你觉得12px的字体大小是最合适的,那就不要允许人们把它设置成10px。 如果你从来都认为某个配置项不应设置成除了A之外的任何值,那就不要放自己你的观点、给别人把它设置成B的机会。 不要妥协。开发属于你自己的软件。会有许多许多的像你一样的用户会欣赏你的做法的。

做你想要的。

 

讨论

袁总:

很好的讨论,说的挺有道理。
但是对目前的我们来说不太适合,原因是:
1)产品足够完善和强势
比如我是很不喜欢iphone的封闭系统以及单任务(这篇文中也提到了,是有省电的考虑);但是用过一阵子iphone之后,我也确实能理解为什么iphone能有这么多用户,有些方面确实是省心好用强大。
也就是说,这些产品已经有了很多“抓人”的功能,他们“强势不听用户话的”一些设计也是有其“苦衷”在内,有点类似于“两害相权取其轻”,比如新iphone,好像说由于解决了耗电的问题,也打算支持多任务了?
而Qone,现在还不够成熟,“抓人的地方”还不够多,当然,也有“两害相权取其轻”的时候,不是客户说啥就是啥的,不过要慎重,还是要更多从客户角度出发。
2)产品用户面和用户数量
大众类的产品,相对来说,可以做的相对“固定”,这样他希望面对的是希望产品简单好用的大部分客户,不需要有太多花哨,比如iphone的目标客户,是所有手机用户,能抓住其中20%都已经非常不错了。
但是Qone呢,它是一个企业级软件,我们的“大众”加起来也就是那么多(当然也不少了,但是和手机用户这样真正的大众类相比起来,连小众都不是了),以上次来开会的院内各所为例,来了20多家,如果我们只抓住20%…
Basecamp是和我们类似的产品,不知道他们现在这个策略产生的背景和效果,他们的用户有多少呢?我感觉一定要上了一个相当的量才能做出这样明确指示型的决策方向…
一些想法,欢迎讨论 :)

 

李引:

同意袁总的观点,在什么位置(市场位置,客户类型数量),做什么样的事情。

 

肖华:

同意袁总的看法,我们的用户群毕竟跟一般的大众类产品或一些互联网应用不一样,产品也不够强势(用户的选择面还不少),所以不大可能像apple那样的思路去做。
不过文章里面提的这个观点我觉得挺好的,我们在某些地方会给客户提供一些选择的余地,但并不是越多越好,也不是可配置的地方越多就说明这个软件越牛。既然我们做的是软件过程改进,那么我们肯定是希望把一些好的项目管理和过程改进思想融进我们的产品,推销给客户,这才是我们的核心竞争力。我感觉我们现在讨论需求或技术的时候,会走入一个误区:凡是讨论下来没结果的都让它可配置。
配置多了,必然会导致开发变复杂了,实施变复杂了,用户使用也变复杂了,但这是不是用户真正需要的,还是个疑问。比如一个功能,90%以上的用户使用A方式,少数用户使用B方式并且提出了这种需求,那我们是要在产品里面做成两种方式都可配置吗?它的利就是我们可以满足两种方式,可能市场宣传的时候是个宣传点;弊的话是产品变复杂了,成本(需求、开发、实施、测试)增加了。那我们是不是可以换种方思路,试着推荐A方式给少数的用户,既然它有90%以上的用户群,肯定是有它可取的地方,实在不行,不是还有定制的么。
以上是个人一些不太成熟的想法,希望有更多的同事加入讨论:)

 

瑞民:

在我们讨论需求时确实存在肖华描述的这种问题。对于某个需求点,甲说要做成A,乙说要做成B,感觉都说得过去,但他们实际是完成同一件事情。最后基本就会考虑两种方案都实现,让用户去选择,或是我们可以给用户配置使用其中一个。理想情况下这样当然好,满足所有用户需求。但对于成本来说,我们的工作量就得*2,以后维护成本也一样。
所以,针对具体的需求还是得具体分析,一定要考虑可配置是不是真正的用户需求。就同袁总说的那样,很多时候我们的产品应该去引导用户,而不是用户要什么我们就给什么,或是说要什么我们就能通过配置给什么。
不同的软件公司的过程,规范,要求都不会相同,所以对研发工具的要求也不会相同。我们在架构,需求方面都要考虑足够的灵活性。特别是要考虑架构的高内聚低耦合,这样就能够低成本地给用户定制出一些他们的需求。

 

袁总:

肖华和瑞民说的都很好,观点我全部都同意!
“凡是讨论下来没结果的都让它可配置。”这个做法有些“简单粗暴”了 :) ,应该是:讨论清楚,客户需要不同的解决方案,根本的原因是什么,是真的就一定要这个解决方案呢?还是为了解决这个解决方案背后的什么问题,只要问题能解决,什么方案其实并没有那么固执…就如肖华说的用90%人选择的这个方案去说服那10%的人。如果各个解决方案确实都有真实的需求,那么就“让它可配置”,以保证我们产品的灵活性。

 

余方:

这个帖子很火爆啊,讨论的内容也让人受益匪浅

我觉得问题除了是否选择支持10%的方案以外,更重要的是搞清楚方案能支持n%的用户。到底是90%,60%还是10%?现在的10%会不会过一段时间后变成90%?满足10%我们能有多大的回报?这个数据如果搞不定,当然就没法做决策。对市场、对客户不够了解,手上没有可靠的数据,心里就没底,就不得不把产品做成可配置的,什么都支持。像机枪那样扫射,而不能像狙击枪那样精准点射。

另外,我觉得配置多跟易用性好没有冲突,如果因为配置多而导致易用性不好,那肯定是配置的方式做的不够好。而且,换个角度看:发现可能的配置方案,是需求人员的一个价值所在;让产品能够灵活配置,也是架构和设计人员的一个价值所在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值