读书笔记——读《构建之法:现代软件工程》第13~17章

第13章  软件测试html

      昔者韩昭候醉而寝,典冠者见君之寒也,故加衣于君之上,觉寝而说,问左右曰:“谁加衣者?”左右对曰:“典冠。”君因兼罪典衣与典冠。其罪典衣,觉得失其事也;其罪典冠,觉得越其职也。非不恶寒也,觉得侵官之害甚于寒。架构

——《韩非子·二柄第七》ide

      侵官之害甚于寒——咱们不是不鼓励开发人员主动帮助测试,而是咱们是要避免致使职责不清的越界行为。咱们在测试经验交流的过程当中,总会与其余同伴有不一样的看法。在测试的过程当中,能够选定一个典型用户(Persona),而后按照典型人物的思路和看问题的角度,把整个系统的各项功能都经历一遍。若是有什么你以为典型用户不满意的,那就能够考虑开一个Bug。我有时知道这个功能的设计想法,可是说真的,在测试的时候不必替别人考虑太多,要把本身当成用户,而不是设计者,这样咱们才能更多地为用户着想,作出更好的做品。工具

     在软件项目中,有这样一个拐点存在——在这一点以前,新的Bug产生的数量大于Bug解决的数量;在这一点以后,Bug的解决数量大于新的Bug产生的数量。这样Bug的曲线就向下移动。 这是在大型复杂项目中,测试人员和开发人员所有经过一个系统管理bug才会出现的现象。咱们不能等待拐点的到来,对于咱们这样的日期驱动型的小项目,拐点必须在发布日以前的若干时间发生,若是咱们的Bug数量仍是继续向上攀升,则没法保证之后曲线会像悬崖同样掉下来。学习

      问题:咱们应该如何让这个拐点发生?测试

第14章  质量保证idea

      •  在初始阶段(新项目,团队进入一个新领域,人员刚进入一个项目),每一个团队成员都要尽可能打通各个环节,多负责,把全部事情都搞懂,培养通才。spa

     •  当项目/产业发展到必定阶段(进入阵地战的时候),要大力提倡分工合做,培养专才。同时,要把好的工具和流程集成起来,从每日构建,到基本功能的自动化,都要尽快实现。设计

     •  把本身项目的架构和流程作好,让全部人都能比较容易地进行QA工做,这样,团队的“软件工程质量”才会有提升。htm

     •  培养“你们都要作QA,专人负责量化的Test,有条件多作测试自动化”的文化。

     •  要明白本身项目的特色,避免照搬别人的作法。不要据说某某伟大的项目的开发/测试比例是多少,所以就哭着喊着也要一样的比例。

     •  若是一个团队是认真严肃地作软件,那他们必定要考虑如何保证程序的质量/软件工程的质量,以及达到这些质量,须要多少成本。

     问题:分工以后,每人负责一小块东西,怎么才能体现出我的的独特而巨大的价值呢?

第15章  稳定和发布阶段

     两个学生项目的例子,推断出这些团队的血型:

     STG游戏的跳票(为了完美,推迟了7天,可是7天以后也没有发布……)

     英语学习软件(说了“明早发布”,可是明早一直没到)

     咱们在最后稳定阶段不一样的团队每每会有如下两种不一样的作法:

     ♠  根据事情的轻重缓急,安排大部分事情在下一个版本作。正由于咱们对项目、团队、商业模式有信心,才会把不少事情安排在之后的版本中。

     ♣  拼一下,把全部事情搞定,后果是你们都累得够呛,而后人也走了,没有人有兴趣作下一个版本。

     问题:为何在项目的最开始的时候团队们不拼一下,把全部事情在初版搞定?这样在最后的稳定阶段就有更多的诗句冲刺了。

第16章  IT行业的创新

     In the summer of 2003 while still working for my first startup I've got a "big idea": social news reader. Imagine something like Google Reader with Priority Inbox and social recommendations.  I was thinking about it day and night. I couldn't sleep and was working through it in my head while lying awake in bed...

    问题:在创业的过程当中,市面上和你的朋友圈同时流传更cool 的想法和创新,是应该坚持己见仍是随波逐流?

第17章  人,绩效和职业道德

      用专业知识教育人是不够的。经过专业教育,他能够成为一种有用的机器,可是不能成为一个和谐发展的人。要使学生对价值有所理解而且产生热烈的感情,那是最基本的。他必须得到对美和道德上的善恶鲜明的辨别力。不然,他 —— 连同他的专业知识 —— 就更像一只受过很好训练的狗,而不像一个和谐发展的人。为了得到对别人和对集体的适当关系,他必须学习去了解人们的动机、他们的幻想和他们的疾苦。

 

    ---- 爱因斯坦

 

     笔者在这一章中用了三个角色——猪、鸡和鹦鹉来讲明了现代软件工程开发团队中的三种典型例子——全身投入参与围观。在与人交往的过程当中,我发现仍是有不少同窗只是关注“自我”和“当下”,不善于跟别人合做,也不会估计别人会怎么想,或者估计“咱们的团队未来会发生什么,我要如何应对”。形成这种现象的一部分缘由是,很多同窗从小就被灌输“搞好本身的学习就能够了”,“把眼下的考试考好,之后就行了”,另外一部分缘由是,同窗们历来没有练习如何与别人合做,估计别人会想什么,估计团队之后会发生什么。科学家认为,人类有别于其余动物的最大特色是人类大脑里有发达的部分在处理“别人在作什么”和“将来会发生什么”(Interpersonal Awareness & Social Awareness)这些事情。能摆脱[自我/当下]而考虑到[别人/未来],从而主动为群体和未来行动,这是人和其余动物不一样的地方。在成功的大型企业中,人际交流能力和人际觉察(Interpersonal  competence, and Interpersonal Awareness)是员工素质培训的一个重要部分,它包括如何与别人创建平等而融洽的合做关系,如何处理矛盾与冲突,如何影响同事,如何给别人的工做作评价,如何能了解别人表面行动下的言外之意、隐含的动机等等。在前文提到的“黄金点游戏”这个场景中,一位参赛者须要了解一屋子的同窗大概的思路 ,如何影响他们,本身才能增长获胜的但愿。若是每一个人独自埋头推导公式,而无论其余人在想什么,是得不出获胜的数字的。

 

     问题:软件工程师在企业中是劳动密集型的工人么,仍是有首创性的专业人士? 他们对软件企业的成败负多大的责任?

相关文章
相关标签/搜索