新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 编程心得 』 → 用正确方法写出质量好的软件的75条体会[转帖] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4162 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 用正确方法写出质量好的软件的75条体会[转帖] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     一分之千 帅哥哟,离线,有人找我吗?射手座1984-11-30
      
      
      威望:1
      等级:研一(随老板参加了WWW大会还和Tim Berners-Lee合了影^_^)
      文章:632
      积分:4379
      门派:XML.ORG.CN
      注册:2006/12/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给一分之千发送一个短消息 把一分之千加入好友 查看一分之千的个人资料 搜索一分之千在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看一分之千的博客楼主
    发贴心情 用正确方法写出质量好的软件的75条体会[转帖]

    如何用正确的方法来写出质量好的软件的75条体会

    向不知名的作者表示深深的感谢!

    1. 你们的项目组使用源代码管理工具了么?
    应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择

    是VSS。

    2. 你们的项目组使用缺陷管理系统了么?

    应该用。ClearQuest太复杂,我的推荐是BugZilla。  

    3. 你们的测试组还在用Word写测试用例么?

    不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test  

    Manager,也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。  

    4. 你们的项目组有没有建立一个门户网站?

    要有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。推

    荐Sharepoint Portal Server 2003来实现,15分钟就搞定。买不起SPS 2003可以

    用WSS (Windows Sharepoint Service)。  

    5. 你们的项目组用了你能买到最好的工具么?

    应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。用

    Notepad写程序多半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好

    的”。  

    6. 你们的程序员工作在安静的环境里么?

    需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。  

    7. 你们的员工每个人都有一部电话么?需要每人一部电话。而且电话最好是带留

    言功能的。当然,上这么一套带留言电话系统开销不小。不过至少每人一部电话

    要有,千万别搞得经常有人站起来喊:“某某某电话”。《人件》里面就强烈谴

    责这种做法。  

    8. 你们每个人都知道出了问题应该找谁么?

    应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续

    Dispatch给其他人。

    9. 你遇到过有人说“我以为…”么?

    要消灭“我以为”。Never assume anything。  

    10. 你们的项目组中所有的人都坐在一起么?

    需要。我反对Virtual Team,也反对Dev在美国、Test在中国这种开发方式。能坐

    在一起就最好坐在一起,好处多得不得了。  

    11. 你们的进度表是否反映最新开发进展情况?  

    应该反映。但是,应该用Baseline的方法来管理进度表:维护一份稳定的

    Schedule,再维护一份最新更改。Baseline的方法也应该用于其它的Spec。

    Baseline是变更管理里面的一个重要手段。

    12. 你们的工作量是先由每个人自己估算的么?

    应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有

    其他原因,比如政治任务工期固定等。  

    13. 你们的开发人员从项目一开始就加班么?

    不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不

    合理。当然,一些对日软件外包必须天天加班,那属于剥削的范畴。  

    14. 你们的项目计划中Buffer Time是加在每个小任务后面的么?

    不要。Buffer Time加在每个小任务后面,很容易轻易的就被消耗掉。Buffer  

    Time要整段的加在一个Milestone或者checkpoint前面。  

    15. 值得再多花一些时间,从95%做到100%好值得,非常值得。

    尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。  

    16. 登记新缺陷时,是否写清了重现步骤?

    要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写Repro Steps

    也需要。  

    17. 写新代码前会把已知缺陷解决么?要。每个人的缺陷不能超过10个或15个,

    否则必须先解决老的bug才能继续写新代码。  

    18. 你们对缺陷的轻重缓急有事先的约定么?

    必须有定义。Severity要分1、2、3,约定好:蓝屏和Data Lost算Sev 1,

    Function Error算Sev 2,界面上的算Sev 3。但这种约定可以根据产品质量现状

    适当进行调整。

    19. 你们对意见不一的缺陷有三国会议么?必须要有。要有一个明确的决策过程

    。这类似于CCB (Change Control Board)的概念。  

    20. 所有的缺陷都是由登记的人最后关闭的么?  

    Bug应该由Opener关闭。Dev不能私自关闭Bug。  

    21. 你们的程序员厌恶修改老的代码么?

    厌恶是正常的。解决方法是组织Code Review,单独留出时间来。XP也是一个方法

    。  

    22. 你们项目组有Team Morale Activity么?

    每个月都要搞一次,吃饭、唱歌、Outing、打球、开卡丁车等等,一定要有。不

    要剩这些钱。  

    23. 你们项目组有自己的Logo么?

    要有自己的Logo。至少应该有自己的Codename。  

    24. 你们的员工有印有公司Logo的T-Shirt么?

    要有。能增强归属感。当然,T-Shirt要做的好看一些,最好用80支的棉来做。别

    没穿几次就破破烂烂的。

    25. 总经理至少每月参加次项目组会议要的。

    要让team member觉得高层关注这个项目。  

    26. 你们是给每个Dev开一个分支么?

    反对。Branch的管理以及Merge的工作量太大,而且容易出错。  

    27. 有人长期不Check-In代码么?

    不可以。对大部分项目来说,最多两三天就应该Check-In。  

    28. 在Check-In代码时都填写注释了么?

    要写的,至少一两句话,比如“解决了Bug No.225”。如果往高处拔,这也算做

    “配置审计”的一部分。

    29. 有没有设定每天Check-In的最后期限?

    要的,要明确Check-In Deadline。否则会Build Break。  

    30. 你们能把所有源码一下子编译成安装文件吗?  

    要的。这是每日编译(Daily Build)的基础。而且必须要能够做成自动的。  

    31. 你们的项目组做每日编译么?

    当然要做。有三样东西是软件项目/产品开发必备的:1. bug management; 2.  

    source control; 3. daily build。  

    32. 你们公司有没有积累一个项目风险列表?

    要。Risk Inventory。否则,下个项目开始的时候,又只能拍脑袋分析Risk了。

    33. 设计越简单越好越简单越好。

    设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍

    。这叫scope management。  

    34. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。BizTalk和

    Sharepoint就是最好的例子,有这两个作为基础,可以把起点提高很多。或者可

    以尽量多用现成的Control之类的。或者尽量用XML,而不是自己去Parse一个文本

    文件;尽量用RegExp,而不是自己从头操作字符串,等等等等。这就是“软件复

    用”的体现。  

    35. 你们会隔一段时间就停下来夯实代码么?

    要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月

    增强安全。Btw,“夯”这个字念“hang”,第一声。  

    36. 你们的项目组每个人都写Daily Report么?

    要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则

    为了沟通,二则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。

    37. 你们的项目经理会发出Weekly Report么?

    要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进

    展等。

    38. 你们项目组是否至少每周全体开会一次?

    要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加起来至少应该有4小时

    。包括team meeting, spec review meeting, bug triage meeting。千万别大家

    闷头写code。  

    39. 你们项目组的会议、讨论都有记录么?

    会前发meeting request和agenda,会中有人负责主持和记录,会后有人负责发

    meeting minutes,这都是effective meeting的要点。而且,每个会议都要形成

    agreements和action items。

    40. 其他部门知道你们项目组在干什么么?

    要发一些Newsflash给整个大组织。Show your team’s value。否则,当你坐在

    电梯里面,其他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人

    全然不知,那种感觉不太好。  

    41. 通过Email进行所有正式沟通  

    Email的好处是免得抵赖。但也要避免矫枉过正,最好的方法是先用电话和当面说

    ,然后Email来确认。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    越学越无知

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/11/24 16:28:00
     
     GoogleAdSense射手座1984-11-30
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/8 21:23:28

    本主题贴数2,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  用正确方法写出质量好的软件的75条体会[转帖](6436字) - 一分之千,2007年11月24日
        回复:  42. 为项目组建立多个Mailing Group 如果在AD+Exchange里面,就建D..(7505字) - 一分之千,2007年11月24日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    70.313ms