敏捷开发的目的
敏捷开发的目的是快速响应市场需求,举个例子,如果一个产品的开发周期为一年,如果等到尽善尽美再上线,那么时间周期是非常漫长的,在这个过程中,用户需求也会发生很多变化,导致上线的产品无法满足客户需求。 另外,在当今时代,响应速度已经成为企业不可忽视的核心竞争力。 敏捷开发方法恰恰满足了这两点,将整个产品需求分成若干个可以独立运行的迭代版本,先将一部分核心功能开发完成,交付用户使用,然后进行下一个迭代开发,开发的同时再收集上一个迭代的用户需求反馈意见,合并到下一次迭代。以此循环,直到完成最后一个迭代。
敏捷开发解决的问题
- 用户能够尽早地使用系统。对于客户来说能感受到你的快速的需求响应,所以客户满意度会提升。
- 由于用户在开始并不能真正清楚自己的需求,用户的需求是在使用过程中逐步提出的,需求变更的程度较小,这样我们就能以很小的代价完成变更,也就降低了较大需求变更的风险,降低了因需求变更增加的开发成本。
- 敏捷开发注重以人为本,减少不必要的文档及流程,团队开发的效率得到提高,达到降本提效的目的。
团队要求
不过敏捷开发对项目经理、产品经理以及团队成员的综合素质要求较高,特别是规划能力,职能的背后考验的往往还是人的理解能力、认知水平,独立思考能力,批判思维等综合能力等。
发散思维
敏捷开发在信息系统项目开发中表达了一种循序渐近的状态,其实不仅是在项目开发、管理中,在生活、工作的各个方面,都可以利用“敏捷”思维解决问题,这种思维可以提高效率,解决不必要的浪费时间的思考。
典型的举例
在工作的计划制定过程中,很多技术管理者往往喜欢所有开发工作都要先有一个大的规划,然后将大规划拆分成多个小规划,然后评估每个小规划的时间节点,甚至在工作的规划上花费了大量的时间,到最后发现与实际时间完全不相符。其实,我认为一些无法明确开发周期的工作,就没有必要再去规划详细的时间节点了,因为其中的变化机率大且未知较多,这是典型的瀑布思维模式,就是说在制定计划这项工作时使用了瀑布思维。
再例如:某个产品多个模块的性能优化工作,这种工作本身就无法评估具体的时间,那就可以使用“敏捷”思维进行进度管理,从过程中进行管理,而不是从结果中管理。利用敏捷开发模型将一个大的工作拆分成多个小的迭代版本,然后从过程中管理每个小的迭代进度,完成一个版本则上线一个版本,而不去关心整体工作完成一共要花多少时间,首先无法判断正确的时间,其次一次性评估所有的周期需要花费大量时间和精力,其实我们在过程中将每一个小的版本管理好,最终得到的结果就是效率最高的、相对最好的结果。这样的性能优化就是逐步完善系统的过程。