游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4683|回复: 11

开发流程的讨论

[复制链接]

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2010-2-17 12:00:00 | 显示全部楼层 |阅读模式
在敏捷开发中所描述的《极限编程》方法学,包括以下几点。我们将在之后的课程中尽全力实践其中的一部分。(另外一部分可能因为条件关系无法应用,比如结对编程)。

极限编程方法学包括:

客户作为团队成员
用户素材
短交付周期
验收测试
结对编程
测试驱动开发方法
集体所有权
持续集成
可持续地开发速度
开放的工作空间
计划游戏
简单的设计
重构
隐喻
以上十四条方法可以在极限编程网站上找到相应的解释,我们主要的工作是在游戏开发中依次实践,最后判断其中哪些适合我们,哪些需要根据具体状况改进,或者哪些无法实现。因为本网站的项目有自己的特殊性,所以各位开发者还需要根据自己的项目作出相应的调整。但是我个人的建议是,应该先全盘接受,深刻了解;之后再逐一验证,定制剪裁。本系列教程,认为读者已经有一定敏捷开发知识,并不提供完整的敏捷开发讲座。如果没有的可以去网上看一下相关资料。

和想象的不一样,《极限编程》并不是所有部分都适合剪裁使用,这是因为其中大部分的方法相互关联影响。例:如果没有良好的测试驱动进行代码质量的管理,重构就会变得很危险(缺乏质量保证)。这也就是为什么我建议大家先全盘接受的原因,单独使用某些方法可能会让人得不到最好的效果。

下面是按照我个人的理解对敏捷开发方法之间的关系进行一下梳理,因为自身能力的原因,这个图不一定准确,不过没关系,我们同样会在之后的实践过程中迭代这个图表。




客户作为团队成员
用户素材,客户作为团队成员可以帮助完成并完善用户素材。
短交付周期,持续集成能保证随时产出可运行的产品,简单的设计能保证高速迭代快速开发,持续的验收测试保证其交付质量。
验收测试,清晰的用户素材能保证验收测试有的放矢。
结对编程,开放的空间是结对编程的前提条件,代码集体所有权让团队成员可以相互评定有益于交换结对对象,持续集成减少本地编译时间让结对变成更流畅。隐喻让结对人员沟通流畅。
测试驱动开发方法
集体所有权,持续集成可以帮助集体每个成员随时了解其他人的工作进度和问题。
持续集成,通过测试驱动来机器评测代码
可持续地开发速度,短交付周期有助于快速调整步伐,结对编程有助于提高程序员单位时间内工作的效率。
开放的工作空间
计划游戏,需要基于用户素材
简单的设计,重构可以保证简单的设计变成合理的设计。
重构,测试驱动保证重构的安全性
隐喻,基于用户素材。
在这个图中,最顶层的客户作为团队成员,测试驱动开发方法以及开放的工作空间是敏捷开发的基础,而最底端可持续地开发速度是敏捷开发的主要目标。

对这些因素得更好理解有助于我们今后对整个敏捷开发进行更好地实践。

原文发表在 http://class.gd/node/16

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2010-2-18 15:10:00 | 显示全部楼层

Re:开发流程的讨论



概念多,操作性几乎为零。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2010-2-18 23:49:00 | 显示全部楼层

Re:开发流程的讨论 一切从测试驱动开始

不知道楼上指的是什么?
至少我现在测试驱动用得很好,无测试不代码,这点对我帮助很大。
你也可以试验一下,我相信你会理解我说的懂意思的。
我会坚持尽可能多的实践《敏捷开发》的流程在目前的项目中,(当然一个人无法结对编程)。
可能几乎为零,但绝不等于零,至少从测试驱动开始。:)
希望继续关注我们的工作。

我们先不说游戏行业,极限编程在世界领域内都是有很好的实践。
包括UML之父都很欣赏极限编程的概念,google和sun这种公司更是尽可能更多的实践。

我一直考虑为什么 中国 游戏行业都在排斥“极限编程”等方法学。甚至宁可接受CMM或者ISO也不接受敏捷开发。
我想到了一个“吃大便”的比喻。

