“品质在于构建过程”吗?

标签: 杂项资源 | 发表时间:2011-10-16 13:16 | 作者:Todd ndv
出处:http://coolshell.cn

今天在微博上看到几位敏捷爱好者(本着讨论问题的态度故隐其名)探讨敏捷测试和质量保证问题,我忍不住也加入了讨论:

Z先生原帖:我刚才看到一个大会演讲稿,谈到敏捷测试六大指导原则:1.仅靠测试人员不可能获得高质量的软件,质量是整个研发团队的责任;2. 场景是不可穷举的,测试活动必须是风险驱动的,关注于高风险的场景;3.分层自动化测试是唯一出路;4.在正确的位置进行恰当的测试是自动化的关键;【待续】

S先生回复:品质在于构建过程。检验贯穿构建过程,提供及时反馈。

我回复:什么样的构建过程才能出Unix这样的品质呢?迭代?快速反馈?TDD?

S先生回复:据说stroustrup听到重构时的反应是,我们从七十年代就这样做了。推荐《UNIX编程环境》,了解大师的编程方式。

我回复:您偷换了概念。不能说大师用了重构,C++和UNIX的品质就是靠重构或某种构建过程得来的。厨师做菜用到了勺子,不等于菜好吃是因为勺子。

S先生回复:我没有概念。我们看到一个果,就问因是什么。其实是泛因果,无因果,一切是机缘凑巧。

我回复:“品质在于构建过程”难道不是一个明白的因果描述吗?

S先生回复:品质在于构建的人。我说话时没因果,你看到了因果。

我回复:欢迎敏捷爱好者围观!

很高兴几个回合讨论下来S先生修正了先前“品质在于构建过程”的观点。什么重构、TDD、迭代、快速反馈等等构建过程都不是Unix品质的核心要素。我不但不认同“品质在于构建过程”、“测试是最好的设计方法”这类机械式的观点,而且也不满意把软件优劣归结于“人是根本”的简单回答。我们需要探索一个既非机械式,也非简单地归结为某种理念的答案。

像Unix这样优秀的软件,真正的核心要素到底是什么呢?我的答案是:模型,即人心中的软件。在看得见、摸得着之前,Unix的品质就已经存在于设计者的心中了,他们不会在Unix诞生后惊讶:“哇,Unix的稳定性这么好,7×24小时运行,从来不蓝屏”。模型一定是设计者心中最美最自然的东西,为什么我们阅读操作系统源代码会像进入迷宫一般理不清头绪,而作者自己却觉得头头是道呢?因为作者心中早已依稀看到了那个美丽的作品,我们以为他几十万行代码敲很辛苦,实际上在他自己看来是自然地一步步向她靠近。

模型是软件的灵魂,存在于设计者的心中,而软件的构建过程正是心中的世界向现实世界逐渐投影。模型可以是完美的,而现实却非完美,或许有时候我们很幸运地到达了,或许有时候我们不得不向现实妥协,改变心中的世界。试图制造灯泡的爱迪生可能会一时找不到熔点极高的发光金属而止步不前,企图制造永动机的人则根本无法实现。在不完美的现实中,我们明明想的是a+b,却敲成了a-b;我们以为某个API可以很快返回,没想到却等了5秒钟,为了不阻塞用户不得不改成了异步。Review、测试等构建过程在一定程度上弥补了现实的不完美,并对模型给予了反馈,但它却无法决定软件的特质。Windows NT内核和Windows 3.1内核的品质差别不在于微软采用了两种不同的构建过程,而在于它们采用了不同的内核模型。灵魂与躯体的差别就在于此!虽然对于普通的软件开发通常有不少成熟的模型供选择,并不需要总是创造自己的模型,但理解模型间的差异,并在设计时选用恰当的模型仍然比采用某种构建过程更加重要。服务器架构采用Nginx似的异步IO模型,还是采用Apache似的每个请求一个线程的模型远比开发是否采用了TDD更为重要。

