金吉列 值得信任:避免软件失败的7个关键实践——来自项目管理群的讨论

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 22:45:44
避免软件失败的7个关键实践——来自项目管理群的讨论2009-11-30 13:51:00标签:项目管理 软件 关键 失败 实践原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://baoqiangwang.blog.51cto.com/1554549/312976避免软件失败的7 个关键实践   避免软件失败的7 个关键实践 实践 1. 邮件列表:把邮件列表作为主要的团队交流途径 实践 2. 配置管理: 实践 3. 需求管理:持续地整理、记录和跟踪用户的需求 实践 4. 编码规范:遵循基本的编码规范书写代码 实践 5. 缺陷跟踪系统( BTS ):使用 jira 、 mantis 、 butterfly 、 clearquest 等工具来管理测试中的缺陷 实践 6. 计划和周进度会议:制定计划并每周审查本周的成果和课题 实践 7. 书面表述:准确完整地描述需求,成果和课题   pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 今天先和大家分享避免软件失败的 7 个关键实践,富士通的一个专家题目 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 首先,问问大家,软件失败如何定义 hz_wm- 上海说 : 失败就是没满足客户需求 BoardPang-IT-PL- 苏州说 : 软件失败没有满足主要干系人的期望 BoardPang-IT-PL- 苏州说 : 不一定是客户 胡勇光说 : 失败就是没有为公司创造利润 hz_wm- 上海说 : 没有达到预期目的 flytoegg- 技术主管 -TIANJIN 说 : 我觉得软件失败得分技术失败还是需求失败 ~~ !! 一点红 -pm-it-shanghai 说 : 是没有达到预期目标 晓波 - 失业 - 上海说 : 失败?就是无法达到项目的目标 flytoegg- 技术主管 -TIANJIN 说 : ,同意没有达到项目预期的 BoardPang-IT-PL- 苏州说 : 我们的客户只在乎进度,不在乎进度和成本 只在乎质量 flytoegg- 技术主管 -TIANJIN 说 : 需求随时的变,也是造成失败的原因 flytoegg- 技术主管 -TIANJIN 说 : 我这就有架构设计缺陷导致项目失败的 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 所谓“失败”是相对的定义,至少在中国是这样 我们没有 100% 满足干系人需求,不一定代表失败 有时候,至少能够“糊弄一下”,不出大问题 有时候,至少能够“抵挡一时”,能勉强使用 项目并不像产品一样,并不需要达到非常高的品质 【税务、银行系统项目除外】 有时候,并不需要完美地实现所有的功能 这样一来,我们有两个朦胧概念 1 、需求要尽力而为,如有偏差要做好沟通,包括变更 2 、做好客户关系 这里说的需求是各类需求 那么,作为技术人员的 PM 和团队,如果在这个过程中避免项目失败呢 富士通的蔡总,有 7 个实践 架构设计更是自己的事情了,对客户而言只有需求 实践1. 邮件列表:把邮件列表作为主要的团队交流途径 前提是:摒弃仅以口头为主的交流方式,要用邮件备忘 口头的东西,有以下的缺陷: 容易产生误解; 容易遗忘; 无法对成果进行确认; 让我们: 白纸黑字,将功能( Feature ),约定( Commitment ),日程( Deadline )明确地写下来吧; 其中, Wiki , BBS 等也是辅助的共享的手段。既是交流,也是证据。 好记性不如烂笔头 实践2. 配置管理: 对代码 / 测试程序和文档使用 CVS 管理 一般的公司对代码会有版本管理,但对文档就差一些了,而文档的版本恰恰是分歧的关键 CVS 配置管理的重要性,有哪些?很显然, 各归其位,变更有序; 清晰显示团队开发的所有代码; 实现测试数据管理自动化; 无需担心文件版本,文件名称的变更 但真正做到的很少 特别是,文档、测试数据的版本管理 例如,你提交的项目客户不认可,你的场景测试数据却不是原来的 谁都不会认同你 这里提及的 7 个实践都是最基本,但却做不好的地方 实践3. 需求管理:持续地整理、记录和跟踪用户的需求 这个说的简单,什么是客户需求 真实准确地把握客户的需求很难 例如, UI 每个人的看法还不一样的 尽量做到,“以客户为中心”,真实准确“抽引”出需求; 工具是辅助的也是必须的,但核心是执行 可以使用需求管理工具 (ExcelorMantisorDoors) Mantis 是开源的 还有 IBM 的 ClearQuest 商业的都比较昂贵 实践4. 编码规范:遵循基本的编码规范书写代码 编码规范很基础,但有的公司编码规范有 50 条,基本不可执行了、太复杂、人记不住的 通常编码规范容易被忽视 要避免源程序当做“草稿” 源程序生命周期高于开发周期的,要尝试让他人阅读你的源程序 以免自己也像后浪骂前浪一样,写得是狗屎啊 拿一份印度的代码,高中生的,中国的程序员基本都会汗颜 对于前人太烂的代码,可以考虑敏捷的一些方法,尝试一下“代码重构”的方法 MartinFowler 是重构的鼻祖,很实践的方法,大家可以从书店找到他的书 实践5. 缺陷跟踪系统(BTS ):使用jira 、mantis 、butterfly 、clearquest 等工具来管理测试中的缺陷 避免 BUG 反复出现; 快速及时找到 BUG ; 管理测试生命周期中各种烦心事 特别是客户提的问题,一定要反馈到这个系统上 用项目交付后的 bug 率来考核测试人员,用测试 bug 率考核开发人员,一切质量问题都迎刃而解 有的公司我知道,例如华为,一个客户反馈的 bug ,从一线到项目负责都会直接扣 500 以上的工资 实践6. 计划和周进度会议:制定计划并每周审查本周的成果和课题 避免失败的基本要素: 过分的乐观是 IT 开发早期的致命伤; 当心小偏差造成大问题; 时刻关注潜在的风险和危机; 每周一次的自我检查和诊断( 5W2H ) whatwherewhenwhyhow 。。。 要细致 review 不是简单的例会问一遍 实践7. 书面表述:准确完整地描述需求,成果和课题 程序员可以不注重文档,项目经理必须把文档当做基本功 重视文档的技术含量 需求文档、设计文档、阶段点的文档汇报等都体现的功底 将长句简化为短句,不要双重否定 文档就是用于理解的,而我们经常看到的文档是一段都是逗号,最后一个句号。 给评审人、领导设置障碍啊,呵呵 以上我们提了避免失败的 7 个实践,我们从正面谈持续成功的策略有哪些? 1) 开发的过程化 2) 标准化和分工 3) 自动化方法:自动化测试 / 自动 build 环境 4) 知识总结:留下知识和数据。 5) 人员能力的训练:不仅仅是过程 6) 经验的持续积累:强大的体制力量 ok 以上就是这个话题的分享结果 大家交流   晓波 - 失业 - 上海说 : 强大的体制力量? 这个是说? pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 系统以往成功经验 [ 晓波 - 失业 - 上海 ] 这个持保留意见 说说 晓波 - 失业 - 上海说 : 有的公司我知道,例如华为,一个客户反馈的 bug ,从一线到项目负责都会直接扣 500 以上的工资 对于这个例子的保留 如果公司不允许犯错, 个人成长就太困难了 刚才有为朋友说失败了四个项目 要是在华为,不知道是什么样的惩罚了。 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 通常压力没有正想反馈,是不足以推动的 kingship-dz-tj 说 : 好像移动那些客户肯本就不会反应 BUG ,看看移动,联通,网通的网站就知道了,根本就没 QA 和 QC pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 客户考核的是测试是否全面,开发人员有连带责任 flytoegg- 技术主管 -TIANJIN 说 : ,华为的管理肯定是严格的 ~~ richard_tl_sh 说 : 上面好像没有讲teambuilding hz_wm- 上海说 : 我还是赞同华为的做法的 wangxuesen@yahoo.com.cn(E-mailAddressNotVerified) 说 : 移动的人不管东西好坏反正做好了他们就有奖金,坏的话找供应商就好 it01- 假冒 pm-huabei 说 : 我也赞同但是要上头去推动 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 不同企业不一样,国字号的就不要提了 hz_wm- 上海说 : 而且客户反映的那个 bug 肯定也是给客户带来损失的 wangxuesen@yahoo.com.cn(E-mailAddressNotVerified) 说 : 管理太严对进度和工程师的积极性有影响 一点红 -pm-it-shanghai 说 : 如果 bug 从客户方面反馈 , 那么团队必须都要负责任 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 要辩证看,项目的正向激励更大 晓波 - 失业 - 上海说 : richard_tl_sh 说 : 上面好像没有讲teambuilding 眼光很独到 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 例如进度提前了,奖金是上万的 晓波 - 失业 - 上海说 : 日企有这个文化吗?不知道 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 奖多罚少,不能仅看局部 没有客户的反馈作为考核,客户满意是不现实的 teambuilding 1) 开发的过程化 2) 标准化和分工 3) 自动化方法:自动化测试 / 自动 build 环境 4) 知识总结:留下知识和数据。 5) 人员能力的训练:不仅仅是过程 6) 经验的持续积累:强大的体制力量 晓波 - 失业 - 上海说 : 客户反馈很重要。不过更重要的是来反思中间的问题 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 4 、 5 、 6 都涉及 晓波 - 失业 - 上海说 : 也就是通过 qa 做持续改进 目标是消灭缺陷, 手段比较直接了。 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 当然,这 7 点是蔡总最看重的,不一定成熟。他们是 CMMI5 早期企业 hz_wm- 上海说 : 目标应该是消灭缺陷发生的原因 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 持续改进不受影响,两条腿走路么 chinamath( 海茶 )-Sr.SE- 北京说 : 这 7 个实践总结的挺好,我们公司还真就是这么做的,所以项目控制的都还好,目前还没有出现失败的项目。我几年前参与过一个失败的项目,现在回想,当时还真没有按这 7 个实践做。 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 不能因噎而费食 也不能没有人承担责任,仅项目经理承担责任那只是人制,公司风险较多 richard_tl_sh 说 : 除开最后一点,其他的我们都做了 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 最后一点为何没有涉及 richard_tl_sh 说 : 开发流程化基本上没有问题,但是还是缺少点团队之魂 晓波 - 失业 - 上海说 : 这个是缺少了 leadership 和 teambuilding 的工作 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 最后一点是不可或缺的 richard_tl_sh 说 : 体制上的转变,需要至上而下的 pharos 【谷雨霖】 -cto- 北京【招聘 java 工程师】说 : 反问,做好这 7 点,没有 leadership 哪能做得到呢? 我们不能总机希望于改革 从自己做起,才能真正改变环境。 改革,领导的大力支持是稀缺资源 chinamath( 海茶 )-Sr.SE- 北京说 : 有道理,所以这 7 个实践应该是项目成功的必要条件吧?