很多人觉得大便不好吃,但是这些评价的人往往没吃过大便。是对大便的恐惧心里造成了大便不好吃的结果,而不是真正的味道。现在游戏行业诸多人把良好的方法学当作大便。没吃,却有各种言论来说不好吃。

我的建议是先吃一点再说,就算不好吃,至少看我吃。我做第一个吃大便的人就好了,不论结果是否好吃,至少1 不会伤害到大家,2 可能对大家辨别结果有所帮助。

现在人才市场上,(在一线城市)一个会编程的程序员月薪大约3000RMB,而一个会设计程序(主程)大约10000RMB上下。

而所谓极限编程(XP)方法学,最大的目的(在我的理解中)就是通过正确的方法来帮助没有设计经验的人来产生正确的设计。在经济的角度上来说,就是帮助用3000RMB的人来做10000RMB的事情。这就是每单位降低7000RMB成本。

不仅如此,相对于10000RMB而言,3000RMB更年轻,具有学习精神,不容易工作变动,容易管理,容易合作。

基于以上原因,我个人认为,对于小型创业公司而言,通过正确的方法学来降低成本是必要的。

另外一个问题,就是很多人有各种各样的方法来反对正确的方法学,比如我的公司太小,不适合。我的公司太大,不适合。我的项目太小,不适合。我的项目人员太多,不适合。甚至我是中国人,所以不适合。

这让我想到了一个对于吃屎的比喻。一般人都会说屎不好吃,但你要问他们哪里不好吃,他们也答不出来。对于软件工程的方法学也如此,大部分人对于未知的领域充满了排斥和恐惧,所以在没有进行学习和实践之前就开始排斥。

所以可能,我便要做第一个“吃屎(好听一点说吃螃蟹也可以吧)”的人。

我发誓,从今天起,每行代码都要测试驱动!!

今天是重要的一天 ? 新年的第一天。今天我要开始一种新的生活。我要停止吃充满油脂的食物,开始参加健身俱乐部, 并且今天我要开始测试写的程序。我会在程序最后一次结束后开始测试,更进一步,我可以在编码时编写测试。 下次我可以在编码前的设计阶段编写测试。 我已经阅读了大量关于如何编写测试的文献,我手头已经有了单元测试框架,并且已经有了新类的想法。 那么我们开始吧。


最后 解释一下 我已经操作的一些极限编程的方法

测试驱动 通过boost test框架
结对编程 这个是我在公司的项目中的实践,在我一个人的项目中没办法做出来。
持续集成 通过apache 的Continuum+ant+cpptask 来实现持续集成,你看我们的OrzSDK中的build.xml就是持续集成脚本。

当然还有很多极限编程或者敏捷开发的方法学我至今还么开始实践,但是我会尽力实践这些,并把结果公布给感兴趣的人。

楼上说的操作为零 我可以理解的就是,有一些主管或者老板是看不得方法学的,宁可相信加班,也不会结对编程。别忘了极限编程,需要一个能顶的主压力得主管,在这里也要感谢我老板的开明。可能这些环境对于楼上来说“操作性为零”。但是您可以把我的具体操作总结一下,呈献给你的主管或者老板,终究有一天他可以接受一些的。所以我觉得这一些将会是有价值的,所以我目前的工作和实践也是有价值的。

可以到http://class.gd 和我讨论这些问题和看法。谢谢您的关注:)

还有一点就是,别和我讨论敏捷软件开发的问题,因为我也是个初学者,我只是照搬Robert C.Martin大师的经典著作而已,如果你想要挑战大师,可以去国外的权威论坛挑战.所以对敏捷开发的辩论,我这种人没资格去代表大师的言论来回应。抱歉,这是我个人能力问题。

我希望大家以一种怀疑和鄙夷的态度来看我,我就是一个执迷不悟的人而已,去实践大家不愿意去沾的东西,不论结果如何,不会伤害到大家,至少可能会有一点点对某些朋友的帮助,不论是经验或者是教训。

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2010-2-19 00:41:00 | 显示全部楼层