模型的产生是柔性的,主要源于灵感;过程的执行是刚性的,主要源于逻辑。苹果砸在牛顿的脑袋上能砸出万有引力模型,砸在我们脑袋上却只是“哎呦”一声;但一个苹果3元钱,两个苹果2*3=6元钱却在牛顿和我们面前是平等的。迷信灵感和迷信逻辑是两个错误的极端,孔子讲“天下国家可均也,爵禄可辞也,白刃可蹈也,中庸不可能也”,任何一项技能的高级阶段都是关于“度”的艺术。如同光具有波粒二象性,软件开发也具有艺术创作和工业生产的二象性,它包含了柔性的设计和刚性的过程。越是不成熟的前沿领域越表现出柔性特征;越是成熟的一般领域越表现出工业生产的特征。因此,一个以新产品为主的创业型公司应当更注重设计,更需要画家、诗人般的创造型人才;而业务成熟产品稳定的大公司应当更注重过程,更需要踏踏实实的生产线工人似的人才。但在当今这个瞬息万变的信息时代,即使是世界500强的大公司也越来越不稳定,越来越需要创新才能适应,所以即使大公司也不可忽视软件开发的柔性特征。同时,我们也不能迷信模型,过程同样可以成为企业的核心竞争力,比如:富士康。虚虚实实,实实虚虚,其妙无穷。老外做Nike品牌(虚),我们做代工生产(实),高额利润被老外拿走了;我们经营航空公司(虚),老外生产波音飞机(实)高价卖给我们,高额利润又被老外拿走了。靠虚取胜还是靠实取胜?这是个问题^_^

或许我对于模型的描述不太让人满意,人们多习惯于那种有章可循的感觉,即便不是死板的知识,起码要找个“在某某思想的指导下”才觉得心里有着落。或许还有人说,模型的确重要,那么我们能不能有一个过程、模式或套路来推导出模型呢?比如,现在非常流行的从用户需求出发的分析模式,即“分析需求,抽象出共性,共性是本质的,本质是稳定的”,这类模式的特点符合人们希望找到套路的心理,一看就明白,容易操作,有成就感。我不否认这类模式的确可以得出可用的软件设计,沿用成熟的模型也未尝不可。但我们应该明白,心中的世界远比现实的世界更广大更美妙。世界是多元的,现有的东西(用户需求、成熟模型等)只代表了其中某几个维度的视图,设计者心中应当有更多的维度!用户需要一个文本编辑器,是设计者心中的世界决定了他交出的作品是Vi,还是Emacs,亦或是Notepad。亨利·福特说:“如果你问用户需要什么,他会告诉你一匹更快的马”。汽车源于福特心中的世界,这是一个比只有马的世界更多彩的世界。乔布斯是一个不重视市场调研的人,iPod,iPhone,iPad都不是发个问卷,做个市场调查看看用户需要什么的结果。Apple是乔布斯心中的世界在现实中的投影!所以,请打破“从用户需求出发”,“从模式出发”的迷信,释放你的想象力,让自己心中的世界去包容现实的世界吧!

每个人心中都有一个属于自己的世界,牛顿运动定律是牛顿心中的世界,相对论是爱因斯坦心中的世界。哪一个才是本来的世界呢?有没有本来的世界呢?本来的世界是什么样子呢?… 老子给我们启示“道可道,非常道”,说得清,道得明,想得到的都不是永恒的真理,所以真理不可言说,对真理的探索永远没有止境……

随便看看

相关 [品质] 推荐:

关于产品质量

- 茫茫 - 弯曲评论
记得去年某天曾去1号楼机房参观T系列存储系统的硬件,由于前期知道T系列的IO接口卡均可热插拔,而这在中端存储产品里是没有其他友商可以做到的. 抱着好奇的心态,我就反复尝试了一下,可以任意插拔IO接口卡而不影响业务,效果非常好. 为了进一步验证T系列的可靠性,我直接拔出了正在运行的双控中的一个控制器,此时主机端正在从阵列中拷出一个大文件,拔出控制器之后,拷贝出错终断了,这个也是可以理解的,毕竟操作系统自带的拷贝是写死的,超时值不可调.

“品质在于构建过程”吗?

- ndv - 酷壳 - CoolShell.cn
今天在微博上看到几位敏捷爱好者(本着讨论问题的态度故隐其名)探讨敏捷测试和质量保证问题,我忍不住也加入了讨论:. Z先生原帖:我刚才看到一个大会演讲稿,谈到敏捷测试六大指导原则:1.仅靠测试人员不可能获得高质量的软件,质量是整个研发团队的责任;2. 场景是不可穷举的,测试活动必须是风险驱动的,关注于高风险的场景;3.分层自动化测试是唯一出路;4.在正确的位置进行恰当的测试是自动化的关键;【待续】.

