《软件项目成功之道》读后记录

感受:

   此书主要面向的是软件团队的管理、构建、工作方式、经验等方面进行说明,适用于初期或者成熟的软件团队,不太适合个人修炼。

   由于我还没有正规的参与到软件工作室的软件开发,没有经历过与他人合作进行并行开发,也没有测试经验,因此很多知识都只是作为了解,没有感受到醍醐灌顶的感觉。不过作为积累知识,希望以后能用到。

   书中提到了很多方法、工具,并且特色之处在于有一个“如何开始”,这样就防止了读者在看了书后不知道怎么下手去做,是一个比较好的地方。从中我也了解到了很多软件开发中比较专业的工具与过程(如CI),还是有所收获吧。不过我觉得有一定团队开发经验后再来看此书,会收获更多。

 

 

笔记:

第一章 绪论

1、习惯性优秀

   在人生中,我们应该选择优秀的一些习惯,我们要刻意去培养它,使得其成为自己的习惯。让自己习惯性优秀,那么就会获得成功。“我们每一天怎样度过,一生就会怎样度过”。 

   在软件开发的过程中,应该习惯采用良好的习惯,比如说构建自动化测试,使用CI,版本控制等等,这些习惯可以保证我们的软件质量、个人效率等。

2、在对别人提出自己的建议的时候,都需要充分的向对方说明你这提议的理由,并且说明采用这种技术后会对你的产品直接有什么好处,不能说因为别人用你就用

 

第二章 工具和基础设施

1、代码寄存库

对自己的代码,需要进行版本控制,保存代码。可以采用源代码管理器(SCM)或者版本控制系统(VC)。一般可采用CVS,SubVersion等,都是开源免费的。

在使用的过程中,要养成习惯,将所有的文件都放在SCM中。

2、在构建(Build)软件的过程中,需要采用自动构建脚本进行构建。因为如果人为的每步去构建的话就会不时的漏掉步骤,浪费时间。所以用自动构建进行构建。

   同时,采用脚本进行构建,也可以统一团队构建方式,使得每个人都可以在自己的机器上构建,而不是在有的人机器上可以成功,有的人不行。

   构建的方式有很多,对于特定的语言,有Ant(面向JAVA)NAnt(面向.net)等等,也有通用的脚本,如RubyPythonPerl。但是通用脚本语言不是面向构建系统,建议采用特定语言。还有现成的构建系统,如MavenMaven2

3、自动构建产品,可以保证在每次修改之后,若出现问题可以及时的知道。这种系统称为持续集成(CI)。现有的开源CI工具有CruiseControl

   在CI中,可以集成编译、自动测试,并且可以将结果通过RSS进行发布通知。

4、在开发的过程中,需要使用问题BUG跟踪。采用问题跟踪,不仅可以积累经验,还可以当有人遇到该问题时,查询是否已经发现了该问题,并且知道该问题将会在什么时候解决。

   跟踪系统不仅可以为产品生成问题列表,还可以为开发人员生成任务列表。跟踪系统可以使用BugzillaJIRA等等。

5、在跟踪问题的同时,还可以跟踪特性。为不同的特性设置不同的优先级,可以生成任务列表。同时可以防止突然间有的新的创意,可以依据特性表判断新的创意是否需要写进去。

6、在选择工具时,最好选择使用开放格式的工具,如XML或者纯文本。

 

 

第三章 实用项目技术

1、任务清单

   采用任务清单,来安排每周和每日的工作,采用优先级顺序,可以把握重点,提高效率。

   在采用任务清单的时候,需要将任务清单公开,使得你的经理看到,让他指点一下,不仅可以完善你的清单,而且可以让经理有成就感,提升你的形象。同时要指定优先级,时间估计,可测量,并且保持活跃。

2、在团队中可以后技术领导人。这种人可以由项目经理担任,位于技术人员和经理之间,保护团队,安排工作,并且沟通上级。

   每一个人都应该以技术领导人的要求来要求自己。

3、每日例会

   每日例会,不仅可以随时修正团队的方向,同时还可以提高团队沟通,让大家都了解全局等,时间不能长,一个人两分钟。

   保证简短、力求具体、列出问题,但不要解决

4、代码审查

   需要经常审查代码,不要过段时间才统一检查。检查的时候不需要全部检查,可以只检查部分代码。审查人员由高工担任,可以轮流。

   经常审查代码,可以及时发现问题,并且避免了最后一起检查需要花费长时间。

   只审查少量代码,一两个审查人员,经常审查,不审查不发布

5、代码变更时,需要向团队发送代码变更通知。可以让大家看到你的工作,同时也能让别人了解你改了什么,如果他有更好的方法,则可以提出来。

   用电子邮件发布,列出审查人员名字,列出代码改变目的,写出差异部分

 

第四章 曳光弹开发

1、曳光弹开发(TBD),是软件开发的一种方式。将软件进行分层,将不同的层之间用接口进行通信。将不同层分配给不同的人做。有点类似于MVC(模式-视图-控制)。

2、总线数

   指只有当损失的人员达到这个数,项目才会失败。一般要尽量增大总线数。曳光弹开发是增加总线数的方法,相邻两层的人员知道对方的操作,必要时可以替代。避免了“大牛”的存在。

 

第五章 其他问题

1、当你提交了一个作品时,别人运行时出现了问题,而你没有。这个时候你不能争辩,毕竟客户只关心他使用的时候有没有问题。你需要找出原因,选择是自己修复代码问题,还是委婉的向客户提出要修改他的配置。

2、如果要使客户满意,就要经常向他演示原型系统,这样他也会随时给你提出意见,不要等到最后客户才说不满意。

3、遇到另类的不服管教的开发人员,记录他们的所作所为,然后以不服管理为由将其辞退。

4、怎么让你的经理满意

  使用任务清单,并且请经理提出意见,并一起商量优先级。让经理掌握你的进度,可以以邮件的形式,或者每日的报告。报告中不要说很多,只要说结果。如果确实需要说明详细过程,可以用两分,一个简单,一个详细。

5、作为一个经理,必须要有自己的威信,采用各种方式得到团队认可,推进实践。

   一个船长如果翻过船,将很难再受命上船

 

第六章 建议阅读的书

1、精通正则表达式

2、人月神话

3、死亡之旅

4、Programming Ruby 中文版

5、应用极限编程:积极求胜  (XP

6、敏捷软件开发:使用SCRUM过程

7、版本控制之道:SubVersion/CVS

8、领导力21法则

9、高效能士的七个习惯

10、人性的弱点

11、人件

posted @ 2016-03-20 00:12  SnailRen  阅读(328)  评论(0编辑  收藏  举报