敏捷开发思想谈(二)

标签: 敏捷开发 思想 | 发表时间:2012-01-28 20:39 | 作者:song
出处:http://ucdchina.com/rss/all

敏捷开发思想谈(一)     http://ucdchina.com/snap/11431   

版本 持续统一的意志

       为什么需要版本

        验证乐趣

      我们的设计在我们的脑海里,很可能和在别人脑海里得到的认识是不一样的。

或许大家都能有幸得到统一的认识,但是做出来实际体验的时候又不一定能够符合我们的预期。

就算符合了我们的预期,也许我们玩的时候会发现一些新的点子可以很容易的加入到游戏,并且大幅度的提高游戏性。

      所以,多个迭代版本的目的,首先就是为了: 验证我们的功能是否符合我们的设计预期。因为:

      l   没有实际玩到之前,永远不要相信自己的设计是OK

      我想强调的是,这里的设计预期不仅仅涉及到我们的功能,事实上作为游戏开发, 功能开发永远只占其中的一小部分,还有大部分的时间我们需要用来调整,优化,修改,以达到我们的真实预期。

      换一种说法,这里的预期除了功能以外,还有我们对它的感受,也就是 这个功能到底好不好玩。而我们关注的重点,也是在好不好玩上。如果只是关注于功能是否完善,那么我们的版本就还离成品有一大段路要走。

      所以迭代版本应该是计划功能均可玩,并且 没有会阻止我们体验所有需要体验内容的 BUG 的游戏版本。它是我们评判一切的依据,因为一切功能,一切资源,一切玩法, 在进入版本可以被我们体验之前,都存在不确定性,只有最后经过版本的体验,这一切的不确定性才能消除。

         持续集成

      其次,敏捷开发的要求是快速迭代。但是这里的快速迭代其实远比大家想象的还要快速。或许大家觉得正确的快速迭代就是每一个周期,或2周,或一个月就需要一个版本出来。迭代速度比起传统开发确实快了许多,版本也多了许多。但是事实上的快速迭代远比一个周期要短的多。理想的快速迭代,应该是:

       l   每个功能,每个改动完成之后都有一个版本能够立即对功能进行验证,进行体验

       让我们对游戏的改变把握得更直接和高效。 让大部分对游戏方向的修正都发生在开发当中而不仅仅发生在周期的开头或者末尾。原因就如我所说,每一个功能从完成,到有乐趣,都需要有一个打磨的过程。在打磨之前,很有可能这个功能根本没有乐趣。所以实际上,我们一周要开发一个功能,很可能我们前4天就需要把功能开发完毕,周四出一个版本进行体验。然后周五针对周四的反馈进行一些BUG修正和反馈修改。之后乐趣才出的来。

      是的,如果是理想情况的话,每一个功能无论大小都应该是这样的一个流程。哪怕是一个只有半天开发周期的功能,我们在3个小时开发后也需要出一个版本对功能进行验证,并提出反馈改进(如果有的话)。之后优化到大家觉得这个功能合格或者有存在的价值之后,我们才会继续下一个功能。

      这样的过程当然过于理想化,每一个功能我们都可以几乎无限的优化下去。所以我们也需要对优化的程度进行取舍。这样取舍的标准还是最终会基于我们开发者自己的个人能力和标准上。更重要的是,我们需要建立每一个功能和变动都需要一个版本进行验证的意识。进而才能追求我们的版本质量和效率。


       冲刺的艺术

       效率

      敏捷开发绝对不是牺牲效率追求品质的开发模式。

      相反,在每一个迭代当中:

      l   效率才是需要追求的第一位

      唯有在尽可能快地发布版本之后,我们才能根据版本的反馈,进行修正。进而得到更好的版本质量。大部分时候,我们需要的仅仅是以最快的速度得到我们需要的原型。验证我们的设计。 为此我们需要尽可能的追求效率。

      那么,如何得到我们需要的效率?

       范围

      首先, 永远不要做多余的事情。一旦 目标明确,那么我们的目标就是所有我们要做的,在目标范围内的质量优化,必要的代码改善,必要的体验优化,都是可以做的。但是离开了我们目标范围的事情,一件都不要做。

      这里的 范围,则是一个度量。而这个度量的划分,则又一次,需要依据我们这些人来判断。它需要我们深刻的理解到,我们 制定这些目标的意义,我们要实现的究竟是什么,我们应该优化到什么程度?

      我们有多少时间,那么我们就只能设计到什么程度,做到什么程度。而更多的次要的需求,我们有时间再考虑,更多的兼容性想法我们可以想,前提是我们这个版本还有时间。我们需要画一条基准线,在有限的时间里,我们能做多少内容,该做哪些内容?一切行动都需要以我们的目标为准则。当然,我们还需要考虑量产和下个阶段的准备工作等等(然则,这些其实如果规划的好,应该可以算作这个周期内的目标之一)。但这些都需要服从于当前版本的开发。全力开发我们需要的内容。

      因此 我们需要避免过度设计,过度开发,以及过度优化。我们需要将效率作为我们开发的准则。

      人员

      永远只涉及必要的人。为什么我们要进行小组化开发?因为人员牵扯一旦扩大,唯一的结果就是效率降低。各种意见难以统一,管理变得困难,计划难以统筹,任务分配变得困难等等。所以最佳的小组规模应该在7人前后。

      仅仅如此么?当然不是,我们不但要确定小组规模并且将小组开发与外界的干扰屏蔽开。我们还要确定我们项目开发的流程中,每一个步骤所要参与的人员,哪些是真正必须的,哪些是不必参加的。确定人员的职责范围,首先他们需要专心于负责的部分,之后才涉及力所能及的部分。

      在这里,需要解释的一点就是,敏捷开发并 不是所有的决定和步骤都要大家来参与,以增进组员责任心和归属感的。为了最大化效率,我们永远 只让必要的人来做必要的事情。比如故事分解为任务,只需要小组成员,和相应的主程主美主策。比如故事本身的优先级划分,只需要核心组成员(更加通常的情况是只有PO)参与即可,小组成员没有必要参与。再来,版本体验会,我们需要的是真正的指导性的意见和重要的人的声音,如果需要专门组织一个会来听小组成员对版本的反馈,我觉得那小组成员平时就不知道是干什么去了。我们需要在组织每一场会议的时候都考虑到,是不是每一个到会议的人都是必须到的,因为我们找他来开会的时间,都本来应该是他开发和工作的时间,而那才是我们的重点。

       高效会议

      最后,我们需要有一个清醒的认识, 过多的会议永远都是高效率的开发的大敌。一个会议10个人,一小时,意味着我们会损失10个人时的工作时间。而实际上一周的工作中,我们一个人时都是损失不起的。当然,这并不是意味着我们不要开会。而是我们需要意识到我们的会议究竟是否有必要,如果有,那么会议效率是否足够?我们是否有足够的会议准备和计划,能够保证我们会议的效率?还有我们是否有相应的会议章程,会议时限?这些都是我们需要考虑的,用以高效化会议,减少时间浪费的重要方法。

      所以,当我们思考效率的时候,不妨真的来看看我们现在的开发,分析一下一周的工作中,究竟开发的时间有多少?其他的时间又有多少。看看到底是什么在影响着我们的开发,是否有方法,或者措施,能减弱这些影响。最终进一步加快我们的开发?

      开发的脉络

      交流

      非正式沟通

     交流,在敏捷开发中,是永远都谈不够的东西。也是永远会存在问题的地方。在敏捷开发中,我们会重视交流而轻文档。原因?只是因为交流永远比文档更高效。

      并非我们就此放弃文档,文档最终会变成记录我们讨论交流结果的工具,便于未来查阅。高效的原因是,在交流的过程中,我们就可以共同修正分歧,修正个人的错误,并且将信息传达给对方。当然,一切都还仅仅是基础的东西。

      进一步的是,究竟 如何能让我们的交流高效?首先,必须明确一点,会议并非是高效率交流的良好方式。更好的交流, 应该更多来自于更频繁的,更多的非正式的沟通。把所有人拉到一起,强迫他们发言,或者收听,并非能很好的传递信息或者进行讨论。而鼓励他们进行自发的讨论、交流、在每天,在所有的闲暇,都可以进行一些思想,一些想法的发散、讨论。这才是最好的情况。

      我们当然也可以就此进行推动。更多的不是人为的设置一些刚性讨论需求,而是制造一种推崇各自讨论的氛围。

        邮件

      其次,是我们交流的方法。我们有没有真正考虑过,哪些内容我们应该放到正规会议上进行宣讲?哪些内容我们只需要发一封 邮件,并收集回信的反馈?哪些内容,我们只需要找到相关的人,非正式地谈论一下就可以得到解决?这些分类一旦清晰,能够为我们的团队节约多少时间?

      从另一方面来说,有多少内容我们甚至连邮件都没有发出,完全变成了个人的地下行为?在这里,我想强调一下关于邮件的作用,在原来的公司,我们被要求尽量少使用邮件,因为某个时期,员工们甚至把所有需要面谈的内容都用邮件来代替了。距离5米的两个人甚至一周几百封邮件却没有一次谈话。

      而在现在的环境中,邮件却变得相对冷落,很多应该有邮件作为记录,或者应该由邮件发出的内容都借由其他的方式或者没有以任何方式发出。比如现在很多的策划文档,每一次更新,只有一定几率会有邮件通知到大家。比如会议纪要,当然这都还是表现的比较好了。再比如不太重要的设计文档,这些都可以借由邮件发送来让需要知道的人了解,并且相比专门的宣讲会,节约很多的时间。大家只需要看完之后,把反馈意见用邮件发回就可以了。所以,我们可以考虑是否完善我们对于邮件的使用?更重要的是,是否我们可以进一步提高我们对于邮件使用的意识?我相信,这会是一个很漫长的过程,但是必然能够极大提高我们办公的效率。

      其实终究,还是我们考虑问题的方式,我们是否能够意识到我们现在的交流方面的不足,是否能够开始改进?这将是我们是否能够继续成长的关键。

       项目的基石

       人

      谈到人,其实就是谈到整个流程和过程中最关键的地方,最关键的元素,也是决定一切事情成败的根本。无论多好的制度,流程,如果没有相应的,合格的人来执行,也只会是失败的结局。那么,在敏捷开发中,或者说在游戏业的敏捷开发中,我们需要什么样的人,我们需要什么样的素质和要求,才能更好的运作这个模式,更好的做,并且做出更好的游戏呢?

       迭代的意识

      首先,是 改进的意识。永远记住,没有完美的东西。我们需要保持清醒的认识,认识到我们的项目;我们的流程;我们的文档;我们的游戏等等,都还有可以改进的地方,都还有很多可以改进的地方。改进是没有终点的,我们需要能够找到这些可以改进的地方,我们还需要可以找到改进的方法,并且切实的推行下去。这样,我们才能在一次次迭代中,得到更好的项目,更好的版本,更好的团队,等等。意识到我们有问题,我们才能够改正这些问题。从某种意义上来说,其实这也是 迭代的意识

       效率的意识

      其次,我们需要效率的意识,我们要明白,最终,我们是在开发商品。我们是在进行商业运作,所以效率是我们需要真正关心的。而效率的重点并不是每天在公司里花了超过8小时,而是我们的时间是否都真正被有效利用起来了。我们是不是真的在需要的时间内,给出了需要的成品。是否这些成品能够合格。每天做的事情是否有意义,是否能够给予我们的工作和项目帮助?我们是否能够抓住我们 工作的重点?而不是浪费在无关痛痒的地方。我们需要考虑我们的工作是否是向着目标前进的,是否足够,是否有效率。要做到效率,我们就需要首先明确我们的目标,其次清醒的意识到我们在做的事情,最后再反省是否有无效或者被浪费的地方。是否我们能做的都做了,是否我们把不需要做的也做了?

       理解游戏

      再次,我们需要有 对游戏的把握。毕竟,我们做的是游戏,如果做的人都不知道什么是游戏,那么如何能保证我们做出来的游戏能被人喜爱?甚至,我们如何能保证我们做出来的游戏,是游戏, 而不仅仅是一个选择播放的技能地图预览器?所以,首先,我们大家都需要了解游戏, 了解什么是游戏,游戏包含了什么;游戏性是什么;核心玩法是什么;主要模式是什么;画面表现是什么;音效是什么;故事是什么,它们是如何结合的,是如何组合成一个游戏的。不同的游戏类型里,这些要素又以什么比例组合,哪一个更加重要。这些都是游戏开发者所需要了解的基本。进而,开发者才能明白,我们现在的游戏已经有了哪些元素,还差哪些元素,已经有的元素是否足够,是否还有所欠缺。这时,合格的游戏开发者们,才有能力说出,我们的开发方向在哪里,应该补充什么元素,有什么欠缺的地方。这样,我们才有能力,做出一个至少完整的游戏。

        开发者的野心

      进一步,我们如果还有野心,并非只是做一个完整的,良好的游戏,我们还想要有创新,想要做一款让人眼前一亮的游戏。那么我们就不只要了解什么是游戏,我们还需要对游戏有自己的理解和想法,我们需要有自己对这个游戏的未来的想象,并且时常将之拿出来讨论,碰撞,最后留下那些可行的,优秀的方案来实现。我们每个人都需要对我们的游戏有所希望,并且这些希望都是需要时常在我们的大脑里酝酿的。这才是游戏开发最有趣的地方,我们总是可以实现我们脑海中大胆的想法,我们总是可以把我们有趣的意见,点子说出来,如果能够得到大家的赞同,就可以实现到游戏里去。做游戏应该是有趣的,而不是每天重复枯燥无聊的劳动。所以,我们需要思考,并且说出我们的想法。

        快乐地制造快乐

        用心制造快乐,是不够的,还需快乐地制造快乐。让我们并不仅仅是麻木的工作着,而是真的有趣的去做有趣的事。这才是做游戏的本意,这才是大部分人最早加入游戏公司制作游戏的本意。如果我们做的东西连我们自己都无法说服自己,“那是有趣的。”那做出来的真的能有趣么?我们在做游戏,之后才是工作。如果整个游戏,都没有一点自己的心思在里面,那我们就真的只是在勤劳的上下班了。

      而且也只有相互间的思想,想法在碰撞,才会做出有意思的游戏。游戏的设计并不仅仅是策划的事情,游戏的需求也不仅仅是由策划提出。只有大家每个人都可以针对游戏的缺陷,乐趣,玩法能有自己的见解,每天争的面红耳赤,那才是真正做好游戏的取胜之道。在游戏性的讨论上,根本没有策划美术程序之分。

       对游戏工业化开发的把握

      最后,我们还需要有对游戏开发的把握,对整体的把握。我们是否知道我们现在处于游戏开发的哪个阶段?这个阶段应该重视那些东西?应该注意那些东西?这个阶段我们应该完成那些东西?对于这些我们是否有清醒的认识,清醒的计划?

      我们是否有对我们项目的整体规划?知道我们现在要做什么,知道我们下一步还要做什么,这才能让我们明白我们现在做的是否有意义,是否有效率,是否正确。我们的目的,绝对不是过GR1,2,3,4,5.这一点大家应该明白,我们始终都是在做游戏,如果我们的方法正确,计划正确,那么这些评审对我们产生不了任何影响,那么既然我们每次都需要针对这些评审改变我们的流程计划,那么是不是也意味着我们本身的计划也存在一些问题?这个问题大家也许可以思考一下。不要让问题找到我们,而是我们去寻找问题。


        故事 WHY ME? WHY STORY?

        为什么要使用故事?

       我们为什么要使用故事?要理解这个问题,首先要理解故事的作用。那么故事的作用是什么?

        消除理解误差

      早期软件开发的需求方往往不懂任何技术,开发者的功能清单却往往难以让需求方有直观的对最后成品的认识。比如,或许一个功能描述是,“战斗场景分为5层可以根据摄像机的移动而相对运动”,但对于非专业人士来说,他们可能无法理解这样的描述意味着什么。于是故事开始发挥了它的作用:以一种大家都认可的方式让所有人对我们要做的功能目标有清楚的认识。

      所以:

      l   只要能够让全体人充分意识到我们功能开发的目标以及内容,那么它就是一个很好的故事

      对我们来说,这样的共识需要在策划,美术,程序等人员之间达成,所以我们的故事也需要以一种大家都能理解的方式来表达。而更重要的,不是故事的方式,而是确实所有人都能够完全理解。具体怎么写,其实真的怎么写方便都可以。

        整体统筹估计和管理

      由于故事是从系统和结构的层面,以一定的高度来描述我们整个项目的框架功能,所以我们可以以较快的速度全面了解我们的功能点,而对于这些功能点,我们还可以进一步快速的给出粗略的估算。进而得出整个项目的大概工期或者每个迭代我们可以完成的故事数量。这里的估算往往是由不准确慢慢到准确的。

      l   每一个周期,每一个项目的历史数据都可以让我们之后的估计更加精确

      而且这样划分的工作,可以更好的交付给不同的小组完成。小组内部进一步自行组织计划,使得我们的管理工作可以分散到小组,降低管理难度。

        创意管理

     本质上, 游戏就是已有的同类游戏的完整功能点,加上我们独特的创意。完备的前者能让我们的游戏成为一款合格的游戏,而后者的加入则让我们的游戏变得独特。引入故事后,我们可以总是在一个层面,对功能开发和创意尝试的投入进行平衡,相互以取舍。我们可以总是以功能和创意的价值来判断真正对我们有价值的开发顺序。


       故事在讲什么?

       什么是故事?

      首先,故事本质上依然是功能点,依然是从需求中抽取出的一个个系统功能。只是以一种所有人都能理解的形式进行描述。所以,为了能够让所有人能够理解,故事仅仅只从实现功能的目的来描述这个功能:

      l   故事是对功能的目的的描述

      同时,故事是在讲述这个功能究竟是发挥什么样的作用。所以它本身价值只是简单描述和给予一定参考。

      l   它不是,不能也不需要详细的描述这个功能的所有细节和玩家对此的感受。

      因为前者有相应的策划文档,后者难以文档化以标准衡量。

      所以,当我们要验收某个故事的时候,并不是我们比照着一个个故事,来体验游戏。看一个个故事是否在游戏中完整的实现了。

      正确的故事验收,应该是在这个故事在组内达成统一之,所有人就应该知道要做成什么样子之后。将单个功能的验收在周期内

