此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101]
用了4天的闲暇时间读完了邹欣老师的“构建之法”一书,这本书是杨老师推荐的上课教材,同时我们辅导员也推荐了这本书。买这本书之前还以为这本书讲授的内容是如何如何做软件,如何编程什么,当我拿到这本书之后,翻阅下来发现并不是这样的,它以通俗的语言,有趣的人物,简单的举例讲述了软件工程团队的工作方法以及软件工程课程的独特教学方式。然后我就产生了一定的兴趣,心里还在想研究生读的第一本书,是通俗易懂有趣的,起码比上来读代码书强的多。既然这也是杨老师的一项作业,那就好好开个头,把它认真的读下去吧。
当我读到第六章敏捷流程时,6.3敏捷的团队里面有一段对敏捷团队的要求,自主管理(Self-managing)、自我组织(Self-organizing)、多功能型(Cross-functional),自助管理讲述说我们自己不仅要实现领导布置的内容,还要自己挑选任务,自己提出改进,然后自己实施改进。自我组织说每个人不仅要联合起来对项目负责,还要帮助工作落后的人改进,缺少某类资源还要自己顶上去。多功能型讲述测试由测试人员来写,但是需要每个人都全面负责,自己搞定规格说明书,和别人沟通,同时自己搞定测试。通过这章的内容,我知道现在流行的敏捷流程是工程项目比较流行的流程,但是我还产生了疑问。我的疑问是既然我们是一个团队,有领导带领,那我们为什么要和领导承担同样的压力和责任,如果说我们是创业团队,大家用敏捷流程无疑会是不错的选择,但是既然是在公司,既然有领导,他领的工资还比我多,那我们又应该从哪儿去寻求动力与激情去承担这些责任呢?
当我读到第四章两人合作时,4.5结对编程中4.5.2为什么要结对编程里面有一个优点是在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就很少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。我提出的问题是这些优点都是在两个人确实是实力相当并且思维一致的前提下产生的,但是如果说两个人实力相差悬殊,高水平的人员还需要时刻帮助水平较低的同伴,这样不仅不会提高效率还会降低效率不是吗?而且每个人的编程习惯还不同,当两人产生意见分歧时,应该怎么处理呢,及时俩人在经过商量讨论过后决定采取其中一个人的方案,但是时间不也是浪费了吗?
当我读到第十六章,16.1.1中讲到我们熟悉的计算机和IT领域,所有我们看到的“酷”的东西,都是几代人、许多团队前赴后继持续创新的结果。就像拼图一样,很多聪明人都模糊地看出了最终图像,都在一块一块地拼接,往往拼好最后一块的人得到了最大的荣誉。但是没有前人的积累,没有自身扎实的功力、就没有“最后一块”等着大家去拼。我从创新这章中理解到,所有创新都是踩着前人肩膀进行的,需要知识的积累。那我们研究生到底应该是广泛涉猎,多掌握各方面知识,找到创新突破口,还是应该专攻一个方面,对其他无关方面置之不理呢?精力是有限的,想要创新,到底应该怎么样呢?
当我读到第十六章,16.1.7中第5条成功的团队有老大的心理中讲到当你已经是本领域最大、最好的公司时,你还要搞段颠覆性的创新么?你是不是想做一些渐进式、维持性的创新就够了?为什么要再搞颠覆性的创新?我能从中得到什么?颠覆式的创新最大的特点,就是它失败的几率非常大,一个员工身处一个成功的大公司,他可以从事颠覆式的创新而失败,也可以坐而论道。这时候我想到,如果我们身处这样的领域顶端的公司,我们是否有勇气去尝试颠覆式创新呢,如果自己的leader想要带领我进行颠覆式创新,但是结果可能是离开自己的岗位,那我有没有勇气、应不应该去跟随他的脚步,冒风险去尝试呢?
当我读到第十七章,在17.3绩效管理中有一部分划分等级和公开刺激的做法的内容,讲述的是有些人把团队成员分为A、B、C这样的等级,并且认为A类员工最优秀,B类员工一般,而且B类员工会把更差的C类员工招入团队,急剧降低团队质量,因此要尽量只保留A类员工。我不明白的是既然团队是为利益在工作,为了绩效在工作,越是多的A类员工,越是能提升效率,甚至提升创新力,为什么要加入C类员工去刺激他们呢,这样的话对A类员工是不是不太公平,我们出了大多数的工作,最后却要别人分去我们的绩效。这点我是有点迷惑的。
以上几个问题,仅是身为学生的我读完这本书之后的一些见解,没有真正的团队经验以及公司工作经验,可能有些问题略显幼稚,请读者见谅。