摘要:对于极限编程很早就开始关注了,而且有一段时间msn就叫做“拥抱变化”,但是一直没有什么实践,典型的属于只想不做,起大早还赶不上晚集一类。
关于xp有两个中文站点起步的很早,而且里面的成员也在各地做过一些推广,但是最近他们都没什么更新http://www.qca.cn/agilechina/http://www.chinaxp.org/forum/forum.jsp
这是xpchina以前做的一些培训资料,不知道他们现在还在各地做推广吗
Andrew J. Dick的关于pair programing的演示http://199.243.248.196/forum/paired-presentation.pdf 关于pair programing,记得rose出过一本白皮书,名字忘了叫什么,讲得很详细,把员工工作环境的图都画出来了。
结对编程的一个主力网站http://www.pairprogramming.com/
结对编程是xp的基本实践,也是一项纪录严谨的工作,很多人需要时间来适应这种工作模式,而且刚推行的时候也很有可能会有人会跳出来抱怨工作变得有趣的同时,还会变得很累。
我的文档里有两段从论坛摘录的关于结对编程的讨论
1:
Re:关于理想时间的疑问 发贴:charles 2003.05.24 >比如我工作了5个小时,应该算是多少的理想时间呢? 那就是5个小时了,如果过去5小时你没够被严重打断。比如中间去看了2小时的会,看了3给小时医生。如果你发现自己会被严重打断,需要及时提出并获得二外时间。
〉为经常更换pair,对于每个task 所用的时间难道掐表计时? 是的,xp的task是按小时了计划的。tracker回每隔2小时,询问所有pairs的工作进度和完成信心。如何能高校按时完成task,需要developers对每个task做严谨的计划。每个task都应该有一个仔细的todo list。比如说一个task,估计需要24个小时(3 days),如果你的todo list友30个items, 那很容易从完成的items和花费的时间就知道是否能按时完成。
没有不劳而获的。XP里神奇的8小时工作日,是依靠严谨的计划和高效的工作来获得。XP里每个pair的每个小时都需要出成果(完成todo list上的itmes),如果tracker每隔2小时来询问发现你再todo list没有什么进步,要么你没有好好工作,要么你遇到难题,这些都是需要managment解决的(否则project manager/team lead做什么?)。
很多developers再没有daily计划的情况下,可以在电脑前花费3-4个小时也做不出什么东西(包括我自己也会).仔细计划自己的工作是一个好的方法, 这对所有人都很清楚,也很简单。置需要那张纸,列出3--8小时内要做的东西。然后去完成他们。 但有多少人能够做到每天仔细计划自己的工作呢。xp要求develoeprs这么做。并且做到极限(就是一个3-4小时的task,也需要列清楚没个小时的工作)。
要求高ma?好象小学的时候老师就这么教的了? 2:
Extreme Programming 论坛 / 关于Pair programming的一些疑问! 浆糊 2002.07.01, 14个回复, 365次浏览 Pair programming会不会降低开发效率?看到一些文章说可以提高,但是觉得还是有些悬。我感觉Pair programming注重的是系统的健壮性,而不是开发效率。 回复 Re:关于Pair programming的一些疑问! 发贴:charles 2002.07.01 >Pair programming会不会降低开发效率?看到一些文章说可以提高,但是觉得还是有些悬。我感觉Pair programming注重的是系统的健壮性,而不是开发效率。 pair programming降低开发效率?well,至少在我的XP经验中没有出现。类是的文章我也看过一些,他们都有提出数据来说明,主要是说XP再overall的流程中可以别其他方法节省25%(correnct me if I remember wrong)的时间。 我的看法是赞成他们的说法的。因为我真的有过类似的比较。而这个比较甚至不是在一个真正的XPteam和一个传统的development之间的比较。
是这样的,当时我离开了XP team而转到一家wirless application company为他们设计和开发一workflow appplication。这公司按传统的方式管理。我一个人负责一个distributed agent framework的设计和开发。其他模块则由另外的developers开发。由于我已经习惯了XP的开发模式,所以即使一个人,我也还是按照XP的流程来安排自己的工作。自己写user stories(我自己就是客户, ,划分 engineer task,estimate(以小时数为单位),unit test first,continuous integration test,code review,cnotinuous refactoring.但一个人,无法做pair programming,code reivew也无法很充分.
而同时其他developer则采用传统的方式,设计文挡,class diagram,sequence diagram,coding,自己的 手工测试.
开发两个月后,第一个release进行integration和QA,其他developers重复 bug fix <----> QA的漫长的过程.而我则因为有较充分的unit tests,在developers近一个月的bug fix时间内,我几乎无事可做.可是其实我的code和在XP team时的code的质量已差了不少.
从那时起,我开始成为XP的believer,而不是我在XP team的时候.
回应这个帖子 回复 Re:Re:关于Pair programming的一些疑问! 发贴:charles 2002.07.01 而说道效率,我是这样看的.
在一端时间的适应和磨合后,pair programming的效率比一个人高.
仅从一天八小时的分配和利用上来看,pair programmnig就比一个人高。老实说,一个人的一天真的工作八小时么?我看不见的吧。据统计,一个人一天真正有效率和时间不超过4小时。我想developer对此一定有体会。一通常是在莫个时段的效率高和工作可以顺利进展。其他时候可能很难集中精力,也许就是看看internet,聊聊天,或则磨一磨就过去了。不是懒,而是人的生理周期。如果每个developer都有一个小格子,就更难监管效率。而再pair programming中,你几乎一天八小时都受到你的同伴的压力,除非你们一起偷懒,否则你不好意思偷懒的。所以你一天都是在认真工作的。 由于两个人一切写程序,两个人可以轮流些,不桥键盘的developer就可以休息一会。这样可以防止疲劳工作。而frequent standup......[
阅读全文]