我看了第4章4.5.3“同时,结对编程避免了‘我的代码’还是‘他的代码’的问题,使得代码的责任不属于某个人,而是属于两个人,进而属于整个团队,这样能够帮助团队成员建立集体拥有代码的意识,在一定程度上避免了个人英雄主义。”部分,产生了这个问题:文中提到,结对编程会起到互相督促,互给压力的效果。但我想可能存在一种情况:某个人与团队内编程能力最好的那个人结对编程,那么这个人会不会因为和高手搭档,就形成依赖而不是激起自己的好强心态。自己编程的时候想着反正有大佬在复审,就没有那么投入,也没有那么苛求细节,如此一来,出Bug的数量和概率肯定会上升。而且大佬的操作甚至让这个人复审不知从何下手。查了资料,有如下说法:和实力相近的人结对编程可以解决这个问题。按照我的实践经验,此举确实可以避免上述问题出现。但我又想,这好比一个班级里作业得分最高的双人组和最低的双人组,一个团队中的人实力水平差距是必然存在的,如果说按照水平两两结对编程,避免了上述情况,但此时最强的那组和最弱的那组之间的差距就会被数倍扩大,那么同一个产品的两个模块之间可能就会存在极大的质量差距,显然不是我们想要的结果,那又如何解决这个问题呢?
我看了第5章5.3.6 MVP和MBP,产生了如下问题:条件允许的情况下,MBP显然看起来比MVP更加具有吸引力,也更能一举征服用户。从我个人观点来说:MVP模式大部分是受委托进行合作的商业开发模式,而MBP则更多是创业者追求的模式。他们最大的区别在于MBP往往需要更多的时间和更好的技术团队,以及对用户需求的更精确定位。那我是否可以理解为MBP模式是MVP模式的进化和升级?MVP模式是MBP模式的跳板还是说这只是两种不同的开发模式,之间并无太多的进化关系?假设是跳板,那么就是多次MVP累计经验进行MBP,但此时或许早就过了最佳的市场抢占时期,往往都是创造性的挑战MBP产品才能形成创新,在市场中鹤立鸡群。那么它们之间的到底是否存在进化与升级关系?查了资料,并未得到一些能对我的疑问有所帮助的回答。根据我的学习实践,我的经验是:同等时间内MBP模式或者MVP模式的选择取决于个人的编程开发水平,有的同学只能完成仅满足最低需求的编程作业,但编程能力强的学生可以将编程作业做到十分完整的地步。但这情况与实际商业开发有所不同,也就是目前的实践学习经验并不能解决我的疑惑。
我看了第9章9.3中“在一个项目中,PM的具体任务是:”这一部分内容。产生了这个问题:对于PM的选择,是用更偏向市场的PM还是用更偏向技术的PM会比较好?按照书中描述,PM的任务大概是作为开发人员和用户之间的桥梁,并带领开发团队完成任务。如若是偏向市场的PM,可能在获取客户需求方面会做得更好;若是偏向技术的PM,他会更好的将客户需求转换为开发团队的具体任务。当然可以说,找两者平衡的PM,但也许事实上,既有强大的市场敏锐度又有精锐的开发技术的PM毕竟还是少数。查阅资料:大部分说看具体的项目类型以及面向的用户群体而定。我感觉这种说法过于空泛,具体如何通过判断项目类型以及用户类型来选择PM我还有疑问。
第二章P34页开始提到了PSP个人开发流程,我们这次作业也有要求用PSP表格记录自己估计将在程序的各个模块的开发上耗费的时间。但是我在估计时间的时候感觉力不从心,不知道该怎么估计,最终也和实际耗费时间相差甚大。要怎么才能更好地估计自己估计将在程序的各个模块的开发上耗费的时间呢?我目前的观点是随着自己个人能力的提升和经验的积累会对估计有所帮助。