破窗效应-谁在打破第一扇窗户?(转)

破窗效应-谁在打破第一扇窗户?
社会学家JamesQ.Wilson和GeorgeL.Kelling在《BrokenWindows》中指出:“一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破;一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七 八糟、不堪入目的东西;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹疑地抛,丝毫不觉羞愧”
在开发和测试中,谁正在打破窗户?
糟糕的需求管理
需求是变化的,实际中,要做到准确和精确的需求定义,是不可能的。这是一句正确的话,但却被错误的使用。所以有对需求文档不重视的,不做维护的;有低质量的需求文档的;有把需求的问题不当问题的;有交付物与需求不一致的时候,改需求的;也有需求不明确的时候,却已经实现的。(需求优先还是系统优先,已经分不清了)。需求是一切开发和测试工作的依据。如果需求不明确,却实现了功能的,应当根据实现的功能定义这个需求,面对的问题可能是需求定义是错误的这一种情况,而不至于要面对一方面定义该需求不明确,另一方面又自行实现功能的两种局面。何况实现的功能有可能也是错的。徒然增加需求管理的复杂程度。面对需求的变化,做好需求与交付物的双向跟踪,一方面按照需求实现系统,保持一致,另一方面,通过实现的系统重新定义不明确的需求,维护一致性,而不要存在可能性。管理的过程越简单,越能有效跟踪。
没有的单元测试和集成测试
没有单元测试是目前的现状。有集成测试吗?集成测试报告看不出系统模块间是如何集成的,是自下而上还是自上而下?现实是把所有的打包放一起,然后测试下,形成所谓的集成测试。
流于形式的测试
例如集成测试目的不明确,测试时间短,测试不充分,流于形式,将问题和希望寄托在下一个环节。例如系统测试和验收测试阶段。
不可测性
可测试性是衡量模块的一项准则。既然是准则,自然高度就高,达到也自然有难度。但并不能因为有难度就可以不做。例如能效管理系统的数据源一直是个问题,数据量,数据精确度,数据有效性等,如果不符合要求,都会导致与数据相关项的不可测试性。当不可测项多了,测试人员就会放弃继续测试的意愿。此时,还会引发另外一个问题,对于其中存在可测试的部分也遭放弃。
重用性不强的模块
例如,在我们系统中的登录注册模块,实施的几个项目没有特别的需求变化。但是在每个项目中却都有不同的问题发生。这种不合理的情形会导致测试人员对模块的重用性持怀疑的态度,并对此没有信心。从而每个项目都要重新测试一遍,造成浪费。如果重用性高,在测试中就有理由,有信心省去该模块的测试,或抽查测试,既节约时间又不用面对质量风险。
不友好的人机交互
人机交互是个大问题,却引不起重视。界面不友好,个人色彩成分浓厚,简单问题复杂处理,不便捷的操作留给用户,界面呈现的功能与实际逻辑不匹配,需要用户来摸索,增加用户操作的难度,指望通过用户手册来规避问题。软件的人机交互,无论是行业准测,还是业界习惯,都发展的较成熟。如果将一个不便捷的操作留给用户,写到用户手册里,紧接着就会用同样的方式处理更多个。因为将此作为规避问题的合理方式。一个问题,如果当前就能解决,这是最节约,最保险的处理方式。人机交互要达到“所见即所得”的效果。
无用的理论之争
公司在导入CMMI,项目在采取敏捷方式。有人担心CMMI会威胁到敏捷的项目。例如CMMI强调文档,而敏捷却相反。但测试需要文档的时候,敏捷成了上方宝剑,并滥用至极。敏捷不强调文档的一个重要目的是节约,消除浪费。实际项目中做的如何呢?有的项目系统,测试环境不明,测试范围未划分,提交的测试系统未做整理,直接将还在调试的用来测试,因此里面很多调试文件;未实现的功能未做登记的。在测试前这些不都记录在案或者消除的吗?在测试过程中,大部分时间用在去了解系统的真实情况。这是敏捷的消除浪费还是增加浪费?当浪费在增加的时候,破窗的出现也是必然的。目前的情况,这样的问题还依然会长期存在吧。为弄清楚这个问题,不妨多做些引申。
针对变化,一般有2种处理方式,一种是“以不变应万变”,一种是“拥抱变化”。“以不变应万变”的前提是有一个成熟的组织结构和灵活的处理流程。CMMI就在干这个事情。在未达到这个能力前,我想明智的做法是“拥抱变化”。实际中项目的特点千差万别,因而有敏捷,XP, RUP,等等这些优秀的思想和模型来解决实际中的问题。说到解决问题,不得不提另外一个概念“最佳实践”。什么是“最佳实践”?你用方式1,我用方式2,哪个最佳?我以前就是这么理解的。后来发现不是这么回事。把事情做成的实践就可以称之为最佳实践。对于需求的变化,或其它问题,敏捷有没有非文档的实践来处理?如果有,这是它的最佳实践。如果没有,是否因为敏捷不强调文档就不采取该最佳实践,以此避免跟CMMI理念重合?没有任何说法最佳实践是有出身的。每个开发模型,思想都有互通的最佳实践。
将不是问题演变成问题
在测试前端,如果对客观问题有相应的处理和跟踪措施,在测试阶段即使没处理完,也会不当是问题。如果没有处理,在测试阶段,则将此作为问题,且是最严重的问题对待。尽管你有客观原因。在前端该处理而未处理的,有理由相信该问题已经失控,并对是否真会处理持怀疑态度。把前端环节问题流放到后端环节的,寄希望于后端环节的控制,是破窗的滋生环境。
不注重组织过程资产和知识库的积累
每个项目,生成的代码,文档,经验总结,等等需要注重平时的积累,形成组织过程资产。为将来组织所用。如果仅仅停留在个人经验的积累,没有项目积累,组织积累,没有知识库,这种效率是相当低的。换一个人,曾经所做的事情要重新来一遍。个人高效,不代表项目或组织高效。华为在导入IPD前,IBM对他做的调研的结论之一是:华为没有时间把事情一次做正确,却有时间反复做同一件事情。这种一针见血的结论放在今天能引起从业人员的警醒吗?未必如此。例如需求还没理解清楚,内部还没统一意见的情况下,就开始编码的,导致后期内部相互推诿,或反复修改代码,或修改代码难度加大,而改需求来满足已实现的代码。这种重复,无用的劳动,也是严重的破窗的表现。
软件开发和测试的方方面面如同一扇扇窗户,我们做的是打开窗户,关闭窗户,而尽量避免去打破窗户,尤其是第一扇窗户,打破了也要赶快修补,否则软件就会随着破窗效应,一扇扇的被打破。

