锁定老帖子 主题:困惑的结对编程?
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-15
mentoring session 不是是pairing session. 更不是什么 一种pair 的风格。确切的来说应该是onsite training.
一个高级的dev和一个新手之间的pair永远是浪费project的时间。对于公司来讲可能或者大概能够节约培训成本。 但是对于自学性极高的华人来说似乎这种所谓的pair帮助不大。 另外所谓 pair 可以减少defect 也缺乏实际的统计数据。 defect多少跟人的关系很大。相信thoughtworks的pay 应该不错吧。如果我开个下三滥的公司,pay只有thoughworks的十 分之一也照用pair,defect应该不知会多10倍吧。 我曾经面试过一个人,我们问他怎么可以减少defect. 期待的回答当然是pair TDD. 但是他的回答是:“to find the guy smart enough”. 软件的defect不可避免,process和人都可以减少defect的出现,相对来说人的因素更重要。 |
|
返回顶楼 | |
发表时间:2007-04-15
emarket 写道 一个高级的dev和一个新手之间的pair永远是浪费project的时间。对于公司来讲可能或者大概能够节约培训成本。 但是对于自学性极高的华人来说似乎这种所谓的pair帮助不大。
那么,为什么自学性极高的华人中还有那么多垃圾程序员呢?照我的观察,尽管自学性极高,华人垃圾程序员的比例似乎也并没有比洋人要来得低。这能为你的“培训成本无用论”做一个注脚吗? emarket 写道 另外所谓 pair 可以减少defect 也缺乏实际的统计数据。 defect多少跟人的关系很大。相信thoughtworks的pay 应该不错吧。如果我开个下三滥的公司,pay只有thoughworks的十分之一也照用pair,defect应该不知会多10倍吧。
你真的是程序员吗? 第一,pair programming可以看作一种非常频繁的code review,所以不管你的人是水平高还是水平低,pair programming都有助于降低defect。我希望你能理解什么叫“降低”,那是在你原有的基础上降低。没有任何方法能把垃圾程序员一下子就变得优秀。 第二,pay只有ThoughtWorks十分之一的下三滥公司,造成的defect绝对是ThoughtWorks的一百倍以上。程序员的水平与收入成平方正比,我以为这早已是软件行业人所共知的事情。 |
|
返回顶楼 | |
发表时间:2007-04-15
下三滥的公司就应该被淘汰。。。
因为他们自己都不知道自己作了什么 |
|
返回顶楼 | |
发表时间:2007-04-16
gigix 写道 emarket 写道 一个高级的dev和一个新手之间的pair永远是浪费project的时间。对于公司来讲可能或者大概能够节约培训成本。 但是对于自学性极高的华人来说似乎这种所谓的pair帮助不大。
那么,为什么自学性极高的华人中还有那么多垃圾程序员呢?照我的观察,尽管自学性极高,华人垃圾程序员的比例似乎也并没有比洋人要来得低。这能为你的“培训成本无用论”做一个注脚吗? emarket 写道 另外所谓 pair 可以减少defect 也缺乏实际的统计数据。 defect多少跟人的关系很大。相信thoughtworks的pay 应该不错吧。如果我开个下三滥的公司,pay只有thoughworks的十分之一也照用pair,defect应该不知会多10倍吧。
你真的是程序员吗? 第一,pair programming可以看作一种非常频繁的code review,所以不管你的人是水平高还是水平低,pair programming都有助于降低defect。我希望你能理解什么叫“降低”,那是在你原有的基础上降低。没有任何方法能把垃圾程序员一下子就变得优秀。 第二,pay只有ThoughtWorks十分之一的下三滥公司,造成的defect绝对是ThoughtWorks的一百倍以上。程序员的水平与收入成平方正比,我以为这早已是软件行业人所共知的事情。 还好我是个 XP developer, 不过我们这儿不流行工作证,否则可以扫描份法上来。 华人的自学性高是以群体而言,是和老美的群体比较而言,n年前我的同事都是华人,现在我的同事都是老美,孰优孰略我心里有数。 至于垃圾程序员,我还是建议他们转行吧,PP帮不上忙,这点我们达到了共识:) 不过事实却总是事与愿违,一个公司总会找些低手和高手,一部分低手通过自身(注意是自身)的修行可以成为高手,PP可以在此过程中起到“师傅领进门”的作用。 而大部分XP的鼓催者 就拿让高手和低手PP可以把低收变成高手同时又会事半功倍减少defect的神话来混淆视听,而忽略了“修行靠个人”这个重要的条件。 我当然同意和我的克隆pair的话,我们的defect会比我自己降低。但是真实的情况是很难找到门当户对的:( 。 但是如果是mentoring session, 我们的代码的defect会上升 (相对于我独立完成的),因为一方面我要顾及如何指导新人,一方面我要考虑如何设计系统。 但是不可否认的是,pp的代码的defect会相对于 新手独立完成的 defect 有所降低。 但是其中降低和提高多少都回有个度的问题。 我没有想要全盘否定PP, 因为我也是从低手过来的,当然知道“师傅”在其中的作用功不可没,但是没有我自我的修行,可能还是在原地踏步。 所以我赞成, 1. 门当户对的PP可以事半功倍 2. 一般的公司10-30%的pair 可能是门当户对的PP. 这一点要看公司而定,thoughtworks可能会高些,因为你们的招聘过程比较XX,pay也比较XX, turn over也比较XX 3. 在项目时间允许的条件下, 可以允许mentoring session based PP, 但是PM必须理解到这个PP是赔本的。但是这种1:1的培训效果会比1:N的培训效果好些。 但是如果新手不自我修行,什么都是白搭。 4. 在项目紧的情况下,而组里又有比较多新手的条件下,集中培训+自学 的方法比PP要更节约成本。 5. 新手必须承担一部分压力去自我修行。否则没有一种办法可以凑效。 BTW: code review的工作PMD 的eclipse plugin 作的很不错。我们pair的时候code level的全部交给PMD的, 而我们着重于design level的 review. 另外defect的引入和复杂性是有关系的,微软那么多高手, 不是一样bug很多。 所以高手working on 复杂的,低手working on 简单的 比高手和低手pair on复杂的 引入更多defect(相对于高手独立)然后再pair on 简单的 减少defect (相对于低手独立)] 要好得多。 因为在复杂问题上引入defect往往比在简单问题上引入defect严重的多。 |
|
返回顶楼 | |
发表时间:2007-04-16
抛出异常的爱 写道 下三滥的公司就应该被淘汰。。。
因为他们自己都不知道自己作了什么 很遗憾,这需要一个过程。 而且通常这种公司能够讨得用户的欢心,因为通常用户也不知道他们要什么:) |
|
返回顶楼 | |
发表时间:2007-04-17
另外 PP 的另一个好处是TDD的时候两个人可以想出更多的case, 这也是为何可以减少defect的原因,也是我们PP的努力方向
但是这一点是有前提的,新手往往由于对问题的不熟悉而不能发现更多的case, 老手因为要照顾新手而不能想出比自己单干的多。所以新手和老手PP往往是会带来更多的defect。(除非新手的智商过人) 还有一点就是如果老手对domain很熟悉,而又接受过正规的 测试训练, 一个人是完全可以找到大部分case的,当然这和人有关。 PP也不能保证两个人找到的case一定就比一个人多。 |
|
返回顶楼 | |
发表时间:2007-04-17
emarket 写道 还好我是个 XP developer, 不过我们这儿不流行工作证,否则可以扫描份法上来。 华人的自学性高是以群体而言,是和老美的群体比较而言,n年前我的同事都是华人,现在我的同事都是老美,孰优孰略我心里有数。 至于垃圾程序员,我还是建议他们转行吧,PP帮不上忙,这点我们达到了共识:) 不过事实却总是事与愿违,一个公司总会找些低手和高手,一部分低手通过自身(注意是自身)的修行可以成为高手,PP可以在此过程中起到“师傅领进门”的作用。 而大部分XP的鼓催者 就拿让高手和低手PP可以把低收变成高手同时又会事半功倍减少defect的神话来混淆视听,而忽略了“修行靠个人”这个重要的条件。 我当然同意和我的克隆pair的话,我们的defect会比我自己降低。但是真实的情况是很难找到门当户对的:( 。 但是如果是mentoring session, 我们的代码的defect会上升 (相对于我独立完成的),因为一方面我要顾及如何指导新人,一方面我要考虑如何设计系统。 但是不可否认的是,pp的代码的defect会相对于 新手独立完成的 defect 有所降低。 但是其中降低和提高多少都回有个度的问题。 我没有想要全盘否定PP, 因为我也是从低手过来的,当然知道“师傅”在其中的作用功不可没,但是没有我自我的修行,可能还是在原地踏步。 所以我赞成, 1. 门当户对的PP可以事半功倍 2. 一般的公司10-30%的pair 可能是门当户对的PP. 这一点要看公司而定,thoughtworks可能会高些,因为你们的招聘过程比较XX,pay也比较XX, turn over也比较XX 3. 在项目时间允许的条件下, 可以允许mentoring session based PP, 但是PM必须理解到这个PP是赔本的。但是这种1:1的培训效果会比1:N的培训效果好些。 但是如果新手不自我修行,什么都是白搭。 4. 在项目紧的情况下,而组里又有比较多新手的条件下,集中培训+自学 的方法比PP要更节约成本。 5. 新手必须承担一部分压力去自我修行。否则没有一种办法可以凑效。 BTW: code review的工作PMD 的eclipse plugin 作的很不错。我们pair的时候code level的全部交给PMD的, 而我们着重于design level的 review. 另外defect的引入和复杂性是有关系的,微软那么多高手, 不是一样bug很多。 所以高手working on 复杂的,低手working on 简单的 比高手和低手pair on复杂的 引入更多defect(相对于高手独立)然后再pair on 简单的 减少defect (相对于低手独立)] 要好得多。 因为在复杂问题上引入defect往往比在简单问题上引入defect严重的多。 新手也要分学习能力强的新手和学习能力弱的新手,强的不用管他,自己会变成牛人;弱的赶紧开除,免得碍事。 |
|
返回顶楼 | |
发表时间:2007-04-17
楼上。。你认为你的公司支付的起一群牛人的工资增长么?
emarket 写道 另外 PP 的另一个好处是TDD的时候两个人可以想出更多的case, 这也是为何可以减少defect的原因,也是我们PP的努力方向
但是这一点是有前提的,新手往往由于对问题的不熟悉而不能发现更多的case, 老手因为要照顾新手而不能想出比自己单干的多。所以新手和老手PP往往是会带来更多的defect。(除非新手的智商过人) 还有一点就是如果老手对domain很熟悉,而又接受过正规的 测试训练, 一个人是完全可以找到大部分case的,当然这和人有关。 PP也不能保证两个人找到的case一定就比一个人多。 你说的case 是指user case 么 在开发的过程中想可能的case么? 那么在开始设计时会减少很多劳动。。。 但文档的收集不是很费力么? |
|
返回顶楼 | |
发表时间:2007-04-18
明显是test case呀
pp有一个很大的好处似乎没人提到——防止有人偷懒、炒股、泡mm |
|
返回顶楼 | |
发表时间:2007-04-24
如果一起pp的两个人彼此互相克隆的话,我想这个效果应该不如两个有差异的人来的好吧?多样性是幸福之源~~
|
|
返回顶楼 | |