就实时完成。而在最后版本发布之时,对功能进行检验,检测这个功能的最终效果是好还是坏。

      我们的目的不只是要看是不是功能A,B,C,D已经完成了,我们应该再深入一步:

      l   关注于功能是否得到了很好的效果,符合了我们的预期

      l   在游戏开发中,则是,是否有了乐趣

      l   是否有其他想法,能够让这个游戏更有趣

       因为仅仅是功能的集合,并不能成为合格的游戏

      因此,我们也需要改变我们对于设计目的的定义:

      l   我们的目的并非仅仅是完成某个功能,而是功能能否达到我们需要的乐趣。

      带着这样的思路,我们才能真正的在版本回顾的时候, 给予能够指导我们开发方向的反馈,而非仅仅是针对我们功能开发的完整与否,发表意见。

      作为核心组成员,或者,作为整个游戏项目的一员:

       l   我们不应该仅仅关心于完成情况,各种细小的错误。我们应该看得更远,思考的更远,给予我们的开发真正能提升最终质量的帮助

      最后,故事包含对它大小的估计,我们可以使用这个估计来对将来的工作和计划进行评估;对它本身价值的估计,让我们在选择他们时可以参考。简单的来说,就是另一些附加的功能。


       用好你的武器

       如何使用故事

       故事的来源

      第一,从已有的游戏设计文档或者框架中 抽取的,比如,我们已经知道我们要做的是一个回合制战斗的游戏,那么我们就可以抽取出,基础战斗指令,回合制战斗流程之类的故事。

      第二, 新出现的创意性质的内容,比如,今天我突然想到在回合制战斗中加入行动顺序条或许是个很有趣的点子,我告诉大家,大家也觉得这个东西很好,于是我把它加入到清单中。

      第三,当我玩到某个游戏的版本的时候,发现,某个功能给我的反馈不是很好,或者我觉得可以如何改进, 能够让这功能变得更好,那么也可以放进到故事清单中

        故事的使用

      首先,我们有一个用来 维护故事的列表,术语叫做 产品订单,里面罗列了所有我们已经完成或者没有完成,重要的或者不重要的故事。我们可以在里面清楚的看到:

      l   故事的描述

      l   故事点(大小)

      l   优先级(价值)

      l   当前状态

     于是,在每个迭代开始的时候,我们都将故事从大到小排列起来,依据上个版本我们能完成的故事量(以故事点来衡量)来 选取我们这个版本需要完成的故事内容

      故事选取完成后,下一步,则是让整个小组 对故事的内容达成统一。也可能只是统一目标,而某些细节在完成的过程中确定。这过程的形式,依然并不固定。

       当大家对故事的内容都有所了解之后,我们可以开始对故事进行分解。 得到相应的详细的任务。任务又成了计划,在对计划进行评估和检验之后,每个周期的工作内容就如此确定

      故事的作用就基本到此结束,剩下的内容是当单个故事完成的时候,对版本中功能进行体验,如果通过,则这个故事就此完成,最后进行归档之类的收尾工作。

      当然,在故事的具体使用中还有一些细微操作,比如如果一个故事在一个周期中制作时发现比估计的大很多要放到两个周期来做才能完成。那么我们还需要对故事进行拆分之类的操作。这些细微操作还是需要在针对不同的情况进行不同的处理。


       版本体验会

      当我们一个周期的开发内容完成,每个版本功能都已经在周期内得到了验证,并且已经有了一定的优化。为什么我们还要有一个版本体验会呢?

      首先,我们每个人负责的领域不同,我们有的人对于美术质量很关注,有的人对于代码质量很关注,有的人对于设计文档很关注。也许我们中的一些人参与了一些功能的开发,但是我们并不能对于这个周期的所有功能,所有的改动有所了解。就算对此有所了解,我们也许也不明白每一个功能的设计用意。最后, 为了让所有人对最终结果达成统一的认识,我们需要一个正式的展示会议,向核心组或者高层进行我们这个阶段的成果展示。在展示我们的版本新增功能和内容的同时,核心组也会对这个版本的各个细节和内容进行考察和审核,确定这样的改变是否符合对于游戏性和乐趣的追求,是否符合我们对我们游戏的希望,这样的发展方向是否是正确的。

      而在这样的会议中,最重要的是,我们需要得到来自各个方面的反馈。 作为开发者,这可能本身就局限了我们对于我们的版本的认知和看法。我们对于我们的版本过于熟悉,有可能自动的忽略掉了一些很重要的问题,或者会错误的认为一些难以被接受的游戏性具有很大的乐趣。而这样的会议,则是指正我们类似问题的恰当时机。针对这些反馈,我们可以更好的修正我们的工作思路和计划。给予我们下一个阶段更好的目标。

      所以,在这里,核心组需要给出的,更多,更重要的,还是对于我们游戏的方向性的,涉及到我们目前开发功能的游戏性和表现上的改进意见或者反馈和一些指导性的意见。因此,我们需要要求我们核心组本身更了解 游戏,更明白游戏性,并且自己对于我们要开发什么样的游戏,有清醒的认识和思考。


        周期总结会

      自适应,自我优化的流程,需要有两个要素才能真正的进行自我改进。首先最重要的是其中的人要有对流程中的问题,需要优化的地方,甚至是 对优化本身有清醒的认识和意愿。其次,就是这样的人 推动的一个优化行动。而周期总结会,就是SCRUM中设立的一种针对流程自身优化而进行的一种行为。

      项目总结是游戏业的一个普遍工作习惯,在每一个游戏项目结束的时候,会进行一次全项目级别的总结会议,对于整个项目过程当中,做的好,有典范价值的事物,或者在过程当中发生的有范例价值的问题,甚至是还没有解决的问题进行系统的总结和提炼。之后将之发表,可以成为团队,甚至其他团队 将来工作时的依据和帮助

      而每一个周期一次的周期总结,则是将这一行为加快,频率加高,在项目进行中不断反复。以此达到 更快速的寻找总结目前我们的优缺点,针对我们目前的缺点问题寻找 解决的办法,并且开始行动。总的来说,就是以更快的频率不只是迭代我们的版本,将我们的版本改进的更好。同时也是迭代我们的行为,优化和让我们自己更加的进步。

      其实设立一个这样的会议并不难,每一个周期我们都会有这样的总结会。而会议也总会有这样那样的缺陷和需要优化修改的结果。难的是我们需要切实的推行那些问题的修正措施,难的是我们需要能够直面我们的不足,并且将其提出。我们要能对或许难以开口的问题更直白。 鲁迅先生有云,真正的猛士,敢于直面惨淡的死生。我们必须承认我们的工作都是不完善的,都是需要优化的。但是这些问题都不是阻止我们开始修正和改革的借口。敏捷开发的意义也就在于, 知道一开始的我们不足以成功,甚至肯定会出现问题,会有失误。但是正是在一次次快速迭代中,我们快速的磨合,快速的修正,最后在一次次的改正与进步中,我们才会得到一个完善的团队,一个良好的流程以及一系列适合我们的方法。

      这也才是周期开发的意义所在。所以,敏捷开发, 并不是一个需要在一开始就有完全的准备的过程,并不是一个需要完整规划,好好考虑的过程。我们只需要有一定的东西可以开个头,哪怕还不算成熟,但是我们依然可以在接下来的过程中,对我们的目标愈发的清醒,越发的明确,并且我们本身也会越发的成熟,最终共同达到目标。

      一开始,游戏功能不明确?没问题,我们可以先从知道一定会做的开始做,然后开始探讨我们最后要做的目标,再根据每一个迭代的版本反馈修正我们的目标。

      一开始,我们开发团队磨合不够?没问题,我们可以先让他们从开发简单的底层功能做起,并且同时进行磨合,将磨合过程中需要解决的问题一一提出并改正,最终优化得到一个完善的团队。

      一开始,我们的工具不够?没问题,我们可以先用最快的方式开发原型,同时分析原型制作的方式和需求,进行工具制作。并且在工具可以使用之后,再根据使用者的反馈和项目的进展进一步的优化和改进。

       ... ...

      我们可以做的东西很多,而 那些还没有做的,也同样不能成为我们开始做的障碍

