专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 敏捷开发

创业型的软件公司,如何做项目管理呢

发布时间:2011-06-20 17:28:23 文章来源:www.iduyao.cn 采编人员:星星草
创业型的软件公司,怎么做项目管理呢?
诚心的请教。

------解决方案--------------------
既然你是在“敏捷开发”这个论坛里问,我就给你复制文档《访谈 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: 还有其他类型吗?如果没有客户,为什么要写这些软件?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: