项目 | 内容 |
---|---|
这个作业属于哪个课程 | 班级博客 |
这个作业的要求在哪里 | 作业要求 |
我在这个课程的目标是 | 学好并应用好软件工程 |
这个作业在哪个具体方面帮助我实现目标 | 总结个人在软件工程中的收获 |
作业正文 | 如下 |
一.提问题的博客
二.问题解答
问题一:现代软件工程讲义 3 结对编程和两人合作中提到:
结对编程有如下的好处:
(3)在心理上, 当有另一个人在你身边和你紧密配合, 做同样一件事情的时候, 你不好意思开小差, 也不好意思糊弄。
以及
结对编程的过程也是一个互相督促的过程,每个人的一举一动都在别人的视线之内,所
有的想法都要受到对方的评价。由于这种督促的压力,使得程序员更认真地工作。结对
编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。
书中的描述与我的直接经验矛盾,我对此产生了疑问;两个人中如果能力差距太大,可能会导致编程往往是能力强的人独立完成的,能力弱的人如果遇到问题经常提问的话,或许会影响编程的效率;而两个人能力差距不大的话,结对编程与单独编程所学到的东西以及效率可能是差不多的。
解答:结对编程中,我相比于队友能力较弱,但通过和队友的交流,我在其中学到了不少知识,代码的规范、解题的思路、代码的复用等等,也印证了以上的观点(由于这种督促的压力,使得程序员更认真地工作。结对编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。),在编程中,为了不拖队友后腿,努力将自己的编程水平提高。
问题二:现代软件工程讲义 3 代码规范与代码复审中10.3.2提到:
在面对面的复审中,一般是开发者控制流程,讲述修改的前因后果。但是复审者有权在任何时候打断叙述,提出自己的意见。
书中的描述与我的直接经验矛盾,我对此产生了疑问;当我在腾讯课堂看到课件上的这句话时就产生了疑问,无论是别人,还是自己讲解代码时,有人打断的话可能会想不起下一步该讲什么,复审者在任何时候都能打断的话,会打乱开发者的思路,会不会影响复审的效率,可能开发者在下一步就会回答这个问题,我觉得复审者可以记录下来自己的问题,在合适的时机提问。
解答:在团队项目编程中,我们采取的是讲义中所提到的方法(复审者有权在任何时候打断叙述,提出自己的意见),但在这过程中,我觉得这种方法不够高效,有点浪费时间,因为开发者在接下来的讲述中可能就会表达这个问题,应该采用issue记录,在合适的时机提问,而且因为我们项目模块与模块之间的耦合度非常低,涉及某个模块的问题可以私底下解决,没必要浪费其他模块同学的时间,而且久而久之可能会降低团队成员开会过程中的关注度。
问题三:软件工程讲义 3 两人合作(2) 要会做汉堡包提到:
先来一片面包, 做好铺垫, 例如可以从双方的共同点, 团队共同的愿景讲起, 让对方觉得处于一个安全的环境。
这种方法在有些情况下或许不适应,两人合作,如果一人要反馈的话,要用什么样的方法来让另外一个人接受应该是因人而异的;谈双方的共同点, 团队共同的愿景,或许在另外一个人看来是浪费时间,降低效率,反而起了反作用。
解答:因为结对编程中,我和队友很熟,这一步骤(先来一片面包, 做好铺垫, 让对方觉得处于一个安全的环境)直接省略了。
问题四:现代软件工程讲义 5 项目经理第2节中提到:
Program Manager管事不管人
我觉得这句话没有表述清楚,PM不管人 在这句话中应该是和团队中的人是平等的关系,而当第一次看到时或许会有人觉得这句话表达的意思是不与团队中的人打交道,只和事打交道,引起误解。
解答:这句话有二义性,上面描述已解释。
问题五:现代软件工程讲义 6 用户调研中提到:
用户最需要的 > 用户表达出来的
这句话引起了我的疑问,如果用户最需要的都表达不出的话,那么我们或许可以认为PM没有能力和用户进行有效的沟通,如果用户表达不出最需要的话,我们也没必要做出这个软件了,我觉得这句话应该描述为 用户想要的>用户表达出来的。
解答:我认为我以前的理解是错误的,通过团队项目,我感觉到因为思维各异、语言不同等多方面的原因,用户最需要的可能表达不出。
三.新的问题
1.在团队项目中, 怎样准确地评估成员的贡献度?
2.PM需不需要专门地训练,如何把握开会时间、做好任务分配、得到用户需求?
四.知识点
1.需求
用户需求各异,甚至会出现相互矛盾的地方,团队成员应该开会决定,受益多数群体。
2.设计
团队在开会中一起思考设计方案,为以后的开发打好基础。
3.实现
在小程序中,UI方面非常重要,应尽可能提供给用户舒适、赏心悦目的界面或者设计多种方案,用户可以自己改变。
4.测试
在表情包相关小程序中,图片是主体,因此压力测试十分重要(在网络环境较差的情况下的图片加载问题、多张图片从数据库中取出并显示问题等等)。
5.发布
小程序的发布应注意,可能会出现了用户帐号登录规范调整和优化建议、UGC类小程序运营等问题。
6.维护
应该对用户的反馈进行专门回复,解答他们的疑惑。
五.心得
1.个人项目
在个人项目中,我只注重了自己的思考,在网上很少搜寻资料,未能找到一种好的方法来解决;个人项目在时间安排上不合理,导致个人项目结果较差。
2.结对项目
结对编程中,我相比于队友能力较弱,通过和队友的交流,我在其中学到了不少知识,代码的规范、解题的思路、代码的复用等等,结对编程对我的帮助很大。
3.团队项目
“表情包神器 为你而生”表情包小程序是我坚持下来的第一个团队项目,团队成员之间相互交流,每天开会、测试、开发,取得了不错的成果,使用人数已经突破了一万,并且在团队项目中,因为在此之前很少涉及前端,我认识到UI方面非常重要,应尽可能提供给用户舒适、赏心悦目的界面或者设计多种方案,用户可以自己改变。