创业型的软件公司,怎么做项目管理呢?

Coder李海波 小米 研发工程师  2009-02-21 07:37:52
诚心的请教。
...全文
428 点赞 收藏 18
写回复
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2009-03-27
谈谈个人看法,不对的地方请大家指正:

我觉得项目管理要根据实际情况来定,书本或者理论的东西只能是一个参考

对于我们来说,客户需求是最重要的,但是软件质量同样也是不低估的,所以需求分析、概要设计、详细设计、测试等每个环节都不能少
但因为我们规模小,所以流程上不能按照教程上的来走,要适当地根据需要做一些改变

力争做到“麻雀虽小,但五脏俱全”

回复
Coder李海波 2009-03-27
我挺反感别人推荐东西的,楼上这本书不下于20个人向我推荐了,我肯定会买一本来看看,但是不知道是否如你们说的那样好
回复
pushware 2009-03-27
有意思。
回复
zxl_2609 2009-03-27
哈,中小型公司要先出'详细设计',太难了,时间来不及呀!!!
回复
zhangdp_neu 2009-03-26
建议看看《如何成为软件开发正规军》阿珠写的,很不错。适合国内小公司。
回复
Coder李海波 2009-03-26
楼上的是老孙吧,哈哈
回复
net_flyfox 2009-03-21
这样的问题俱乐部讨论较多,建议去学习一下。
http://vipclub.csdn.net/invite.php?u=3966&c=18a4627542f3b848
回复
net_flyfox 2009-03-21
td 就是testdirector 一个测试工具
回复
net_flyfox 2009-03-16
看了这么多xp ,我觉得有些晕。
几点看法,仅个人观点:
一,适当的选择工具
哪些工具可选,哪些暂不能用,要清楚。
就几个人,技术还不是很强,就使用UML,客户不明白,成员也不太清白,就先不要用。要用都会用的。
我开始时使用了vss 后改成了svn,主要原因可以在互联网上用。
测试管理用了TD。
脑图软件,与程序员理清思路时用。
project 项目计划时用。
与客户谈分析时多数是word+ppt+excel 以客户能看明白,老板能看明白为准,当然程序员也要看明白。
数据库设计用了powerdesin
还有自己编写的一些工具做配合使用。
压力测试,客户没有太重视,没有用,只是查询时,多做了审查。
二,开发规范
代码规范,专家术语,交流总结一些内容都慢慢形成。
三,交流
要及时总结交流,管理人员要及时发现问题处理。
主程要在开始多审查代码,不要为后来留患。
四,形成一个开心和谐的氛围,让大家有一个目标,踢出对团队不利的人员。
回复
wonder888888 2009-03-16
http://download.csdn.net/source/1021391

看看,有益
回复
此外,既然我上面贴了XP的文章,对于XP开发中计划的基线,其实我觉得应该以半天或者最多1天为宜。既,如果集中精力(例如不在上班时间频繁上网聊天,同时也不需要现学什么新技术,每当遇到技术问题都是顶多用几分钟上网查点资料就可以解决),对于中上等的开发人员,那么半天的工作量应该是划分任务的基础。而如果有各种原因拖延,那么不应该拖延超过3天。当然,这是适合XP这样的开发的。

我相信有不少pm给开发人员划分了需要做1周甚至1个月的任务,这种计划恐怕只适合最初的作坊式开发。
回复
[Quote=引用 5 楼 zxl_2609 的回复:]
重点是计划和跟进
[/Quote]

呵呵,我认为重点是“怎样”计划和“怎样”跟进。换句话说,失误的计划和失败的跟进不是因为做得太少,而是因为做的太多、太空洞而造成的。
回复
zxl_2609 2009-03-03
重点是计划和跟进
回复
Kent Beck 认为值得长期保存的文档只有两个:源代码和测试代码。系统集成测试代码其实就是一个个二次开发的最好实例,所以读测试代码有时候比读源代码来更能理解系统设计的精髓。

关于这里所说的测试和传统意义上的测试区别,请参考我回复的帖子《敏捷开发中的测试》。