时间: 2024-08-03 11:17:28

破窗效应-谁在打破第一扇窗户?(转)的相关文章

关于麦格雷戈X理论、Y理论和破窗效应的随想

最近在做项目管理课程时,看了一些书籍和理论,自己心里有些感触,就把几个看到东东串起来了.不是学术研究,没什么严谨性,大家就当是了解一些理论和知识吧. 美国著名的行为科学家,人性假设理论创始人,在1957年11月号的美国<管理评论>杂志上发表了<企业的人性方面>(The Human Sideof Enterprise)一文,提出了有名的"X理论一Y理论",这两个理论的假设要点如下. 一.X理论(消积): 1.人生来就是懒惰的,只要可能就会逃避工作 2. 人生来就缺

破窗效应的蔓延

当政策和制度设定不够严谨时,就会允许"破窗效应"的蔓延.每个人都倾向于从自己的角度思考,别人有的我也要有:既然空气已经这样了,我添加一点点害处也不会影响大局,于是每个人都觉得自己的行为不会有多大影响,累加起来就呵呵??了.政府和开发商则为了眼前的利益放任不管,直到出了问题才假惺惺出台几项政策. 每多出一个人生赢家,整体就向全盘皆输迈进一步.能源你可以向外太空借,只要活在地球上,可饮用的空气和水却是总量恒定的甚至不断减少的.当人们的破坏速度高于自然的恢复速度,自然就会失衡,甚至加速失衡.