从细节看新房的品质

- - flow with the life
很多买新房的人容易被model home(样板房)里的装饰和摆设所蒙蔽. Model home的套路基本上就是摆上一套像样一点的家具,放两块靠枕,放些瓶瓶罐罐,插点花花草草,墙上挂点画,再搞点灯光窗帘什么的. 无论房子本身品质如何,这么一搞,都会看上去很赞的样子,让人很有购买的冲动. 这时候需要做的是冷静一下,通过观察房子的一些细节来了解房子的品质;或者当遇到两套价格地段都差不多的房子,可以通过下面这些方面来判断哪套房子的builder更给力.

谈如何提高产品质量

- - CSDN博客综合推荐文章
    最近,我们的产品上线了,上线之后,稳定是最重要的,但是,出现了几次bug,都是不应该犯的错误,所以,避免bug特别是重大bug出现,提高产品质量,非常迫切. 为此,我花了几天时间,翻一些资料来系统地学习,此文是学习的总结.     产品开发过程:需求分析、设计、编码、单元测试、集成测试、功能测试、Beta测试和发布.

什么决定了网站的品质感(一)

- 盛开 - 所有文章 - UCD大社区
[前言]视觉设计不是我的专业也不是我的擅长,但是最近受工作影响,总是在思考这个话题. 索性做一番探索,看看究竟影响一个网站品质感的因素究竟是什么,尤其是希望能够做一些可行性的指导方案. 因为品质感能够通过提升用户对于一个网站可信度和可靠性的评价,从而让他产生良好的第一印象,初始信任感. 就好像,两个相亲的人,见面10秒钟的第一印象.

卡诺模型—设计品质与设计价值的思考

- 盛开 - 所有文章 - UCD大社区
对于设计的结果,我们总是希望看到亮点,品质,细节,等等. 但是这些考量的点混合在一起,让设计师在执行设计工作的时候很难针对每一个设计进行核实考虑. 我想分享给大家的是,对于产品中不同类型的品质,其所要达到的目的是不同的,设计的终点也是不同的,只有在合适的位置用对力,才能塑造出优秀的设计. 同时也能发现,其实我们的工作很多时间是在默默的做设计,绝大多数工作并不是每个都是那么重要和耀眼,但是却是必须和紧要的.

51组高品质的免费背景纹理包下载

- 罗磊 - 创意悠悠花园
有时候更新一些字体素材的时候,有人不要字体素材却想要图片上的背景,那今天就分享:51组高品质的免费背景纹理包下载,希望其中有你喜欢或者需要的. Read the rest of 51组高品质的免费背景纹理包下载 (190 words). © emilo for 创意悠悠花园, 2011. Post tags: 下载, 免费, 背景纹理, 高品质.

15张免费的高品质脏墙背景素材

- emilo - 创意悠悠花园
脏的墙壁可以体现出一种颓废的感觉,今天分享:15张免费的高品质脏墙背景素材,希望其中有你喜欢或者需要的. Read the rest of 15张免费的高品质脏墙背景素材 (33 words). © emilo for 创意悠悠花园, 2011. Post tags: 免费, 背景素材, 脏墙, 高品质.

令人难以置信的高品质设计资源

- ma - Jackchen Design 1984
收集各种资源应该是每个设计师的爱好,把设计资源归类管理后可以提高你的设计进度,也可以大大的激发你的设计灵感. 今天我们收集到了一套高品质资源,包括网页界面和UI框架箱,网页模板,博客主题模板,Photoshop动作,字体,纹理,Photoshop笔刷,HTML/CSS模板等等,而且都可以免费下载使用的,赶快去看看吧.

男女必读——好男人必备三大品质

- kylexlau - 译言-每日精品译文推荐
男女必读——好男人必备三大品质. 今天的话题是好男人应该具备的三大品质. 不少朋友在邮件中说想让我谈谈怎样才能处理好情侣之间的关系,所以接下来我将花一周左右的时间对此做一个系列介绍. 我要说的内容和电影《绿野仙踪》有关. 如果恰好你也看过这部电影,你一定知道故事主要讲述了一个名叫桃乐丝的小女孩和她的小狗“托托”一起启程拜访魔法师,乞求他帮助他们重返堪萨斯家园的故事.