最近终于完成了邹欣老师的《移山之道》这本书,说一下自己的一些感受吧。
首先,不得不说的是这本书的书写风格,以前我印象中关于计算机方面的专业书籍肯定是枯燥乏味的,如果你读着一本关于计算机的著作而没有困意,那么这本书写的就相当不错了,但是《移山之道》这本书却不是这样,最初读到引子的时候我有点儿摸不着头脑,怎么会有愚公移山这个语言?而且还是文言文!慢慢往后读才知道,原来这只是故事的开始,原来这是一个关于“王屋村软件公司”的故事...
开始看的时候,以为这本书就是一本关于VSTS的介绍或者叫做广告,越往后看发现越不是这么回事儿,好像越讲越脱离了这个软件,而呈现给我们的是一个系统的关于团队协作开发软件的介绍。
这些都是自己对这本书的风格的一些自己的看法和感想,但不得不说我从这本书中学到了很多东西,受益匪浅。
一、关于MSF的8条基本原则
首先摘录一下MSF的8条基本原则:
(1)、推动信息共享与沟通(Foster open communications);
(2)、为共同的远景而工作(Work toward a shared vision);
(3)、充分授权和信任(Empower team members);
(4)、各司其职、对项目共同负责(Establish clear accountablity and shared responsibility);
(5)、重视商业价值(Focus on delivering business value);
(6)、保持敏捷,预期变化(Stay agile,expect change);
(7)、投资质量(Invest in quality);
(8)、学习所有的经验(Learn from all experiences).
不得不说,这些都是专业人士总结出来的真理,当然这些是对一个成型的软件企业的标准,作为学生,我们需要做必要的了解,但是其中的第1、2、3、4、8条是值得所有与软件开发相关的人士注意与学习的。
我印象最深的是第2和第4条,首先,要想一个小组的人员能够同心协力,高效率的完成一个软件的开发,大家一致的目标是一定要有的,要不等开发到关键的时候,发现大家开发的初衷是不同的,比如开发到关键时刻发现大家当初设想的用户都是不一样的,这个项目也许就这样夭折了。所以我想一个PM在项目开始的时候应该做的就是让大家统一思想,让大家有一个共同的远景。而且是小组协作开发项目,就应该把工作分给各个组员,大家保持信息的及时沟通即可,然后各自对自己的工作负责,分工的时候不按工作量论英雄,而是按工作完成的质量,我们可以求助其他组员帮忙,但是最后的责任是自己的,各司其职,对项目共同负责才能保证项目进度的高效。
二、关于测试
没看这本书之前,我以为一个项目的tester的工作时这样的:大家完成了项目的设计、编程,可以运行之后,在软件发布之前,由tester对软件进行安装试运行,然后把软件的功能大致走一遍,看看有没有什么问题,然后就OK了,以为软件的测试就是这么简单,现在发现自己的想法真是简单的可笑。
《移山之道》里有相当的篇幅讲了关于tester的工作,讲了一些关于测试的方法,读完我才知道做一个tester并不是想象的那么简单,测试的种类也是五花八门:
黑箱测试:从软件的功能而不是内部结构去测试一个软件,跟我当初的理解大致相同;
白箱测试:在测试的设计过程中,设计者可以看到软件的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择,这说明tester需要知道软件的内部结构,甚至清楚每一个逻辑,这样才能保证测试的全面安全。
另外还有许许多多的测试方式,按测试目的可以分为功能测试和非功能测试,还有单元测试、代码覆盖率测试、构建验证测试、验收测试等等测试方式,为了保证一个软件发布后尽可能少的产生bug,一个详细全面的测试是必不可少的,课间一个团队中tester的重要性。但是再详细的测试也不能保证发布的版本就是完善的,从各种软件不断出现的补丁就可以看出这点。所以,测试可以说是一项很考验人的耐心、细心和能力的工作。
三、代码规范
以前我们上任何一门高级程序语言设计课的时候老师总是会强调代码规范的好处和重要性,但是没有一个老师在作业中要求这点,只是上课顺带提提,然后学生该怎么写还是怎么写,《移山之道》这本书在“代码规范与代码复审”这一章,详细介绍了代码的规范以及其重要性,把代码的缩进、行宽、括号、断行、分行、命名、下划线、大小写问题、注释等日常写代码需要注意的问题都做了详细的规定,并且在代码设计规范中讲了怎么处理日常常见的一些问题。另外,还告诉我们为了保证代码的风格正确,逻辑正确,我们还必须进行代码复审。
四、关于合作
以前我也没认识到结对编程的优点,因为以前没有遇到需要两个人共同合作的项目,最近老是正好布置了结对编程的作业,在实践中我渐渐认识到了结对编程的优点,两人合作更容易迸发出意想不到的火花,而且互相学习对方的长处也是个人进步的一个重要手段,当然并不是任何时候任何人都适合结对合作的,这本书也讲了不适合结对的情况,我感觉这些情况都很客观,也是我们在学习过程中经常会遇到的。
总的来说《移山之道》是一本不出的书,不论是他那种小说的风格还是里面所蕴含的知识,从这本书中,我们可以学到很多前辈们通过不断实践所得出的经验,这对我们来说都是非常宝贵的财富,希望你也能读一读这本书,希望你也能有所收获!