第二次作业
| 这个作业属于哪个课 | https://edu.cnblogs.com/campus/zjlg/rjjc20 |
|---|---|
| 这个作业的目标 | <读《构建之法》,提出自己的问题> |
| 姓名-学号 | <王宁宁>-<2018330301039> |
问题一:向进度落后的项目中增加人员,会让项目更加落后
我在《构建之法》的第一章,第15页,看到有这样一句话:“向进度落后的项目中增加人员,会让项目更加落后。”,我很疑惑的是这个规律的适用范围。
因为在日常中生活中,互帮互助总是常见,也有句话,众人拾柴火焰高。我在查找的资料上也看到说,软件工程的特殊性,要求软件团队需要有高强度的沟通和默契。盲目增加人员只是徒劳无用,还会拖慢进度。所以这个规律是否放之四海而皆准?或者还是只适用于软件工程?
问题二:re-work
我在《构建之法》的第三章,第46页,看到笔者对“re-work"的看法,认为,re-work只是表明在软件开发过程中花费的时间,re-work的多寡并不跟最终的质量成正比关系。re-work有价值,但是,如果为了一个简单的问题不断的re-work,会使得工作效率不高。笔者举例,一个成本是,一个艺术家经过几十遍的涂涂改改,最后创作一幅佳作,但这幅作品被大量重印,给画家带来名和利的收获。另一个成本是这幅画只是每天要完成的几十幅稿件中的一幅。论哪个成本值得。
这里我一下想到了,曾看到的资料中提到,(不确定记忆是否准确)华为在程序编码时,常常采用不断累积次编码,同一个程序,你编完,我看一遍,修改一遍;再来一个人,再看一遍,修改一遍。通过不断累积,实现程序运行上的微小突破。用时间和人力成本来替换得到技术优势。所以我想,如果re-woek不断积累的话,是否可能量变引起质变。每天只是为了完成任务试的,去画画的话,突破的可能性很小,但是通过不断的re-work,去积累改变,却是一种明确性的进步方向。
问题三:结对编程
我在《构建之法》的第四章,第79页,看到有关结对编程,提到结对编程,是两个人一起编同一套程序。我疑惑的是结对编程比非结对编程到底哪个更优。
书中提到结对编程可以提供更好的设计质量和代码质量,可以互相鼓励,互相学习。但问题也很明显,因为接对的两人精神想法已经高度相同,在复审时,很可能无法发现问题,使得复审效果很差。而且,结对编程需要双方的精神都高度集中,配合默契,要求度很高。非接对编程,每人负责的部分,各有不同,可能使得整段代码融合时,各方面会依据编程者的水平高低而不同。但是复审时,另一视角的加入,会更容易及时发现并解决问题,提高设计和编码的质量。
所以结对编程和非结对编程到底选择哪个更好?
浙公网安备 33010602011771号