Kent Beck 在上文中说“客户要经过培训从而懂得写“story”和亲子写“测试”。实际上,中国的国情使得客户都不可能这样做。所以,团队需要一个产品经理来写测试,然后开发人员的任务就是负责让产品经理写的测试可以通过。
回复
Kent Beck: 这一点我不清楚。XP提出来自每一种文化的程序员的问题,其不同的部分也有提到。XP在中国最困难的部分在哪里?

tensile: XP 是依赖软件还是依赖人?

Kent Beck: XP绝对是依赖人的,好的人倾向于做好的事情,功力差的人做得差一些。

dggh: 代理客户不知道客户的需要,那怎么办?

Kent Beck: 当我上次在日本,他们说他们无法诚实地面对客户,因为客户是上帝。我问是否一个即时(just-in-time)供应商会对他们的客户诚实。“喔,是的,当然。否则是不行的”。我想这就像XP。我们需要对我们的客户诚实并且向他们保证。他们一开始并不喜欢这样,但结果是如此的棒,所以他们会学习去要求这种新层次的投入。

notyy: Kent,你应该知道这样一句话,“没有人因为使用IBM 的产品而受到惩罚”,同样,那么多公司的经理想使用RUP 和CMM。

Kent Beck: 在“没有人因使用XP而被解雇”成为现实之前会如何?我们将努力达到这个目标。“喔,你的团队已经三个月没有交付任何软件了。怎么办?你被解雇了。”我将举一个技术问题为例--模式产生架构。原来的问题是“模式与架构之间的联系是什么?”,这发生在设计模式还是新概念的时候。因此Ralph【编注:指设计模式GOF的Ralph Johnson】和我跑进一家旅馆的房间去封闭思考,尝试回答这个问题。我们找到的答案就像定理(theorem)可以从第一个原理(principles)导出,因此一个架构可以从第一个原理(模式)被导出。这个论点--没有人能够证明是或不是—就是任何架构都可以从一小撮模式的后续应用推导出来。

dggh: QA 部门需要详细的需求,但我们的团队只有简单的文档,怎么办?

Kent Beck: 在XP中,QA有一个前置的角色(up-front role)。在每一次迭代中,在技术团队开始把故事分解成任务之前,最好的团队随着他们的故事交付验收测试。你需要测试员编写这些测试,同时有设备支持他们。对于一个程序员最重要的事是勇气--冒险的勇气—看起来很笨,勇于挑战困难和尝试新技术,勇于清楚地与别人沟通,甚至是很难支持他们时。(The most important thing for a programmer to have is courage--courage to risk looking stupid, courage to try difficult and new techniques, courage to communicate clearly with others even when that is hard support them.)

simplebest: 在中国,大多数优秀的程序员不喜欢和别人坐在一起,这怎么实践XP?

Kent Beck: 在我的团队中,最优秀的程序员是最会沟通的人。或许我们对于“优秀”的定义不同。

simplebest: 关于优秀的定义:意味着你能解决别人不能解决的问题。

Kent Beck: 我对于优秀的定义是使别人解决他们曾认为他们不能解决的问题,也就是一个团队可以共同做的有多少。

阿楼: 噢,天哪,我想我的经理用不了XP,因为他喜欢控制每一件我为他做的事。

Kent Beck: 想要为你作决定的管理者就不是管理者。你可能需要离开,或可能是他们应该离开。在XP你想要从管理者那里得到的是建立及维护社会网络的能力。这个网络断裂,他们便应该去修复。客户可以指定什么层次的工作量(load)需要支持,同时他们编写测试以决定这个层次是否已被支持。如果未通过测试,技术团队修复这个系统。

fdu_se01: 什么是XP 项目的特征?例如涉及的领域,开发团队的规模,软件产品的规模。CMM 的数据(特别是在美国)是基于DoD 的。

Kent Beck: 团队大小:3-40个人(包括整个团队)。领域:可想到的任何事。产品大小:30个生产人员可以在几年内生产的任何东西。

notyy: 很难发现一个隐喻,怎么办?

