For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
没有说哪一款软件开发上线之后就不维护或者不更新升级的,所以迭代开发就需要程序员重点掌握和学习了,下面我们就通过案例分析来了解一下,迭代开发需要经过哪些周期。
一个迭代周期意味着对一些特定功能(用例)的探索。“探索”一词可能随情况不同而有不同的含义。对于抽象级别较高,模糊程度比较高的用例,我们需要通过和用户的讨论将它逐渐分解为更加清楚和清晰的用例。对于目前我们认为已经得到了详细定义的需求,需要选取合适的部分进行设计和实现,通过这些部分的实现,对需求定义和技术可行性进行反馈。对那些在上次迭代中已经开发完的模块,应该尽可能快速地让用户提出他们的意见,以便了解是否真正解决了用户面临的问题,以及还有没有可以改进的方面,再根据这些意见安排下一阶段的工作。
我们是否可以在开发进行之前把需求或者设计全部弄清楚呢?我认为很难。因为通常来讲,用户对于自己的需求只有一个模糊的概念。让我们假设一个饮食业的例子,有一天餐厅经理把你叫入办公室说:马上设计一个新的菜谱,这个菜谱是为某某特定人群定制的,你要让这些人感觉色香味俱全。不过在你把配料和烹调方法都设计出来之前,我们不打算让大厨来具体做这道菜,我们不允许失败,所以你的设计一定要一次成功,你可以用调查问卷,用户面谈等方法获取终用户的需求,但是记住:你不能去做这道菜。
这样的事情你可能会觉得很滑稽,但是在软件业,类似的事情人们却认为是天经地义的。
迭代允许我们将开发本身也作为需求探索的一部分,通过用户对已经实现功能的反馈我们和用户都会逐渐明白什么样的软件是我们终想要开发的。所以,不要等到所有(或者大部分)的分析完了才开始开发,而是尽早对已经捕获到的需求进行细化,尽早开发,以获得反馈。
在安排迭代计划时,应该指明,这次迭代的目标是什么,在结束时应达到的里程碑是什么。如果有任务提前达到了这个里程碑,我们可以提前结束迭代,或者顺便在剩下的时间内安排其他的任务,但是要注意这种安排的合理性,不要因为这个而使得迭代周期被延长。
在一次迭代到达所设定的结束日期时,就必须审视各项任务是否达到了里程碑的要求,如果有任务没有达到,原因是什么,我们是否需要对需求和技术方案做出调整。对于没有达到里程碑要求的任务,我们可以采取的办法有两种:
将剩余的工作列入下一次迭代计划中去,
将本次迭代的结束时间向后延迟,等待任务的完成
前一种办法适合于有很大工作量没有完成的情况,这可能也同时说明计划的制定有问题,在制定下次迭代计划时应该考虑对任务完成时间进行调整。后一种办法适合剩余工作量不是很大的情况。
通常来说,一次迭代完成以后应该有一个产品的新版本可用。这也就意味着:将集成和发布分散到每次迭代中去。借助于一些自动化工具(比如ant),我们甚至可以做到每日构建。
一个迭代周期应该有多长呢?这并没有一个统一的说法,而是应该视目标和可用的资源而定。但是,迭代周期不宜过长,也不宜过短。迭代周期过长的话,会延缓反馈的时间,可能将许多问题隐藏或是堆积了起来。迭代周期过短,会让人身心疲劳,事情难有大的成效。一般来说,迭代周期应该在2-6周之间。如果安排的迭代周期超过了两个月,你可能就必须审视一下迭代计划的合理性了。
不要认为下一次迭代应该和上次迭代的时间差不多,刻板地把所有迭代规定一个统一的时间是一个很坏的做法。但是你可以把以前迭代周期中的工作效率作为估算下次迭代时间的一个依据。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。