原文地址:http://djt.open.qq.com/portal.php?mod=view&aid=115

相关话题: 敏捷设计和敏捷开发 源地址: http://ucdchina.com/post/11432

相关 [敏捷开发 思想] 推荐:

敏捷开发思想谈(一)

- - 所有文章 - UCD大社区
       敏捷的原则.       敏捷开发其实并没有标准型的流程. SCRUM也只是众多衍生体中的一个. 实际上就算是SCRUM的实际使用也情况千差万别. 所以首先,请大家有这么个概念:.        敏捷开发绝对不是一套一成不变的标准化流程. 而更多的是一种自适应,自我优化的流程优化理念.

敏捷开发思想谈(二)

- - 所有文章 - UCD大社区
敏捷开发思想谈(一)     http://ucdchina.com/snap/11431   .        为什么需要版本.       我们的设计在我们的脑海里,很可能和在别人脑海里得到的认识是不一样的. 或许大家都能有幸得到统一的认识,但是做出来实际体验的时候又不一定能够符合我们的预期.

敏捷开发——Programmers(27)

- plidezus - 西乔的九卦
载于《程序员》杂志2011年第7期. 从这一期起,开始在杂志上登出整P的大幅漫画,需要看大图的同学们,讯猛点击下图. 这个系列的漫画讲述程序员——这种神秘人类的囧事,故事多来源于我身边的程序员朋友,且以互联网开发背景为主. 如果你有什么可乐的关于程序员的故事、对话、代码,愿意通过漫画的形式分享,请给我发邮件.