Kent Beck: 找寻好的隐喻需要相关的软件经验。真正强大的隐喻并不会立即浮现。我曾经有一个大的隐喻是在处理一个程序片段12年之后获得的。我希望我现在应该更聪明了,但我怀疑:-(

zer: 作为项目经理,如果有人离开(被解雇),那应该怎么办?

Kent Beck: 如果团队中有人离开,那一般不是大问题。速度可能下降(也可能提升)。计划的实践已经可以良好地控制速度改变。

xlp223: Linus 是一位优秀的程序员,但他有时候有些害羞。

Kent Beck: 双人编程的方式可以帮助人们变得更能社交。

skyin: XP 发展的方向是什么?

Kent Beck: XP的下一步是更加拥抱整个团队--如何把一个巨大的故事切割成合理的小故事?在团队中彼此如何沟通及协调。

adylee: 你认为XP 现在是不是完美的?

Kent Beck: 你一定是在开玩笑。一般而言自然界的紧急系统使用3到5条规则(Emergent systems in nature use 3-5 rules)。很可悲的是XP似乎需要太多的规则。我一直在找寻简化XP的方法。你是否可以维持可视性及控制而无须先编写测试?我不认为如此,但我太积极投入了,以致不能了解。(but I'm too emotionally involved to know.)

notyy: 你是说XP 将更简单吗?但我想轻快的过程会更复杂。

Kent Beck: 我想让XP变得更简单,但现在我看不到怎么做。

tooliu: 你是说擅长社交比刻苦编程更重要吗?

Kent Beck: 我比较喜欢有些人是可以包括这两方面。每一个团队中的成员应该持续学习新的社交及技术技能。

simplebest: 我们是否能剪裁XP,使它适合我们的团队?特别是针对我们中国团队成员的特征。

Kent Beck: 你可以调整任何程序。你必须对你的结果承担责任,因此在你的实践上你必须有权力。不管如何,我希望人们依据经验调整,而不是丢掉一些重要的东西,只是因为他们害怕去尝试这些东西。

tooliu: 你对XP 有什么不满意的地方吗?

Kent Beck: XP Explained这本书在1999年发行。(其中有许多是我现在想要改变的,但此时我在做别的项目。)

fdu_se01: 要多长时间XP 才能在团队中生效(学习曲线?)

Kent Beck: 一般团队在几周或几个月后都能获得好的结果。一般约9-12个月后明显地变得更有效率。我在Iona辅导的一个团队花了将近一年的时间才真正觉得满意,他们仍然能变得更有效率。

xlp223: 现在有“轻快软件开发”的说法,它和XP 有什么关系?

Kent Beck: “轻快(agile)”来自一个研讨会,其中有许多趣味相投的方*者集中讨论他们的软件开发过程。我们之间的共通点多于差异点,因此我们决定使用“轻快”这个词来描述我们的共通点。

notyy: 你愿意来中国指导一些软件公司吗?

Kent Beck: 我非常希望能访问中国。我辅导的团队包括整个美国及欧洲许多地方。现在我开始在亚洲的工作。我发现在不同文化当中找寻什么比较困难或者什么比较容易是很有趣的。瑞士日耳曼人喜欢编写测试,墨西哥人喜欢双人编程,重构在美国中西部非常流行。

lovelybug28: 我是一个XP 的初学者,请问XP 是否有可操作性(maneuverability)?

Kent Beck: 假设你可以将你对一个大型软件项目的期望切割成一周可以完成的细部。我们每周可以会面,你告诉我哪一个细节是你认为在下一周是最有价值的部分。我不在乎你挑选哪一个部分,所以你可以彻底地改变对于软件的整个概念而从我这边听不到任何怨言。是否这就是可操作性?有一本不错的书“XP in Practice”,其中讨论一个实际的(如果是小的)项目。

taoxie: 关于XP 是否有一些学术研究工作在进行,或者它只是面向工业界的?

Kent Beck: 我们正在取得进展。有一些杰出的教授像Ralph Johnson,开设有XP的课程。XP有许多教育上的优点。迭代式开发让学生有机会尝试许多不同的变化。

skyin: 能不能告诉我们你自己的XP 编程工具箱?

Kent Beck: 我的工具箱?我用VisualWorks写Smalltalk程序,如果我自己编写代码时使用Refactoring Browser,如果我使用Java编写代码时,使用Eclipse及JUnit。我只使用两种语言。

lovelybug28: 关于可操作性…XP 出现之前我们已经这样做了…

Kent Beck: 如果你已经知道如何做,XP可以从你身上学到一些东西。

notyy: OOAD 必须在XP 过程中使用吗?

Kent Beck: 你必须做分析及设计决策。问题是何时及你如何用符号表示(notate)。详细分析决策在每一次迭代中决定,而符号表示就是自动测试。设计决策是在故事评估、迭代计划、及编写代码中决定而符号表示就是代码及单元测试。

tensile: 怎样在公司中执行XP?

Kent Beck: 有关如何在一家200人的公司导入XP的问题。我发现你需要一个技术高手(champion),他愿意深入学习并且教导这种技术,一个企业高手去说服企业组织尝试故事及迭代,及一个执行高手来保证每一个人不会因异常而导致第一次做事就出错。所有的改变都伴随着混乱。在XP中game的目的是在任何给定的日期尽可能地交付最有价值的软件。要做到这点,团队中的每一个人必须放弃完美的观念(notions of absolutes),并且持续地学习。

notyy: 有没有执行XP 的实际项目?效果如何?

Kent Beck: 在XP邮件列表中有超过100个实际项目。我猜,全世界可能不超过1000个项目使用XP。

charles_y,adylee: 为什么XP 叫XP,而不是别的名字?

Kent Beck: “终极(eXtreme)”就像终极运动员,这些人事前有周密的准备并且达到他们最大的极限。“程序设计(Programming)”是因为最后我们从执行的系统获得我们的报酬。起名时,名称必须是准确、好记和说得通的(defensible)。说得通是最重要的。我需要一个我的“敌人”绝不会说“他们正在做这件事”的名字。

xlp223: 谁是你的敌人?

Kent Beck: 我不是真想使用这个字眼,我只是尝试打字打得快一点。当我命名XP的时候我的心中有Grady Booch这个名字。他对于软件开发和我有不同的概念(不完全是错误,只是不同)。如果我要建立一个流行的事物,将会对Rational有一些压力说他们也在做这件事。他们不曾说过他们是“终极”,即使他们说他们是“轻快(agile)”。

zer: 在编码之前,我们必须设计软件工程里的每样东西…

Kent Beck: Zer,为什么你要设计所有的东西,如果你只设计前面一半会如何?

xlp223: RUP 和XP 在理念上有很大区别吗?

Kent Beck: XP是一种开发过程,RUP是过程的框架(process framework),RUP有预设的举例说明(instantiation)看起来非常类似制造业(manufacturing)。

morenew: 计划XP 的规则是什么?XP 的关键是什么?

Kent Beck: 协商的范围。时间、品质及成本是固定的。这是XP的方式。

fdu_se01: XP 是否推崇“每个人对组织都有不同的重要性”的理念?如果是这样,你如何处理人员的流动?

Kent Beck: XP计划中的规则是每一次迭代(1-3周)你计划要完成的与你实际在上个迭代当中完成的一样,如果你提早完成,你可以要求更多的工作。如果你快要来不及了,你要提出延迟要求。这个简单的规则优雅地控制休假、人力的成长、雇用、及项目间的转换。

Kent Beck: 这里有许多问题是关于“我们应如何在中国恰当地实施XP”。我建议你们由小的区域性的团体自行回答这个问题。你们的答案应该会比我的好。全世界有约20个这类团体,他们确实在帮助参与者。XP在长远的未来将变得脆弱及老旧,并且将有某些更好的东西来替换,在50年之内。不管如何,我期望许多XP实践被当做“仅作必要的事情”接受。先写测试、重构、快速具体的交付(quick concrete deliverables)、结合业务的团队(teams combining business)及技术才能(technical tal
回复
既然你是在“敏捷开发”这个论坛里问,我就给你复制文档《访谈 Kent Beck:仅作必要的事情》先看看吧。

tensile: 能否谈谈XP 和UML 的关系

Kent Beck: XP是一个软件开发的社会(social)系统,UML是一个描述软件的标记法(notation)。你可以在XP中使用UML,但团队良好的进展并不需要许多文档,除了代码及测试外。

yhufo: XP 中的文档重要吗?需要写什么样的文档?

Kent Beck: 你要写的文档就是代码及测试。

superlong: XP 如何用在一个可视化项目中?

Kent Beck: XP程序员并不是不做视觉上的思考(think visually),他们只是一般不储存图片(picture)。

notyy: XP 可以解决什么问题?

Kent Beck: 当你有许多关于需求的不确定性,XP让你快速得到一个具体、运行中的系统,同时让你以一个相当稳定的速度(pace)修改。以这种方式你无须在开始之前知道所有的事。

yhufo: 但CRC 卡及故事--这些都不是文档。

Kent Beck: 你无须永远保存。你从CRC卡及故事获得内容,然后把他们丢掉。

joe_lee: XP 是一种递归过程(recursive process)吗?

Kent Beck: 是的,或者我可能说『不规则碎片形(fractal)』。以一年为期,描述你所想要的(故事)然后去做。以一分钟为期,描述你想要的(单元测试)然后去做(编写代码)。分解的不规则碎片形是经过相当的深思熟虑的(deliberate)。

taoxie: 你提到了单元测试。我同意rerun 所有的单元测试是合理的,那么rerun 所有的集成测试也是合理的吗?

Kent Beck: 如果你有适当的准备而且够快的话,你可以随时执行测试。

yhufo: 如果我们没有文档,我怎么知道怎样能控制软件中的变更呢?我想我们必须建立文档!

Kent Beck: 当你们说『控制变更』,我则说『鼓励变更(encourage change)』。控制来自测试、双人编程、大家坐在一起讨论及持续集成。XP对于受过良好训练的程序员运作得很好,但是如果目前不觉得有良好的训练,别担心。你的搭挡可以帮你,不然你的集成工作无法达成,你必须把你的代码丢弃。

dggh: 能谈谈xp practise games 吗?

Kent Beck: 我做过一个练习让人们描绘一个咖啡壶的图像。从这里显示有更好的game。在伦敦有人建造乐高(Lego)机器人。Joshua Kerievsky有一个团队写了一个剧本(电影的脚本)。

gigix: 我想我们必须先小心地设计。如果我们忽视了设计的重要性,XP(或重构)将不能对整个项目有改进。对此你如何看?

Kent Beck: 我就知道迟早要讨论这个。我,同样地,坚持我们需要小心地设计。我宁愿等待并且在我有一些经验后再做,而不愿依据猜测(speculation)做设计。前置设计(Up front design)是一种正向反馈的循环(positive feedback loop)。你越有经验,你越可以考虑前置设计,直到你完全无用(useless)。另一种使用设计经验的方式是等待你的好想法,直到这些想法显露出来,立即就可以用得上。

joe_lee: 如果没有文档,我们怎样维护软件?

Kent Beck: 你有两个非常有价值的文档-代码及测试。如果测试总是能够100%执行而且绝不会允许逆行(regress),你还需要什么?

yhufo: 在双人编程中,两个人应该经常变换角色吗?一天或两天,我是说多久换一次,一天或两天?

Kent Beck: 在比较大的团队中,每天变换(switch)2-4次。在一天之中我无法维持一个双人组6个小时以上,因为专注的程度太过激烈。

xlp223: 既然XP 没有专家,那XP leader 在程序员当中扮演什么角色,客户,经理?

Kent Beck: XP是有专家,但他们的角色并不像以前一样是固定的。专家的出现是由团队中的每一个人依据经验挑选出来的。促使这种专家的出现是管理者扮演的角色。

yhufo: 在双人编程中,当一个人编写代码时,另一个人在干什么?只是看和说话吗?

Kent Beck: 双人编程并不是看着别人编写代码。编写代码就像是在沟通。键盘每几分钟便传来传去。双人编程时,你们讨论相关的想法,试试一个,建议另一个测试,把你下一个想法画个草图,写成代码,做些重构等等,持续进行下去。

dggh: 如何处理“程序员很少接触客户”的情况?

Kent Beck: 我想这些接触一般运作得不是很好。这就是为什么我说XP是软件开发的社会系统。频繁地和其生活受你写的软件影响的人接触,这能使你重视它。

tensile: 软件开发的社会系统?

Kent Beck: 首先,所有的团队成员聚集坐在一个大房间内:程序员、管理者、客户、分析师、测试员、用户文档、交互设计。其次,“客户团队”(customer team)提出编程团队必须通过的验收测试(acceptance tests)。学习如何通过这些测试需要沟通。

skyin: 每个人都有自己的任务,那如何双人编程时如何分配任务呢?

Kent Beck: 今天早上我将与你共同做你的任务,下午你可以帮我做我的。

yhufo: 能否介绍一些XP 的工具?

Kent Beck: 我使用Eclipse作为Java工具,我真的很喜欢它。有时我也使用IntelliJ,还有,JUnit或它在其他语言的姊妹产品,在单元测试及建立验收测试架构时非常有帮助。

xlp223: 每对双人编程都有自己独特的风格和水平,重构怎样才能使它变得一致和平衡?and person or group to do refactoring need be arranged in addition.

Kent Beck: 合唱团中的人,每人都有自己的声调。他们是如何让这些声音和谐?他们先决定最重要的和声然后“以他们的方式”唱出。在程序员团队中也是同样的道理。团队中所有人的成功,比个人的闪耀更重要。

notyy: 安排一个“在场客户”(on-site customer)在某些情况下实在困难。

Kent Beck: 想办法找到一个,否则准备接受失败。旧的Taylorist 软件开发社会结构没有用了,要有新的社会结构。如果让软件开发运作成功是重要的,坐在一起是绝对关键的。如果想做好却不认为那是重要的,或许这个项目应该取消。

yhufo: 为什么XP 不需要文档!

Kent Beck: XP确切需要两种文档-代码及测试。如果你的团队觉得需要更多的文档,那么去做就是了。大多数的团队发现他们并不需要其他的内部(internal)文档。

taoxie: 你说客户注重合同型(Contract-style)的项目,我就碰到了这种情况。XP 怎样应用在套装软件产品开发中?

Kent Beck: 对于套装软件(shrink-wrap)开发公司而言,客户团队(行销、测试、可用性、客户服务)是比使用自制型(in-house)开发的公司要大。除此之外,大家都同意使用单一的需求序列(故事)可以让软件开发越来越平滑(smoothly)。

tooliu: 不介意解释一下WinDNA 和XP 的关系吧?

Kent Beck: XP是Extreme Programming,不是操作系统。

xlp223: 做重构的人或组需要额外安排吗?

Kent Beck: 设计是每一个人的责任。当我们坐在一起而我们看到需要重构的地方,我们就重构。如果你还需要去安排进度,那你就等得太久了。

notyy: 我们应该首先教育客户吗?

Kent Beck: 客户需要知道XP吗?绝对需要。他们是团队的一份子,因此他们需要知道团队如何运作。故事及验收测试是需要先教给他们的两个最重要的事情,然后是发行(release)(3-12个月)及迭代(iteration)(1-3周)的计划。

skyin: 看起来XP 更适合客户导向的应用软件,那其他类型的软件呢?

Kent Beck: 还有其他类型吗?如果没有客户,为什么要写这些软件?

Charity_Zhou: 因此我想XP 对客户有更高的需求。

Kent Beck: XP当然对于客户有更多的要求。他们是可以看到的而且可以控制,同时他们负责挑选系统的范围。

smilemac: 我觉得XP 和演化(evolution)过程很象,你能解释一下区别吗?

Kent Beck: XP确实使用演化或成长的隐喻(metaphor)。然而XP指定许多实践来支持长期的持续性成长。Gilb的演化式的交付工作在概念上是类似的,但对于如何达成目标。他没有说明太多。XP说:先测试、双人编程、坐在一起、随时集成然后你就能使你的软件成长及演化。

fpeng: 发行计划(release planning)和迭代计划(iteration planning)的区别是什么?

Kent Beck: 发行与业务循环同步,所以它们是3-12个月的时间。迭代与工程师需要的里程碑同步,所以它们是1-3周的时间。

dggh: XP 需要团队中的每一个人都是系统分析专家吗?这也太难了!

Kent Beck: 团队需要系统分析专家,但不意味着每一个人都需要做系统分析。类似的,团队可能需要数据库专家,但只需3-4个人深入了解数据库的知识,而其他所有的人如果需要可以协助做数据库的任务。我不认为推卸责任是在中国的特别问题,我认为这是任何地方的特别问题。我们从Fred Taylor那里获得工作的社会结构概念,一位上个世纪初的工业工程师。他假设工人是懒惰而且愚笨的,因此他们需要有人为工人计划并有人检查工人的工作(品质保证(QA))。这个社会结构在软件中并不能良好运作,因为大部分的程序员既不懒惰也不愚笨。不管如何,Taylor的范例执行得非常深入以致多数人甚至不知道概念是来自何处。

dggh: 当团队速度变慢时,我们能做什么?

Kent Beck: 我今天刚写了一封长信到Yahoo小组的XP邮件列表中。简单的回答就是要让团队速度加快,唯一的方式就是鼓舞团队的士气。

zhujigang: 我们的团队确实使用了双人编程,但如果有一对完成了他们的故事,而其他人还没有完成时,这一对该做什么?他们需要等别的人吗?

Kent Beck: 在每一次迭代中每个程序员签认一些任务。如果一个任务完成了,开始另外一个,或帮助你的同伴开始做他的任务。

simplebest: 你是否使用设计模式?

Kent Beck: 我绝对使用模式。如果你检视JUnit,到处都是设计模式。它是我曾经做过的设计最密集的部分之一,不管如何,设计模式被应用是因为我们需要它们,而不是因为我们认为它们可能是有用的。我们写一个测试,使之运行,然后注意到,如果我们引进设计模式,代码是否可以更清晰。我们通过重构来把设计模式放到正确的地方。4 年后我们仍将做相同的事情。熟练的设计师可以通过使用设计模式,把讨论设计的时间从几小时缩短到几秒钟之内。

skyin: 你认为XP 象管理领域里的“学习型组织”吗?

Kent Beck: 是的。XP依赖整个团队持续学习如何更好地互动。

yhufo: 是不是团队中的每一个人都应该测试软件?

Kent Beck: 如果我们要协调权力与责任,那么每一个程序员,他们有权力产生缺陷,必须同时有责任去测试。我看不到其他的方式可以解决这个难题。

fpeng: 你认为我们在使用XP 时,是否需要软件来管理整个XP 的过程?

Kent Beck: 当初我对XP所做的第一件事情,就是写一个项目管理工具,实际上这是浪费时间。XP是一种新的习惯。用最简单可能的设备(几张纸贴在墙上就不错了)养成这个习惯。只要养成这种习惯同时团队找到其精神,你就可以开始引进软件来管理,而不至于破坏过程。

adylee: 你如何看待CMM 和XP?

Kent Beck: CMM起源于制造业。那是从所谓的制造业成熟模式(Manufacturing Maturity Model)复制而来。软件并不像实体的制造业。每一个软件的开发都不一样,而有时候根本就是如此(and sometimes radically so.)。

simplebest: 你认为RUP 和XP 哪种更适合中国的程序员?

回复
cmm2cmmi 2009-02-28
干吧

其实问问题不如实际的去做
因为往往会有很多人给出很多不同的答案

祝你成功
回复
发动态
发帖子
敏捷开发
创建于2007-12-13

1550

社区成员

软件工程 敏捷开发
申请成为版主
社区公告
暂无公告