MagicNotes:自我管理中的破窗效应

MagicNotes,思绪随风飞扬,偶尔在这里停留. 在<程序员修炼之道——从小工到专家>这本书里,有这么一段描述: 在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的“废弃船只”.为什么?犯罪和城市衰退领域的研究者发现了一种迷人的触发机制,一种能够很快将整洁.完整和有人居住的建筑变为破败的废弃物的机制[WK82]. 破窗户. 一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感——一种职权部门不关心这座建筑的感觉.于是又一扇窗户破了.人们开始乱扔垃圾.出现了乱涂乱画.严重

要是你们是我经理,也会想宰了我的...公司中的&quot;破窗效应&quot;

已经由我带头引起了两次会议强调了... 第一次是上班听歌的事,之前公司基本没人上班带耳机听歌,然后我带头~~ 不到2个月,整个项目组的15个人,有12个人都带耳机上班听歌.虽然确实是能提高开发的效率,但是大大减少了团队互相交流 然后,某次会议上就着重的说了这件事,我知道是说我带头的...只是不好揭穿而已~~ 第二次是早上吃早餐的问题,我们上班是8:30,基本我都是8:20到公司,然后打卡,带着早餐去外面吃然后次数一多,人数一多....领导又不开心了昨天开会就说了这个事,以后吃早餐的话要提前那么个

程序员修炼之道(2)——别让“破窗”毁了你的项目

所谓"破窗效应",即 一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破:一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟.不堪入目的东西:一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹豫地抛,丝毫不觉羞愧. 我们的开发过程是一个漫长的过程,一扇破窗可能是一段设计低劣的代码.团队必须在整个项目开发过程中加以忍受的一项糟糕的管理决策,然而这个足以使得项目开始衰败. 曾经在工作室开发的过程中,那些我很少注意开发中的

管理学定律四:手表定律与破窗理论

1.手表定律 1.1 来源 手表定律是指一个人有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时却无法确定.两只表并不能告诉一个人更准确的时间,反而会使看表的人失去对准确时间的信心.它的提出者是英国心理学家p.萨盖,因此手表定律也叫萨盖定律. 森林里生活着一群猴子,每天太阳升起的时候它们外出觅食,太阳落山的时候回去休息,日子过得平淡而幸福. 一名游客穿越森林,把手表落在了树下的岩石上,被猴子"猛可"拾到了.聪明的"猛可"很快就搞清了手表的用途,于是,"

开发中的《破窗理论》

破窗理论的描述: 一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破:一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟.不堪入目的东西:一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹豫地抛,丝毫不觉羞愧. 切换到开发的情况是,很多人以为做了个好的设计,就万事大吉了,就能确保开发过程中可扩展性,可维护性,这样大家都轻松了. 实际情况是,开发是个动态的过程,总是会遇到新需求的,我们的开发基本上都是很赶的,不论是什么样的原因,

java工程积累——项目管理:破窗理论

年后这段时间,我一直带着项目,在项目中,最后总会遇到这样那样的问题,搞得自己有些狼狈!在向我的恩师求助后,我翻阅了一些资料和书籍,最后找到了一个特别有意思的问题!就是咱们的题目,破窗理论,咱们一起来探讨探讨. 百科-破窗理论: 一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破:一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟.不堪入目的东西:一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹豫地抛,丝毫不觉羞愧. 当然,这

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第五节:数据流处理的那些事儿

为什么说到数据流了呢,因为上一节中介绍了一下异步发送请求.同样,在数据流的处理上,C#也为我们提供几个有用的异步处理方法.而且,爬虫这生物,处理数据流是基础本能,比较重要.本着这个原则,就聊一聊吧. 我们经常使用到的流有文件流.内存流.网络流,爬虫与这三种流都有着密不可分的联系,可以联想以下这些场景: 当我们采集的数据,是一个压缩包或者照片,那么要存储它们到硬盘上,就需要使用到文件流了: 当我们采集的数据,是经过GZip等压缩算法压缩过的,那么要解压它,就需要使用到内存流了: 当我们的爬虫运行起