漫谈敏捷开发

- scotty - ITeye论坛最新讨论
软件开发是一种非零和博弈,意思是某一方的获得不是建立在另一方的损失之上,所以软件开发必须实现双赢,帮助客户成功的同时帮助自己成功. 如:通过软件帮助客户把手上的5块钱变成50块钱,然后从客户那里拿5块钱. 通过软件帮助客户节约50块钱,然后从客户那里拿5块钱. 传统的汽车制造是以计划驱动,如根据往年的经验判断今年应该生产多少汽车,但是这样带来的问题是有可能等汽车生产出来,市场已经不需要了,而这就是一种极大的浪费.

[趣图]敏捷开发:Programmers

- FPb - 草根网
载于《程序员》杂志2011年第7期. 从这一期起,开始在杂志上登出整P的大幅漫画,需要看大图的同学们,讯猛点击下图. 这个系列的漫画讲述程序员——这种神秘人类的囧事,故事多来源于我身边的程序员朋友,且以互联网开发背景为主. 如果你有什么可乐的关于程序员的故事、对话、代码,愿意通过漫画的形式分享,请给我发邮件.

关于敏捷开发(Scrum)

- - 前端攻城师-攻城记
敏捷开发的话题已经由来已久,但是我们如何实施敏捷开发一直成为争结. 很多团队协作性差,产品、技术、测试、运营脱节,我们如何解决这些问题,成为了很多团队面临的问题. 有幸接触到Scrum项目管理,我想如果我们真的把Scrum实施起来,协作一定会上一个层次. 1.一切从产品出发 我一直信奉一个出色的产品经理不应该因为种种原因降低产品质量,不要因为技术难度大,不要因为项目时间紧,不要因为人员不足,领导压力,其实产品要说的就是:“喔.

