但凡面向终端用户的产品,产品做大了以后,几乎都要涉及到基线能力和定制能力的划分。任何一个优秀的产品,都要经历从相对无序到有序的逐步成熟的过程。产品的发展总是要经历不断的阵痛,可是时间长了,我还是总免不了思考:好吧,就算产品最初匆忙和艰辛的时期已经过去,就算现在基线能力的建设已经迈入正轨,可是为什么我们的直接客户,定制团队还是那么辛苦?
有多少功能是真正值得去完成、真正被用户所需要的?
据一位定制的兄弟说,其实这个比例只有8%,我相信数据也许是不准确的,但不管数据的有效性有多少,至少,大家都在问,产品的定位是一个厚实的门户,有太多的功能需要完成,可是真正给客户使用到了多少呢?也许没有一位普通的开发人员可以估摸出个一二。这是一个产品做大以后的问题,我们离最客户的核心价值越来越远,我们不知道客户真正需要什么,我们只知道SE的规格,SE了解到一线的需求,一线才去倾听客户的声音。既然如此,其中会有多少信息走样?客户需要一个小小的草莓蛋糕,一线传达下来也许是一个大大的苹果派,到了SE那里,苹果派变成了一大盒各种口味的奶油蛋挞,最后,我们开发则做出了整整一冰箱的牛奶冰激凌。
功能不该有优先级吗?
我们的功能在开发和测试的眼中,大多是一视同仁的,开发要保证每一个功能的准确性,和一定程度上的可用性;测试要保证覆盖到所有的功能点。可是客户很单纯,他们不这么认为,他们要使用网站,这意味着网站中有他们所关心的核心价值,这也是用户量保证的最简单的原动力。比如说,在迅雷上可以看到免费的电影,在优酷上可以看到最新的视频新闻,在人人网上可以建设自己的主页,和朋友交流……那么这些功能,就是相应这些产品最有存在价值的地方,这些功能,无论从质量还是进度上,应当被优先保证。回过头说,我们的产品,核心竞争力是什么?如果这个思路不和辛苦工作的开发、测试们理清楚,不和努力赶工期、拼进度的基线、定制兄弟姐妹们达成一致,我们怎么能保证产品做下去的方向,走在最大限度地满足客户所需的道路上?
模块质量应该怎么保证?
我一直很担心,对于质量的认识,有许多兄弟姐妹似乎陷入了这样的思考中:我是开发,为了提高模块质量,那么我首要提高代码质量,我要仔细地过转测试的CheckList,我要对每个问题单仔细地修改、认真地审核;我是测试,为了提高模块质量,那么我要仔细过测试用例,我要认真检查接口调用、业务逻辑是否正确,给每个提出的问题单写全面、写规范。
呵呵,大家都是好同志,可悲剧的事情就这样发生了。首先,这样的质量是客户需要的吗?客户最看重的质量,兴许和我们最看重的质量相距甚远。比如,如果我是视频用户的客户,那么这个网站对我的核心价值,就是可以在上面看视频,那么我最迫切要求的质量,大概是视频的种类、播放视频的流畅度和清晰度。也许我们应该做一做这样的分析和思考。
其次,好的软件是设计出来的,好的质量首先也是被设计出来的,而不是靠大面积问题单改出来的!迭代回溯会议上,需要见到更多对问题数量的回溯。在SE疲于奔命梳理繁多的需求的时候,开发和测试理应站出来和SE、UCD,甚至一线的人扯一扯,毕竟从局部层面上看,只有我们才是最了解这一小块产品实现的人,也是最该被赋予设计上的话语权的人。
非功能性测试有多重要?
所有的测试用例,都是面对功能性测试而言的,对于自动化测试更是如此,对于非功能性测试,覆盖率只有零。可是,对于用户来说,能引起他兴趣的功能往往就只有那么一个或几个,能留住他的,却要靠大量用户体验的改善和满足。早些时候看到一则讲腾讯产品的胶片,QQ影音在诞生阶段,功能做得很简单,那么它凭借什么去和那么多的播放器产品竞争?我所知道的是,它的用户体验一直站在一个核心的地位,比如胶片中所述的一个例子:在全屏播放的情况下,用户点击左键会暂停播放,可是当用户先点击右键,把右键菜单调出来的情况下,屏幕上点击左键,却是取消右键菜单,同时并不暂停播放。正是这样细致入微的考虑,把产品做实做细,产品才有了可靠的用户群。
我们以前是做彩铃的,正如一位主管所说,彩铃产品最直接是面向运营商的,彩铃有什么问题,也许运营商会抱怨,乃至会投诉,但兴许还是会用我们的产品,因为由于种种原因,他并不一定有很多替代品可供选择。但是做门户,做直接和终端用户交互的产品就不一样了,用户是没有耐心的,遇到糟糕的用户体验,会丢掉信任,没有怜悯也没有太多机会,也许用户就这样流失掉了。
产品质量的定位。
产品质量当然是越优秀越好。可惜的是,各方面都想得越完美的东西,越难以实现。尤其当项目进度压力袭来的时候,在功能没法砍掉的情况下,必然导致质量的牺牲,那么我们都现实一点,如果质量不可避免地被牺牲,哪一些模块的质量该被优先保证?质量应该被保证到哪个不同的级别上?
呵呵,其中能够说水分最大的、最容易被进度压垮的,不就是非功能性的软件质量吗?比如,用户体验和性能。
让合适的人,做合适的事。
这个扯得有点远了,也许它是优秀的管理者在思考的东西。俗话说,人尽其能,物尽其用。产品中少数模块已经渐渐培养起相应的长期耕耘的田主、少数技能的专家,希望后续这样的人员和角色能够不断丰富,真正在自己的领地上具备权威和话语权,一起把产品做好。
文章系本人原创,转载请注明作者和出处
分享到:
相关推荐
智慧城市-2012年NEC智慧城市解决方案.zip
IBMERP实施应收模块业务方案和用户操作手册手册超详.doc
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
JAVA保存计算过程的计算器课程设计报告样本.doc
scratch少儿编程逻辑思维游戏源码-像素任务.zip
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
scratch少儿编程逻辑思维游戏源码-死亡锯.zip
内容概要:本文档介绍了一套完整的FPGA工程项目资料包,涵盖了单精度浮点数运算(加减乘除、开方)、浮点数与整数互转以及PID控制算法的Verilog实现。每个项目都包含了详细的工程代码、测试平台(testbench)和相关说明文件。此外,还提供了MATLAB文件用于验证PID算法的准确性,以及一个小工具用于浮点数和整数的转换。所有代码均为纯Verilog编写,不依赖于任何IP核,便于用户自定义修改和优化。 适合人群:对FPGA开发感兴趣的电子工程师、硬件开发者、科研人员及高校师生。 使用场景及目标:① 学习和掌握FPGA环境下单精度浮点数运算的基本原理及其具体实现方法;② 探索并理解PID控制算法在实际系统中的应用;③ 利用提供的MATLAB文件和小工具辅助教学或研究工作。 其他说明:资料包内的所有工程均可直接在Altera平台上进行仿真测试,帮助使用者快速入门并深入理解各个模块的功能特性。
IBM企业内容管理解决方案.doc
小雉系统分卷源码,修正系统安全问题
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
scratch少儿编程逻辑思维游戏源码-我的 scratch 旅行.zip
scratch少儿编程逻辑思维游戏源码-太空派对.zip
内容概要:本文详细介绍了冷冻站控制系统的设计与实现,重点在于WinCC上位机和400冗余系统的应用。文中首先阐述了WinCC上位机的作用及其设计要点,如数据采集、处理、存储和报警显示等功能模块,并对其响应速度进行了优化。接着探讨了400冗余系统在提高系统可靠性方面的作用,通过多控制器备份机制确保系统稳定运行,并引入了故障诊断技术。最后,提供了详细的系统图纸(包括电路图、接线图)和程序代码(涵盖WinCC上位机程序及400冗余系统的控制逻辑),方便用户进行安装、调试和维护。 适用人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要理解和实施冷冻站控制系统的专业人士。 使用场景及目标:适用于新建或改造冷冻站项目,旨在帮助技术人员掌握WinCC上位机和400冗余系统的具体应用,从而构建高可靠性、高实时性的冷冻站控制系统。 其他说明:文章不仅提供了理论指导,还附带实际操作所需的图纸和程序,便于读者直接应用于工程项目中。此外,作者对未来的技术发展方向进行了展望,强调将持续优化和升级系统,以适应不断变化的工业需求。
scratch少儿编程逻辑思维游戏源码-我的世界 Minecraft v11.7.zip