不可以原谅的错误,即使一个项目遵循了上述所有75条,如果没有做(竟然没有做)CI,这个项目会……!
而且,竟然也没有包括文档的审查?文档的规范?竟然也没有包括设计的规范,没有指出做事(任何事,比如包括你去端一杯水)的流程?
我认为,上述75条应该全部抹去,因为它们杂乱无章却没有主题,一个质量好的软件与什么 "有可以作为宣传亮点的Cool Feature么?" 我想是应该完全没有关系的。
如果你想做一个好的软件,你只需要遵循以下2条简单原则即可
1、你为什么要这么做?你的依据是什么? ----指流程
如:你为什么要写这函数?你为什么要改这文档?
2、你做的对吗?质量好吗?
如:性能高吗?完全满足需求与规范吗? ---指审查
以上2条完全适应于所有的人员,包括设计,编码,测试人员,所有的人均要遵循上述原则。
它们可以用一句话来解释:做事要有流程,做完后有人检查,OK。
如果按照以上2条进行,我保证(100%保证),你的软件的质量绝对是好的,因为这种保证来自于德国数百年的生产流程( 不信我,但你一定要相信德国货)。
我反对上述的75条是因为75条本身并不知道它想要说明什么,而是即兴发挥。以致第75条: 尽量不要用Virtual Heads 与上下文不符而没有检查。它没有说明质量的核心就是流程!也就是说,你完全做到了上述的75条,你的项目的质量也可能是不好的。
因此,放弃75条,回到家中,制定流程(如果没有),按流程工作,然后审查是否遵守了流程。
很多人可能会觉得我的回答比较可笑或不可以理解,我只能感到遗憾。
我个人觉得楼上的误解了,mvm提出此75条作为经验总结,便绝非强调按此75条行事即可万事大吉。对我们每个人来说,如果能从中提取到三五条与自己实践相关的经验加以改进或应用,那么可能就会起到非常不错的效果。
你提出的源自德国生产流程的两条经验也很不错,但同样也不能说明只要遵循这两条就可以了。那美国、日本、欧洲其它国家的企业数百年来也积累了属于他们的很棒的经验呀。他们看了你的评论后可能会很不服气呢。
个人看法,仅供参考:)
CI是什么?CI=代码审查?“I" stands for what? 我印象中,code review倒是有的。
难道这75条里面没有code review么?
请看第35条:“你们会隔一段时间就停下来夯实代码么?”。所谓的“夯实代码”,就是指阶段性的code review以及在此基础上的code consolidation。
再请看第60条:“你们有统一的代码书写规范么?”。Code书写规范就是code review的一部分工作。能说没有code review么?
“上述75条应该全部抹去,因为它们杂乱无章却没有主题”——那是你没有看出主题来。这75条的主题是这样的:
1-5: 工具
6-10:沟通
11-15:计划和进度表
16-20:缺陷管理
21-25:士气
26-30:配置管理
31-35:风险控制
36-40:又是沟通
41-45:还是沟通
46-50:测试
51-55: 又是测试
56-60:编码,developer
61-65:规划,envision
66-70:设计
71-75:人力资源
“它没有说明质量的核心就是流程!”——说这话的人,对软件质量的认识还停留在一个比较低的水平。看一下上面1-75各条的主题就可以发现,决定质量的因素太多了,绝非简简单单的一句“流程”就能概括的。
同样,简单化并不代表认识的水平高。“如果你想做一个好的软件,你只需要遵循以下2条简单原则即可”——流程和审查,谁都知道。但是怎么做才能保证流程有效呢?怎么做才能保证审查有效呢?CMM告诉了我们流程和checkpoint,但没有告诉我们怎么做,所以大家还是都不知道怎么做软件流程。
魔鬼就在细节中,这75条全部都是关于细节。
“75条本身并不知道它想要说明什么,而是即兴发挥”——75条不是即兴发挥,而是有条理的在总结。从上面归纳的1-75条的主题就可以看出,总结这75条的时候是遵循着一种思路的。我们要善于接受75条这种表达方式。就好像著名的祖尔(Joel)法则12条一样,并非大而全,而是一些best practice的总结。
“尽量不要用Virtual Heads”是不是和质量有关?当然有。Virtual heads意味着resource is not secure,shared resource会降低resource的工作效率,容易增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。所以说,virtual heads绝对是对质量有害的。软件开发中的人不能简单的按照labor、按照人月来算。一个dedicated的人,要强过两个只能投入50%时间和精力的人。
况且,谁都不是傻瓜,谁都不会认为有了75条就可以不要任何其他的软件工程手段。RUP之类的流程、各种code review、spec review,都是非常必要的手段;瀑布模型、螺旋模型、V模型、X模型等,仍然是软件工程的基础。这个世界上没有silver bullet:RUP不是silver bullet,CMM不是silver bullet,XP不是,Test-Driven不是,当然75条也不是。
最后,我想说的是我们每个人都要show respect。在看懂别人的意思之前,千万不要轻易的轻蔑的说“你不懂”。
btw, "放弃75条,回到家中,制定流程(如果没有),按流程工作,然后审查是否遵守了流程"——这75条恰恰就是流程,是流程里面的肉,而不只是一个骨架。
随便举几个例子:
“9. 你遇到过有人说“我以为…”么?”——如果遇到,这就是spec review的流程出问题了。
“12. 你们的工作量是先由每个人自己估算的么?”——自下而上,还是自上而下,经验法还是专家法还是三分法,这就是plan的流程。
“18. 你们对缺陷的轻重缓急有事先的约定么?”——这是缺陷管理的流程。
“40. 其他部门知道你们项目组在干什么么?”——cross team communication的流程
“44. 你做决定、做变化时,告诉大家原因了么?”——变更管理流程
“57. 你们的程序员是写完代码就扔过墙的么?”——关于Test Release Document的流程
Btw,“63. 有可以作为宣传亮点的Cool Feature么?”看似和质量无关。不过按照我的经验,cool feature的作用是“一俊遮百丑”,有亮点就可以掩盖一些问题。这样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,cool feature或者说亮点可以作为质量问题的一个事后弥补措施。你想想,很多人经常说“微软的系统不安全,不过很好用”,其实这就是一例。
CI = Code Inspection.
请注意,CI与代码规范是两码事。
这么说吧:当您邀请别人做CI时,作者有义务首先确保它的代码已经符合代码规范。否则,CI会被取消,直到您已经首先确保这一点为止。这就好象,一个人拿了一段代码去做CI,但这段代码竟然还没有被编译过一样。
这么做的原因只有一个:已经成文的规范,不会有人对你说第二遍。而且,这浪费别人的时间。(请注意:这些应该被定义在CI的流程中)。
我感到遗憾的原因是:您已经有了如此多的经验(这些经验都不错,只是太杂乱),却仍没有理解质量的精髓,让人遗憾。
1. 我没有说CI与代码规范是一码事。
2. 这些经验不杂乱。不“杂乱”的是教条,“杂乱”的才是经验。
3. 你敢说你理解质量的精髓?
4. 我用Code Review的说法更多。
Google搜索结果:
约有 20,700 项符合"code inspection"的查询结果
约有 124,000 项符合"code review"的查询结果
哪个术语更通用,一目了然。
5. CSDN上有很多这样的板砖。文人相轻。
6. 山外有山,我相信一定有高手。真正的高手看到后辈,不会说“你还差得很远”
7. 本来就是一种知识分享,为什么一定要把别人分享出来的东西说的一钱不值?
[
点击查看详细]
分享到:
相关推荐
②以马蜂窝某景点为例,其评论高达3000多条,但这3000多条并非是完全向用户展示的,向用户展示的只有5页,数了一下每页15条评论,也就是75条评论,有点太少了吧! ③因此想了个办法尽可能多爬取一些评论,根据我对...
由于我们需要对一条评论从20个层面进行情感分析,是一个典型的多标签学习任务。我这里通过训练20个4-分类器,对于一个评论文本, 每个分类器对其进行分析。最终20个分类器得到的结果汇总起来即为该模型对这条评论的...
由于我们需要对一条评论从20个层面进行情感分析,是一个 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用...
人工智能-项目实践-情感分析-基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析 题目介绍 该题目为《细粒度用户评论情感...包含105000条训练样本以及15000条测试样本。 关于数据集的标注可以点击这里查看。
新增功能!! 一、在线备份数据功能 二、在线查看空间占用显示 三、刷新新闻(主要用于系统移值、模板批量更新、恢复新闻) 四、自动分页显示...十五、修正已知的BUG 十六、列出某新闻的所有评论数量
mysql server sql面试题 比如:floger 发布于 1年前,共有 0 条评论 1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 ...
如在新闻内容下显示最新的5条评论 十四、计划任务功能 此功能可实现在指定时间执行指定操作。 如在系统中设定凌晨3点执行更新所有栏目分页 十五、支持评论字符过滤 十六、更完善的安全机制。 记录每个用户...
某个用户评论、点赞了帖子,或者关注了某个用户,那么被评论、点赞、关注的用户会收到一条通知。目前系统中有3种通知:评论通知、点赞通知、被关注通知。 7. 数据统计   管理员可以查看网站指定日期...
五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、集成eWebEditor在线编辑器,编辑文章更加方便; 5.5、发布滚动新闻(发布新闻时,选中...
某个用户评论、点赞了帖子,或者关注了某个用户,那么被评论、点赞、关注的用户会收到一条通知。目前系统中有3种通知:评论通知、点赞通知、被关注通知。 7. 数据统计   管理员可以查看网站指定日期...
5.7、新闻分类增加图片新闻列表选项,增加自定义每页条数; 5.8、发布新闻,增加标题颜色和跳转连接,控制更自由; 5.9、发布新闻,改进图片上传方式,方便操作; 六、留言/评论管理。 七、网站管理员权限设置...
共有顾客评论0条 查看评论摘要 内容简介 本书从RM芯片应用开发者的角度,深入浅出地介绍ARM7TDMI体系结构及指令系统。以32位嵌入式微控制器LPC2104为例,具体介绍32位ARM嵌入式微控制器的结构特点及编程方法,并...
五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、集成eWebEditor在线编辑器,编辑文章更加方便; 5.5、发布滚动新闻(发布新闻时,...
5.7、新闻分类增加图片新闻列表选项,增加自定义每页条数; 5.8、发布新闻,增加标题颜色和跳转连接,控制更自由; 5.9、发布新闻,改进图片上传方式,方便操作; 六、留言/评论管理。 七、网站管理员权限设置...
5.7、新闻分类增加图片新闻列表选项,增加自定义每页条数; 5.8、发布新闻,增加标题颜色和跳转连接,控制更自由; 5.9、发布新闻,改进图片上传方式,方便操作; 六、留言/评论管理。 七、网站管理员权限设置...
5.7、新闻分类增加图片新闻列表选项,增加自定义每页条数; 5.8、发布新闻,增加标题颜色和跳转连接,控制更自由; 5.9、发布新闻,改进图片上传方式,方便操作; 六、留言/评论管理。 七、网站管理员权限设置...
光栅衍射matlab代码MP011实验室的标准操作程序 该文档大致描述了飞秒激光系统的操作以及多伦多大学MP011室内的超快电子衍射...128.100.75.10,128.100.75.99 网关地址 128.100.148.1 MAC地址 00-50-04-A3-6E-AB 子网掩
作者:佚名 阅读人次:11611 文章来源:未知 发布时间:2005-6-24 网友评论(4)条 第二天 学习目的:掌握C#的基本知识 一、定义变量: string strExample; 字符串("aaa") char chrExample; 字符('a') bool ...
十五、具有强大的商品关键词、站点关键词设置功能,SEO优化一步到位。 十六、强大的权限分类管理功能,可设置不同管理级别的管理员进行网站管理 十七、强大的广告管理,支持FLASH动态切换广告,支持全站飘浮...