Android敏捷开发指南

- - 互联网的那点事
本文紧密结合移动开发方法与技术,围绕Android平台的开发探讨提供更高质量移动产品的解决方案. 作者中分析了移动开发中常见的问题,从两方面阐述了ThoughtWorks使用的测试开发方案和相应的架构方法与常用工具应用,并进一步阐述了为移动开发流程所提供的持续发布方案. 随着云计算、移动互联等一系列新技术概念的崛起,新一轮的IT经济正在不断扩大发展.

Scrum敏捷开发简介

- - CSDN博客编程语言推荐文章
       Scrum是一种灵活的敏捷软件开发管理过程. Scrum方法由Ken Schwaber和 Jeff Sutherland 提出,它将软件开发团队比作橄榄球队,全队有明确的最高目标:发布产品的重要性高于一切. 团队高度自治,队员们熟悉开发过程中涉及到的各种技术,紧密合作,确保每个迭代都朝着最高目标推进.

敏捷开发 Scrum 总结

- - 行业应用 - ITeye博客
  最近把之前学习 Scrum 的资料整理为一篇文档,在接下来的团队和项目开发中,根据项目的情况引入 Scrum 的一些实践,提高团队成员之间的协作能力和项目的交付质量.          参考资料:. 《轻松Scrum之旅—敏捷开发故事》、《敏捷无敌》.          Scrum 工具.

敏捷个人和敏捷开发

- beralee - 博客园-首页原创精华区
    自2001初成立了敏捷联盟到现在10年的推广,敏捷开发已日渐成为当前IT行业软件开发的一种主流方法. 没有银弹,任何方法都不可能解决所有问题,反而方法应用本身还会带来新的问题. 我在今年6月份上海举办的ScrumGathering中进行了一场敏捷个人话题的分享,我说到,想要Doing敏捷并不难,只要花上几天功夫学习敏捷知识之后就可以在小范围团队中去实践了,而要做到真正的Being敏捷则并不容易,而导致并不是真正敏捷的原因中,人是一个主要问题之一,这也是为什么现在敏捷社区中对人开始越来越关注的原因.