<转贴>如何用正确的方法来写出质量好的软件的75条体会
下面的文字是我在博客堂上面看见的,我很喜欢,也很向往。现在贴在这里,给自己是一个鞭策。—— 茨威格 注。
这篇《七十五条》原本是我写在自己的一个另一个Blog上的(http://www.blogcn.com/blog/cool/main.asp?uid=mvm&id=775872),但完全是纯技术的,所以在这里重新贴一下。的确也希望我在这里面表达的想法能够被更多人借鉴和讨论。
这七十五条,是我这些年来,尤其是在微软工作两年来的体会的总结,关于如何用正确的方法来写出质量好的软件的体会的总结。或许看似平淡无奇,但大音希声,这七十五条的效用,未必及不上那几十页几百页的体系,却远远比那好用:
- 你们的项目组使用源代码管理工具了么?
- 你们的项目组使用缺陷管理系统了么?
- 你们的测试组还在用Word写测试用例么?
- 你们的项目组有没有建立一个门户网站?
- 你们的项目组用了你能买到最好的工具么?
- 你们的程序员工作在安静的环境里么?
- 你们的员工每个人都有一部电话么?
- 你们每个人都知道出了问题应该找谁么?
- 你遇到过有人说“我以为…”么?
- 你们的项目组中所有的人都坐在一起么?
- 你们的进度表是否反映最新开发进展情况?
- 你们的工作量是先由每个人自己估算的么?
- 你们的开发人员从项目一开始就加班么?
- 你们的项目计划中Buffer Time是加在每个小任务后面的么?
- 值得再多花一些时间,从95%做到100%好
- 登记新缺陷时,是否写清了重现步骤?
- 写新代码前会把已知缺陷解决么?
- 你们对缺陷的轻重缓急有事先的约定么?
- 你们对意见不一的缺陷有三国会议么?
- 所有的缺陷都是由登记的人最后关闭的么?
- 你们的程序员厌恶修改老的代码么?
- 你们项目组有Team Morale Activity么?
- 你们项目组有自己的Logo么?
- 你们的员工有印有公司Logo的T-Shirt么?
- 总经理至少每月参加一次项目组会议
- 你们是给每个Dev开一个分支么?
- 有人长期不Check-In代码么?
- 在Check-In代码时都填写注释了么?
- 有没有设定每天Check-In的最后期限?
- 你们能把所有源码一下子编译成安装文件吗?
- 你们的项目组做每日编译么?
- 你们公司有没有积累一个项目风险列表?
- 设计越简单越好
- 尽量利用现有的产品、技术、代码
- 你们会隔一段时间就停下来夯实代码么?
- 你们的项目组每个人都写Daily Report么?
- 你们的项目经理会发出Weekly Report么?
- 你们项目组是否至少每周全体开会一次?
- 你们项目组的会议、讨论都有记录么?
- 其他部门知道你们项目组在干什么么?
- 通过Email进行所有正式沟通
- 为项目组建立多个Mailing Group
- 每个人都知道哪里可以找到全部的文档么?
- 你做决定、做变化时,告诉大家原因了么?
- Stay agile and expect change
- 你们有没有专职的软件测试人员?
- 你们的测试有一份总的计划来规定做什么和怎么做么?
- 你是先写Test Case然后再测试的么?
- 你是否会为各种输入组合创建测试用例?
- 你们的程序员能看到测试用例么?
- 你们是否随便抓一些人来做易用性测试?
- 你对自动测试的期望正确么?
- 你们的性能测试是等所有功能都开发完才做的么?
- 你注意到测试中的杀虫剂效应了么?
- 你们项目组中有人能说出产品的当前整体质量情况么?
- 你们有单元测试么?
- 你们的程序员是写完代码就扔过墙的么?
- 你们的程序中所有的函数都有输入检查么?
- 产品有统一的错误处理机制和报错界面么?
- 你们有统一的代码书写规范么?
- 你们的每个人都了解项目的商业意义么?
- 产品各部分的界面和操作习惯一致么?
- 有可以作为宣传亮点的Cool Feature么?
- 尽可能缩短产品的启动时间
- 不要过于注重内在品质而忽视了第一眼的外在印象
- 你们根据详细产品功能说明书做开发么?
- 开始开发和测试之前每个人都仔细审阅功能设计么?
- 所有人都始终想着The Whole Image么?
- Dev工作的划分是单纯纵向或横向的么?
- 你们的程序员写程序设计说明文档么?
- 你在招人面试时让他写一段程序么?
- 你们有没有技术交流讲座?
- 你们的程序员都能专注于一件事情么?
- 你们的程序员会夸大完成某项工作所需要的时间么?
- 尽量不要用Virtual Heads
茨威格 注:昨天我看见这个帖子的时候,特意打印出来,和我的项目经理一起讨论。结果发现,好的条目要不是我们没有做到,要不就是做得还很不到位;几乎所有的毛病我们都有。汗珠……以后要改进了。