Re:开发流程的讨论

今天另外一件很郁闷的事情,就是敏捷开发被人家说成“概念多,操作性几乎为零。”的东西。我在这几年中不断代替敏捷开发和极限编程被国内很多“高手”们鄙视。这其中甚至包括开创中国育碧的翁怡鸣先生和血泉引擎的开发者等等业内人士。但是他们却从来没有实践过极限编程的人和方法。

这让我想到了一个“吃大便”的比喻。

很多人觉得大便不好吃,但是这些评价的人往往没吃过大便。是对大便的恐惧心里造成了大便不好吃的结果,而不是真正的味道。现在游戏行业诸多人把良好的方法学当作大便。没吃,却有各种言论来说不好吃。

当然也有一些国外回来的高手,比如吉比特的老板会部分的采用极限编程,并且给出较为正面的肯定。

请相信我,在这里我不会强制说服大家接受极限编程方法学,只是简单的呈现我对极限编程的理解和实践,不论结果如何,这其中的经验和教训应该会对一些人有用。

所以我对所有批评“极限编程”和“敏捷开发”的朋友们说。你们可以批评,但希望可以关注我做的工作。我的努力不会伤害到你们,请你们放心。如果有一天可以帮助到你们的话,请告诉我,我会觉得很高兴。谢谢。

34

主题

629

帖子

629

积分

高级会员

Rank: 4

积分
629
发表于 2010-2-19 23:32:00 | 显示全部楼层

Re:开发流程的讨论

装大师不是这么装的

1

主题

32

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2010-2-20 09:19:00 | 显示全部楼层

Re:开发流程的讨论

开发为啥非的找顶帽子戴。只要开发速度和质量能上去,团队沟通顺畅就是好流程。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2010-2-20 14:46:00 | 显示全部楼层

Re:开发流程的讨论

xp极限编程,支持一下!

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2010-2-20 15:16:00 | 显示全部楼层

Re: Re:开发流程的讨论

creamy_mami: Re:开发流程的讨论

装大师不是这么装的

不好意思的借用XP老大贝克的一句话:
“我不是天才的程序员,只不过是一个使用了正确方法的程序员而已。”

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2010-2-20 15:26:00 | 显示全部楼层

Re: Re:开发流程的讨论

wjtmain: Re:开发流程的讨论

开发为啥非的找顶帽子戴。只要开发速度和质量能上去,团队沟通顺畅就是好流程。


我非常同意你的观点,首先是我个人能力有限,无法自己找到一个好的流程。但是当我希望学习一下“好的流程”的时候,发现国内大家都在"敝扫自珍"。如果我跑去完美时空和他们老大说,把你们的开发流程借给我看看,估计肯定要被人揍。所以我只好往游戏外面的领域看,相对而言,能找到可能会适合游戏开发领域的“好的流程”,那么就似乎只有《XP编程》了,当然有人也坚信ISO或者CMM这种东西,我确实不敢苟同。

那么如果世界上仍然存在一些和我一样能力不济,但是有希望得到好的流程的人呢?那么我把这些探索过程留下来就可能会帮助这样一些人吧。

我和一些朋友讨论XP的时候,经常会说XP不适合两类人。一种是白痴,什么也不懂的人。而另外一种是天才,什么都能搞定的人。这里没有贬义,我一直认为我的偶像卡马克大神就是那种天才到不需要什么条条框框就能一个人完成大量代码并保证质量的神。

但可惜,我不是。如果你是天才,有自己的“团队沟通顺畅就是好流程”,那么不用理会我。我的工作只是为如我一样的普通人所做。谢谢。

在加个广告http://class.gd我是水王。

33

主题

544

帖子

554

积分

高级会员

Rank: 4

积分
554
发表于 2010-2-21 16:54:00 | 显示全部楼层

Re:开发流程的讨论

lz好热血。。。。支持一下~~~~期待LZ以后的研究成果~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-15 06:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表